Re: [PATCH] push: Alias pushurl from push rewrites
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Mar 27, 2013, 21:15 UTC
- Message-ID
- <20130327211554.GH28148@google.com>
- In-Reply-To
- <20130327182345.GD28148@google.com>
Jonathan Nieder wrote:
> Rob Hoelz wrote:
>> --- a/remote.c >> +++ b/remote.c >> @@ -465,7 +465,11 @@ static void alias_all_urls(void)
[...]
Show 18 quoted lines
>> - remotes[i]->pushurl[j] = alias_url(remotes[i]->pushurl[j], &rewrites); >> + char *copy = xstrdup(remotes[i]->pushurl[j]); >> + remotes[i]->pushurl[j] = alias_url(remotes[i]->pushurl[j], &rewrites_push); >> + if (!strcmp(copy, remotes[i]->pushurl[j])) >> + remotes[i]->pushurl[j] = alias_url(remotes[i]->pushurl[j], &rewrites); >> + free(copy); > > Interesting. > > Suppose I configure > > [url "git://anongit.myserver.example.com/"] > insteadOf = myserver.example.com: > [url "myserver:"] > pushInsteadOf = myserver.example.com: > > The above code would make the insteadOf rule apply instead of > pushInsteadOf, even when pushing.
Sorry, typo. The configuration in the example above should have been
[url "git://anongit.myserver.example.com/"] insteadOf = myserver.example.com: [url "myserver.example.com:"] pushInsteadOf = myserver.example.com:
In other words, suppose I set url.*.insteadof to point to a faster address for fetching alongside url.*.pushinsteadof requesting that the original address should still be used for pushing.
Thanks again for tackling this. Jonathan