# Re: Auto-subst of repository roots (was Re: svn diff branch woprking copy against mainline?)

From: Branko Čibej <brane_at_xbc.nu>
Date: 2005-11-03 03:23:20 CET

Daniel Berlin wrote:
> On Wed, 2005-11-02 at 19:43 -0500, Daniel Berlin wrote:
>
>> A bunch of my gcc users are complianing that they are continually typing
>> the repository root to do certain diffs.
>> They are, of course right.
>> Usually, we just say "you can script with the shell", but as Richard
>> points out below, a substitution works everywhere, shell only works if
>> you are working in the same root everywhere.
>>
>
> I should also point out
>
> 1. Currently, we suck more than CVS in this regard, because people save
> the typing of the CVSROOT
>
Yes...

> 2. We have this info, so why are we making the user type it anyway, be
> it in a shell script or otherwise.
>
Until recently we didn't have this info in the WC, because the repos
root was not stored separately.

Now that we do have it, this gets a big +1 from me.
Now let's decide about the colour of this bikeshed... I don't like
vermilion with pink spots; in

svn diff +/branches/foo +/trunk

the + doesn't seem obvious enough. We can't use two leading slashes,
because that could be a valid UNC path on Windows. We can't use #,
because that's a shell meta-character. How about one of:

svn diff ++/branches/foo ++/trunk
svn diff %/branches/foo %/trunk
svn diff %%/branches/foo %%/trunk
svn diff @/branches/foo @/trunk
svn diff @@/branches/foo @@/trunk

I'm leaning towards % because it's somewhat mnemonic, being a URL escape
char. I think @ would be too easy to confuse with the peg-rev syntax. I
don't think using a two-char prefix buys us much.

Oh, we should be careful when parsing such parameters: they're URLs,
therefore they should never use platform-specific path separators. IOW,
%\trunk should not be valid on Windows.

-- Brane

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org