From: Junio C Hamano Date: Thu, 28 Mar 2013 15:52:28 GMT Subject: Re: [PATCH] push: Alias pushurl from push rewrites Message-ID: <7vboa3wmgz.fsf@alter.siamese.dyndns.org> In-Reply-To: <20130327231819.GL28148@google.com> Jonathan Nieder writes: > Josh Triplett wrote: > >> I have a .gitconfig in my git-managed home >> directory which sets pushInsteadOf so that I can clone via git:// and >> immediately have working push. I work with a number of systems that >> don't have inbound access to each other but do have outbound access to >> the network; on some of these "satellite" boxes, I can't push changes >> directly to the server pushInsteadOf points to, so I can explicitly set >> pushurl in .git/config for that repository, which overrides the >> pushInsteadOf. This change would break that configuration. > > Would it? As long as your pushurl does not start with git://, I think > your configuration would still work fine. That is a good point, especially because it is very unlikely that git:// was used for pushURL, given that it would not have been rewritten with pushInsteadOf to an authenticated transport. > After this patch, neither pushInsteadOf nor pushUrl overrides the > other one. The rule is: > > 1. First, get the URL from the remote's configuration, based > on whether you are fetching or pushing. > > (At this step, in your setup git chooses the URL specified > with pushurl in your .git/config.) > > 2. Next, apply the most appropriate url.*.insteadOf or > url.*.pushInsteadOf rule, based on whether you are fetching > or pushing. > > (At this step, no rewrite rules apply, so the URL is used > as is.)