Re: [PATCH] Extend 'svn diff URL URL' to 'svn diff URL URL [WC]'

Philip Martin <[email protected]> Thu, 03 Dec 2009 11:56:03 +0000
Newsgroups gmane.comp.version-control.subversion.devel,gmane.comp.version-control.subversion.rapidsvn.devel
Message-ID <[email protected]>
Julian Foad <[email protected]> writes:

> Philip Martin wrote:
>> It's possible to compare branches in the repository using
>> 
>> $ svn diff ^/repo/branches/foo ^/repo/branches/bar
>> 
>> but that only works if the current directory is a working copy because
>> libsvn_client/cmdline.c:svn_client_args_to_target_array converts
>> relative URLs to full URLs using the hardcoded path "".  Since I
>> regularly have my current working directory outside a working copy
>> this is inconvenient.
>> 
>> I'd like to be able to do
>> 
>> $ svn diff ^/repo/branches/foo ^/repo/branches/bar path/to/wc
>> 
>> and it turns out to be quite simple from a code point of view.  It is,
>> of course, an extension to our rather complex diff UI.  What do people
>> think?
>
> What does your example command line mean? I assume you mean path/to/wc
> is used just to identify the repository, and does not additionally
> specify something like which path within the branches you want diffed.

Yes.

> (Compare the diff syntax 2, where paths within the primary pair of
> targets can be specified at the end.)
>
> -1 to exactly as formulated here. It looks far too much like a
> (syntax-2) command for specifying sub-paths.
>
> We could consider instead something like
>
> $ svn diff ^/repo/branches/foo ^/repo/branches/bar --repos=[URL|WC]

But that's much harder to type.  Also the new syntax is consistent
with most of the other commands that use '.' as a default, if one
doesn't want to use '.' one specifies the path explicitly:

$ svn log -qr880555
svn: '.' is not a working copy
$ svn log -qr880555
------------------------------------------------------------------------
r880555 | neels | 2009-11-12 16:25:11 +0000 (Thu, 12 Nov 2009)
------------------------------------------------------------------------

Why should diff not work the same way?  Currently I get

$ svn diff ^/subversion/tags/1.5.x ^/subversion/tags/1.6.x
svn: '.' is not a working copy

When I got that error message it seemed obvious to me that I should
add a working copy path, I was surprised when it didn't work.

-- 
Philip

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2426657

Please start new threads on the <[email protected]> mailing list.
To subscribe to the new list, send an empty e-mail to <[email protected]>.