On Sat, Mar 19, 2011 at 2:21 AM, Hyrum K. Wright
<hyrum_wright_at_mail.utexas.edu> wrote:
> On Fri, Mar 18, 2011 at 6:13 PM, Paul Graham <pgraham_at_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
Received on 2011-03-19 14:51:21 CET