Details
-
Bug
-
Status: Closed
-
Trivial
-
Resolution: Fixed
-
all
Description
It appears that the 'svn diff' command can result in output in which the file headers within the diff are incorrect; the unified diff itself appears to be as expected. Specifically under some circumstances a diff header will indicate one revision as the working copy when it is not. In this example revision 0 (BASE) is an empty repository and revision 1 (HEAD) contains a single file containing the word test (the full recipe to reproduce and the full output from all the possible diffs are included at the end of this email). The working copy from which the diffs are requested is a checkout of revision 0. If we examine the svn diff -r BASE:HEAD and HEAD:BASE outputs it is clear that the diffs cannot both be against the working copy (if either is) despite the fact that it is clearly labeled as such indeed they are the diff we would expect between the requested versions, the diff (further below) of the real working copy against BASE and HEAD support this. It seems to me that BASE is being incorrectly reported as working copy. + svn diff -r BASE:HEAD Index: file =================================================================== --- file (revision 0) +++ file (working copy) @@ -0,0 +1 @@ +test + svn diff -r HEAD:BASE Index: file =================================================================== --- file (revision 1) +++ file (working copy) @@ -1 +0,0 @@ -test Does this come under an existing issuse or should I file one. Feel free to say 'stupid' that's because of 'foo' and expected behaviour. Cheers. -apw [apw@kuckoo test2]$ cat T rm -rf repo test test2 svnadmin create repo svn checkout file:///`pwd`/repo test svn checkout file:///`pwd`/repo test2 cd test echo "test" >file svn add file svn -m test commit cd ../test2 svn diff -r BASE:HEAD svn diff -r HEAD:BASE svn diff -r BASE svn diff -r HEAD svn diff -r 0:BASE svn diff -r 0:HEAD svn diff -r 0:1 svn diff -r 1:0 svn diff -r 0 svn diff -r 1 [apw@kuckoo test2]$ sh -x T + rm -rf repo test test2 + svnadmin create repo ++ pwd + svn checkout file:////home/apw/test2/repo test Checked out revision 0. ++ pwd + svn checkout file:////home/apw/test2/repo test2 Checked out revision 0. + cd test + echo test + svn add file A file + svn -m test commit Adding file Transmitting file data . Committed revision 1. + cd ../test2 + svn diff -r BASE:HEAD Index: file =================================================================== --- file (revision 0) +++ file (working copy) @@ -0,0 +1 @@ +test + svn diff -r HEAD:BASE Index: file =================================================================== --- file (revision 1) +++ file (working copy) @@ -1 +0,0 @@ -test + svn diff -r BASE + svn diff -r HEAD Index: file =================================================================== --- file (revision 1) +++ file (working copy) @@ -1 +0,0 @@ -test + svn diff -r 0:BASE + svn diff -r 0:HEAD Index: file =================================================================== --- file (revision 0) +++ file (revision 1) @@ -0,0 +1 @@ +test + svn diff -r 0:1 Index: file =================================================================== --- file (revision 0) +++ file (revision 1) @@ -0,0 +1 @@ +test + svn diff -r 1:0 Index: file =================================================================== --- file (revision 1) +++ file (revision 0) @@ -1 +0,0 @@ -test + svn diff -r 0 + svn diff -r 1 Index: file =================================================================== --- file (revision 1) +++ file (working copy) @@ -1 +0,0 @@ -test [apw@kuckoo test2]$
Original issue reported by awhitcroft
Attachments
Issue Links
- is duplicated by
-
SVN-1761 incorrect handling of revesion keywords
- Closed