source: trunk/doc/readme.txt @ 341

Last change on this file since 341 was 341, checked in by Peter Johansson, 14 years ago

wiki wiki wiki

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-trac-wiki
File size: 5.0 KB
RevLine 
[3]1$Id: readme.txt 341 2007-05-19 11:29:24Z peter $
2
[341]3= About svndigest =
[84]4
[341]5Svndigest traverses a directory structure (controlled by subversion)
[149]6and calculates developer statistics for all subversion controlled
[187]7entries. The result is written to a sub-directory of a user
[188]8specifiable target directory (default is the current working
[185]9directory).
[3]10
[341]11== Statistics ==
12
[149]13To understand what statistics is calculated by svndigest this
14definition is needed: The developer who made the latest change to a
[185]15line still in use in the latest revision, is considered as the
16contributor of that line regardless of who actually originally created
17that line.
[3]18
[188]19For each developer svndigest calculates the number of contributed
[189]20lines in the latest (checked out) revision. Svndigest calculates for
21each revision, by checking when each line was last changed, how many
22lines each developer had contributed at that specific revision and
[341]23still are in use.
[3]24
[341]25== Different linetypes ==
[188]26
[341]27Svndigest parses each file to detect whether lines are `code`,
28`comment`, or `other`. Depending on the file name, different
29parsing modes are used, which means different sets of rules what is
30`code` or `comment` are employed. Common for all modes is that
31comment blocks are identified by a start code (e.g. '/*' in a C file)
32and a stop code (e.g. '*/' in a C file). If a line contains
33alphanumeric characters being outside comment blocks, the line is
34considered to be ''code''. Otherwise, if the line contains
35alphanumeric characters inside a comment block, the line is considered
36to be a line of ''comment''. Otherwise the line is considered to be
37`other`. At the time being the following comment identifiers are
38used:
[188]39
[341]40 * cc-mode
41   * files: *.c, *.cc, *.cpp, *.cxx, *.h, *.hh, *.hpp, and *.java
42   * identifier: /* <comment> */
43   * identifier: // <comment> end-of-line
44 * m4-mode
45   * files: *.ac *.am *.m4
46   * identifier: dnl <comment> end-of-line
47   * identifier: # <comment> end-of-line
48 * shell-mode
49   * files: *.sh *.pl *.pm *config bootstrap Makefile
50   * identifier: # <comment> end-of-line
51 * tex-mode
52   * files: *.tex *.m
53   * identifier: % <comment> end-of-line
54 * jsp-mode
55   * files: *.jsp
56   * identifier: <!-- <comment> -->
57   * identifier: <%-- <comment> --%>
58 * sgml-mode
59   * files: *.sgml, *.html, *.shtml, *.xml, *.xsl, *.xsd, *.css, and *.rss
60   * identifier: <!-- <comment> -->
61 * text-mode
62   * files: all files not matching any other mode
63   * identifier: not applicable. All text is considered comments,
64     i.e., lines are either ''comments'' or ''other''
[188]65
[341]66== Different file types ==
[188]67
[46]68There are many different types of files and for many file types it
[3]69does not make sense to define lines. Source code, documentation, and
[185]70other human readable files can be treated in single line basis whereas
71symbolic links and binary files cannot. svndigest treats binary files
72as zero-line files, whereas symbolic links are treated as one-line
[188]73files. There is a possibility to exclude files from the statistics, the
[185]74use of the property svndigest:ignore.
[3]75
[189]76Sometimes large test files and XML files are added to the repository
[185]77that should not really be counted in the statistics. This is solved
78with the svndigest:ignore property. Files with this property are
[187]79excluded from statistics. Setting the svndigest:ignore property to a
[185]80directory will exclude all siblings to that directory from svndigest
81treatment.
[3]82
[341]83== Prerequisites ==
[3]84
[341]85Svndigest runs against a working copy (WC), i.e., svndigest will not
86run directly against a repository. Svndigest requires that the WC is
87pristine before running the analysis, i.e., no files are allowed to be
88modified. We also recommend that the WC is in synch with the
89repository. Issue `svn update` before running svndigest.
[185]90
[341]91== Flow of the program ==
[3]92The current flow of the program is.
93
[341]94  * Check that we are working with a WC in subversion control.
[3]95
[341]96  * Build the requested directory structure ignoring not subversion
97    controlled items. During the directory structure creation a check
98    is made that the WC is up to date with the repository.
[3]99
[341]100  * Walk through the directory structure and calculate statistics for
101    each entry.
[3]102
[341]103  * Create the plots and HTML presentation.
104
105----------------------------------------------------------------------
106{{{
107Copyright (C) 2005 Jari Häkkinen
108Copyright (C) 2006 Jari Häkkinen, Peter Johansson
109Copyright (C) 2007 Peter Johansson
110
111This file is part of svndigest, http://lev.thep.lu.se/trac/svndigest
112
113svndigest is free software; you can redistribute it and/or modify it
114under the terms of the GNU General Public License as published by the
115Free Software Foundation; either version 2 of the License, or (at your
116option) any later version.
117
118svndigest is distributed in the hope that it will be useful, but
119WITHOUT ANY WARRANTY; without even the implied warranty of
120MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
121General Public License for more details.
122
123You should have received a copy of the GNU General Public License
124along with this program; if not, write to the Free Software
125Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
126USA.
127}}}
128
129
Note: See TracBrowser for help on using the repository browser.