Subject: Re: [RFC PATCH] push: start warning upcoming default change for push.default

From: Marc Branchaud <[email-masked]>
Date: Mon, 12 Mar 2012 16:16:10 -0400

On 12-03-12 03:06 PM, Junio C Hamano wrote:
> Jeff King <[email-masked]> writes:
>> 
>> So far a lot of the discussion has focused on "what is the most sensible
>> default for the most number of people". But I wonder if a better
>> question is "what is the default that is the least likely to do
>> something dangerous and embarrassing". People who use git enough to say
>> "wow, I don't like this default for my workflow" are probably at the
>> point that they can configure push.default themselves.
> 
> I do not think "the most number of people" is a high-priority issue,
> but "least damage" default may not be necessarily the best.

I agree, but I don't think we even have a good idea of what "least damage"
even means.  It seems to be vaguely related to how much of a hassle it would
be to recover from a plain "git push" doing the wrong thing.

There's one thing I'd like to ask all the folks who are pointing out how well
the candidate defaults match various workflows:  How much training do you
give (or are assuming for) your workflow's new users?

Or, more broadly, what is a "new" git user?  Are we talking about someone
using git for the first time on a brand-new project that they're setting up
themselves?  (Has that person even used any other VCS's?)

Or is it someone who's joining an already-established team?  Even a "new"
user hacking the Linux kernel or forking some github project is tying into an
established process.  And most every established process has either
documentation (or a person) to explain how things are set up, and how to best
configure git to work in that environment.

IMHO git need not worry about "new" users joining an established process, if
for no other reason that it seems impossible to make git new-user-friendly in
all (or even most) of those environments.

Instead the focus should be on new users who are wrestling with git by
themselves (well, hopefully with the help whatever online documentation
they've found).  They're making up their workflows as they go, refining them
as they learn more about git.  These are the users that git's defaults should
cater to.

And for those users, I still think "upstream" is the best of the current
default candidates.

> Obviously, "nothing" is the least-damage option, and looking at how
> even people on this list cannot decide between current and upstream,
> I actually am very tempted to suggest it as the new default.

There's a lot of merit to that.  If nothing else, it'd get new users to learn
at least a little bit about git.  I wouldn't be opposed to pushing nothing by
default.

		M.