[
https://issues.apache.org/jira/browse/SVN-1722?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nathan Hartman closed SVN-1722.
-------------------------------
Resolution: Fixed
> svn diff may missreport a revision as the working copy
> ------------------------------------------------------
>
> Key: SVN-1722
> URL: https://issues.apache.org/jira/browse/SVN-1722
> Project: Subversion
> Issue Type: Bug
> Components: cmdline client
> Affects Versions: all
> Reporter: Subversion Importer
> Priority: Trivial
> Labels: bite-sized, patch
>
> {noformat:nopanel=true}
> 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]$
> {noformat}
> Original issue reported by *awhitcroft*
--
This message was sent by Atlassian Jira
(v8.3.4#803005)