2012/1/20 sebb <seb...@gmail.com>: > On 20 January 2012 16:07, Stefan Sperling <s...@elego.de> wrote: >> On Fri, Jan 20, 2012 at 03:54:37PM +0000, sebb wrote: >>> Note that r848598 involves a directory copy. >>> >>> The diff command: >>> >>> $ svn log -l14 >>> http://svn.apache.org/repos/asf/subversion/branches/1.0.x/STATUS@848689 >>> --diff >>> >>> behaves properly up to that point, but then I get: >>> >>> >>> >>> r848598 | kfogel | 2004-01-27 17:08:24 +0000 (Tue, 27 Jan 2004) | 1 line >>> >>> Rename branches/1.0-stabilization to branches/1.0.x, as Brane suggested. >>> >>> >>> Index: 1.0-stabilization/Makefile.in >>> =================================================================== >>> --- 1.0-stabilization/Makefile.in (revision 848574) >>> +++ 1.0-stabilization/Makefile.in (revision 848575) >>> >>> <snip other file diffs/> >>> >>> <<< >>> >>> So it looks as though diff is broken when handling directory copies. >> >> This is a known problem. It has already been fixed in trunk, and the fix >> has been nominated for backport. It will likely be included in 1.7.3. > > OK, thanks. > > In case it helps anyone else in the meantime, I've managed to get > round the bug by using > svn log --diff --stop-on-copy url-path-to-file@version > for each section of the files history (i.e. between copies) > > The relevant urls and versions can be found from: > svn log -qv filename | grep " (from " > which shows all the copy commands, for example: > A /subversion/branches/1.0.x (from > /subversion/branches/1.0-stabilization:848597) > > Unfortunately it also shows individual file copies which aren't > relevant, but this can be worked round.
Note, that you can also get diff for particular revision of a file using "svn diff -c" E.g. svn diff -c r848689 http://svn.apache.org/repos/asf/subversion/branches/1.0.x/STATUS@848689 Though this command shows less information than svn log --diff. Best regards, Konstantin Kolinko