Subject: Re: [PATCH] push: Alias pushurl from push rewrites

From: Jonathan Nieder <[email-masked]>
Date: Wed, 27 Mar 2013 16:18:19 -0700

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.

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.)