Version 4 (modified by peter, 10 years ago) (diff) |
---|

## Type of Statistics

### Classical

The classical way of how svndigest calculates statistics is based on `svn blame` (aka 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 classical statistics are non-decreasing. This is simply reflect 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 implementation of this statistics can be followed in ticket:24.

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 implementation of this statistics can be followed in ticket:82.

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)?*