Re: [PATCH 2/2] Add support for url aliases in config files
- From
Daniel Barkalow <barkalow@iabervon.org>
- Date
- Feb 20, 2008, 20:42 UTC
- Message-ID
- <alpine.LNX.1.00.0802201520450.19024@iabervon.org>
- In-Reply-To
- <7vskzn4dpz.fsf@gitster.siamese.dyndns.org>
On Wed, 20 Feb 2008, Junio C Hamano wrote:
Show 25 quoted lines
> Daniel Barkalow <barkalow@iabervon.org> writes: > > > On Wed, 20 Feb 2008, Junio C Hamano wrote: > > ... > >> To me, "url.$this_is_what_I_use.aka = $how_they_might_call_it" > >> initially felt backwards, but the point of the facility is to > >> allow mapping many ways other people might call it to how you > >> would (and the other way would not make sense as allowing to map > >> one thing to multiple is only to introduce unnecessary > >> ambiguity), so it makes perfect sense. > > > > This order of values is definitely the right thing, for the mapping > > reasons you saw. And I think "aka" is generally used to indicate > > additional non-canonical names for something with an official name (see, > > for example, IMDB's usage). I haven't been able to come up with anything > > better to indicate "this is a name that I will recognize but not use > > myself". > > Yeah, that "aka" is still disturbing. > > [url A] > aka = B > > would read to me: "A is also known as B" but that is clearly not > what it means here.
But it is; the thing which we will call "A" is also known (and sometimes called by other people, or us speaking informally) as "B".
Show 9 quoted lines
> You would want this: > > [url A] > aka = B > aka = C > > to mean "B is also known as A. C is also known as A." IOW, you > are using it backwards, because their name is more official and > you are using your own unofficial name to call it.
No, "A" is the *real* name, the one that actually works. B and C are pseudonyms, of which there may be multiple, both from more "official" (but git is decentralized, and doesn't care for officialness) and less official sources.
I think you're seeing this feature as taking "correct" URLs and rewriting them to be local aliases, when the only thing that makes sense for a system like git is really to say that whatever URL works for us is "correct", and everybody else is speaking their own local dialect.
In fact, one case I anticipate using extensively is:
[url "git://iabervon.org/~barkalow/"] aka = ":"
Such that, once clone is using remote.{c,h}, "git clone :git" would clone my home git repository. Obviously ":" isn't the real name in this rewriting.
Show 23 quoted lines
> >> > diff --git a/Documentation/urls.txt b/Documentation/urls.txt > >> > index 81ac17f..0115af7 100644 > >> > --- a/Documentation/urls.txt > >> > +++ b/Documentation/urls.txt > >> > @@ -44,3 +44,26 @@ endif::git-clone[] > >> > ... > >> > +If you have a section: > >> > + > >> > +------------ > >> > + [host "git://git.host.xz/"] > >> > + aka = host.xz:/path/to/ > >> > + aka = work: > >> > +------------ > >> > + > >> > +a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be > >> > +rewritten in any context that takes a URL to be > >> > +"git://git.host.xz/repo.git". > >> > >> This still stands??? > > > > And missed the "host"->"url" bit while I fixed the rest of the example. > > So this part is not wanted, right?
The first part (not quoted) is not wanted (it was left over from when I combined the three entries into one and moved it under 'u' instead of 'h'). This part *is* wanted, but should say:
+ [url "git://git.host.xz/"]
instead of
+ [host "git://git.host.xz/"]
since I changed the option name.
-Daniel *This .sig left intentionally blank*