On Monday, February 04, 2013 10:17:29 PM Stefan Sperling wrote:
> On Mon, Feb 04, 2013 at 11:54:21AM -0800, Alexey Neyman wrote:
> > On Thursday, January 31, 2013 09:08:20 am Stefan Sperling wrote:
> > > BTW, I went over one of FreeBSD's svn wiki pages a while back, and added
> > > answers to open questions on this page:
> > > https://wiki.freebsd.org/SubversionMissing
> >
> > Speaking of which:
> >
> > Is there a reason why it is necessary to use "the svn diff --old
> > ^/somebranch --new ." instead of the intuitive "svn ^/somebranch ."?
>
> Would "svn diff ^/somebranch ." be synopsis 1?
>
> svn diff -rN:M ^/somebranch_at_HEAD .@HEAD
It cannot be "synopsis 1", as its description states that "TARGETs may be all
working copy paths or all URLs". In this case, we have one of each. Moreover,
synopsis 1 says that for URLs, -r or -c must be present - and my example has
no -r/-c option.
So, the only possible use of this syntax would be synopsis 2:
> svn diff --old ^/somebranch_at_HEAD --new .@HEAD
> (i.e. show the difference between the two (path, revision) pairs
> somebranch_at_HEAD and .@HEAD) ?
>
> > It has bugged me for a while until I discovered this --old/--new trick.
>
> I agree that --old --new syntax isn't intuitive at all.
What adds oil to the fire is that the error message, which claims that "Target
lists to diff may not contain both working copy paths and URL". If instead it
said that the supplied syntax is ambiguous and suggested to use --new/--old
for disambiguation, this would have saved a lot of frustration and would
eliminate the need of "svn compare" subcommand :)
For example:
svn: Ambiguous target list (contains both work copy paths and URLs). Use
--old/--new syntax to disambiguate.
Regards,
Alexey.
Received on 2013-02-05 01:40:17 CET