source: trunk/doc/readme.txt @ 40

Last change on this file since 40 was 3, checked in by Jari Häkkinen, 16 years ago

Added first version describing the program and the design with motivations.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.6 KB
Line 
1$Id: readme.txt 3 2005-12-22 19:30:56Z jari $
2
3svnstat traverses a directory structure (controlled by subversion) and
4calculates developer statistics for all subversion controlled
5entries. The program takes requires at least one argument - the top
6level directory of the directory structure to traverse. The result is
7written to a sub-directory, svnstat, that will be created in the
8current working directory.
9
10To understand what statistics is calculated by svnstat this definition
11is needed: The developer who made the latest change to a line still in
12use in the latest (checked out) revision, is considered as the
13contributor of that line regardless of who actually originally created
14that line.
15
16The statistics calculated is the number of lines contributed from each
17contributing developer in the latest (checked out) revision. Also, the
18number of lines still in use from each revision is calculated.
19
20There are many different types of files and it for many file types it
21does not make sense to define lines. Source code, documentation, and
22other human readable files can be treated on a line basis whereas
23symbolic links and binary files cannot. svnstat treats non-line based
24files as one-line files, i.e. the developer that made the last change
25to this type of files gets a one-line credit for it.
26
27How should we exclude un-reasonable credit for large line based files?
28We could add a property to that file, tagging it as a file that should
29be treated as an non-line base file.
30
31The current design assumes that the subversion repository to be
32analysed is checked out, maybe one would want to run the analysis
33agains a subversion repositoy directly.
34
35The current flow of the program is.
36
37i) Extract the directory structure starting from the directory given
38   at the command line.
39
40ii) Parse the directory structure, removing files and direcotries that
41   is not in subversion control. After this step, only valid
42   subversion entries will be allowed in the tree. Beware, 'svn blame'
43   chokes on directories, and the directories are still a part of the
44   tree.
45
46iii) Walk through the directory structure and calculate statistics for
47   each entry. Where should the statisitcs be stored? Probably in the
48   structure created in steps i) and ii).
49
50iv) Compile statistics as discussed. This step may be intermingled
51   with step iii).
52
53v) Create the html presentation as discussed.
54
55
56Current assignemnts. Jari works with step i) and ii). Peter works with
57the parser in iii) and the compilation of results in iv). Step v) is
58somewhat unclear, but it may be more natural that Jari actually
59creates the html structure. The reason for this is that during testing
60of steps i) and ii) the initial steps for step v) will be created.
Note: See TracBrowser for help on using the repository browser.