Type of Statistics
Classic
The classic way how svndigest calculates statistics is based on svn blame
(aka svn praise
). A good way to picture it is to issue svn blame
for each file. The typical output is:
102 author1 some text 105 author2 some more text 105 author2 even some more text
In this case author1 has zero lines in revision range [1,101] and after that one line. Author2 has zero lines in revision range [1,104] and after that two lines. For each file svndigest parses this output and generates histogram on when and by who lines were modified. Of note, is that the curves generated with the classic statistics are non-decreasing. This simply reflects that the statistics is cumulative answering the question: How many of the lines, present in the current revision, did author add before revision rev ?
Blame
The blame statistics is also based on the blame output. However, rather than only issue svn blame
for the lastest revision, svn blame -r N
is issued for each revision N. Svndigest calculates how many lines author own at the specific revision by simply counting the second column in the blame output. This statistics answers the question: How many lines, in the repository at revision rev, were author responsible for?
Add
The add statistics is based on svn diff
output. For each commit done by author, svndigest parses the difference against previous revision, and calculates how many lines were added. This statistics answers the question: How many lines had author in total added at revision rev (or earlier)?