Subject: Re: Please discuss: what "git push" should do when you do not say what to push?

From: Andrew Sayers <[email-masked]>
Date: Sat, 17 Mar 2012 10:05:11 +0000

On 17/03/12 05:22, Junio C Hamano wrote:
> If the conclusion of the discussion is that we will change the default,
> the transition to the new default will go like this:
> 
>  1. An announcement message to let the user communities know about the
>     future change will be distributed in a way similar to the previous
>     request-for-discussion message was distributed.
> 
>  2. The first version of Git that is released after such an announcement
>     will start issuing a warning when you type "git push" to send the
>     matching branches to the default location unless you have configured
>     push.default variable.  The users who want to keep the current default
>     can do
> 
> 	$ git config push.default matching
> 
>     and the users who want to use different settings can do one of:
> 
> 	$ git config push.default current
> 	$ git config push.default upstream
> 	$ git config push.default nothing
> 
>     to silence this warning. The warning will be issued unless you do so,
>     to help those who missed the message #1.
> 
>  3. We wait for a few release cycles.
> 
>  4. The default changes.  If you do not configure push.default variable,
>     it no longer defaults to matching, but does something else (the choice
>     among the three other alternatives will be decided in the discussion).
>     The warning message will be reworded---instead of saying "will stop
>     being the 'matching' in the future", it will say "has changed to X".
> 
>  5. We wait for a few release cycles.
> 
>  6. The warning is removed.
> 
> A typical release cycle lasts for 8-10 weeks.
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

Unfortunately, "a few release cycles" strikes me as a rather hopeful
description.  For example, a user installing the new Ubuntu LTS release
(due out next month) would feel completely justified in not upgrading
until 2017, whereas the rest of us would get rather bored disabling the
same old warning in every new repo we create for the next five years.

Could I suggest when a user inits/clones a new repository using a
post-change version of git, we do an automatic `git config
push.warned_about_default_change true`, then warn forevermore when users
push from a repo with neither that option nor a push.default?  This will
warn existing users with arbitrarily long upgrade cycles, and reduce the
amount of noise during the (necessarily) already noisy first days of a
new repo.

FWIW, I've been stung by the old behaviour and think the change of
default is a great idea, but have nothing more useful to add :)

	- Andrew