On Sat, Mar 19, 2011 at 2:21 AM, Hyrum K. Wright <hyrum_wri...@mail.utexas.edu> wrote: > On Fri, Mar 18, 2011 at 6:13 PM, Paul Graham <pgra...@oasys-ds.com> wrote: >> I could find all the change versions of a file, then do an svn diff for each >> change, then parse the output and determine the number of changes, but that >> seems excessive :-) >> >> rcs has this lines+/- information directly in the database. Is svn >> organized differently under the hood? > > Significantly. > > One thing I usually do is run svn diff on the revision of interest and > then pipe that through diffstat: > > $ svn diff -c1089374 | diffstat > > That will usually yield sufficiently interesting result for my application.
Paul, It may interest you to know that the upcoming 1.7 release of svn will have a '--diff' option for 'svn log', which will show the diffs inline with the log output. You may be able to script something around that, post-processing the output of 'svn log --diff' by sending each diff to 'diffstat', and replacing the diff output with the diffstat output or something (this will be much more efficient than executing 'svn diff -c XXX | diffstat' for every revision that's being output by log). Of course, if 'svn log' could calculate/output the diffstat output (or something similar) itself, that would be even more efficient (no need to send entire diffs over the wire, and execute external programs to post-process it), and much cleaner. So I can certainly see the value of a '--diffstat' option for 'svn log', doing exactly this. I'm not sure how much work such a feature would be, but if someone would like to take a look at this, I'd say: patches welcome! Though I'd start a discussion on the dev-list first, before spending huge amounts of time on it. Cheers, -- Johan