From: Jonathan Nieder Date: Wed, 27 Mar 2013 21:15:54 GMT Subject: Re: [PATCH] push: Alias pushurl from push rewrites 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) [...] >> - 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