Subject: Re: [PATCH] Add support for host aliases in config files

From: Jakub Narebski <[email-masked]>
Date: Fri, 25 Jan 2008 20:33:12 +0100

On Friday, 25 January 2008, Daniel Barkalow wrote:
> On Fri, 25 Jan 2008, Jakub Narebski wrote:
>> Daniel Barkalow <[email-masked]> writes:
>> 
>>> This allows users with different preferences for access methods to the
>>> same remote repositories to rewrite each other's URLs to get the
>>> desired access.
>> 
>> [...]
>>> +host.<name>.base::
>>> +	The base URL which should be used for this particular
>>> +	host. This can be used by a user who has a better access
>>> +	method to a repository than other users to make use of the
>>> +	preferable path despite getting URLs from other users using
>>> +	more commonly-available methods. Alternatively, a user who
>>> +	only has less privileged access to a repository than the usual
>>> +	audience can use this mechanism to replace disallowed methods
>>> +	with public ones.
>>> +
>>> +host.<name>.alias::
>>> +	Additional base URLs which refer to this host. If a URL
>>> +	matches this, any access to it will use the URL formed with
>>> +	the corresponding base URL instead of the given URL.
>>> +
>> 
>> From this I could not get how those configuration are meant to be
>> used. Perhaps some usage example?
> 
> [host "kernel"]
>         base = git://git.kernel.org/pub/
>         alias = git+ssh://master.kernel.org/pub/
>         alias = master.kernel.org:/pub/
> 
>> BTW. wouldn't the same be solved better by enabling remote.<name>.url
>> to be multi-valued, first working for fetch, all URLs for push?

Ah, thanks. I have misunderstood the above description (hint, hint!)...
 
> The real point is actually for when you're dealing with URLs on the 
> command line which you've cut-and-paste from email or other things. For 
> example, the patches in the -mm quilt series say where the git trees are, 
> but they're all like 
> "git+ssh://master.kernel.org/pub/scm/linux/kernel/git/dtor/input.git", 
> which is ideal for people (like Andrew) who have accounts on master, but 
> requires manual fixing for people (like me) who don't.
> 
> With the above config, I can do:
> 
> git fetch git+ssh://master.kernel.org/pub/scm/linux/kernel/git/dtor/input.git

Couldn't you just configure "kernel" remote, and use "git fetch kernel"
instead?

> and it actually fetches
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
>
> which actually works for me.

So this config variable is actually about _rewriting_ URLs, rather than
having multiple _alternate_ URLs to fetch from. IMHO either the
documentation above should be (re)written better (there is time, as we
are in feature freeze), or the example mentioned above should be added
(but where?).

-- 
Jakub Narebski
Poland