On 2010-08-15 05:34:08 -0700, Bert Huijben wrote: > > Conversely, when blah has been added, but not committed, > > > > svn diff -rBASE blah > > > > gives a diff instead of an error (indeed an error is expected because > > b...@base doesn't exist, as this can been seen with "svn cat blah"). > > If I remember correctly comparing to BASE does not compare to the version in > the repository, but to the local pristine version. Just like not providing > -rBASE. (Compare it to -r<revision of base>).
??? I've never said anything different. I think you missed the point that there is no local pristine version here, since "blah" hasn't been committed yet. BTW, the local pristine version does correspond to some revision in the repository. It shouldn't be mixed up with the working copy version. > We can't break this common use case without breaking almost every user of > the local diff feature. In any case the current behavior is buggy and needs to be changed in some way, and the book needs to be updated accordingly: prunille:~/wd> echo blah > blah prunille:~/wd> svn add blah A blah prunille:~/wd> svn diff blah Index: blah =================================================================== --- blah (revision 0) +++ blah (revision 0) @@ -0,0 +1 @@ +blah If the same revision 0 is compared, there shouldn't be any diff! The diff contents are expected, but not the revision information. > svn cat uses a different definition. Necessarily. "svn diff" has a pair of targets, while "svn cat" has only one. So, you can't have the same definition. :) That's why "svn diff" has its own description concerning the revisions in the Subversion book. -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <http://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)