push: introduce new push.default mode "simple"
authorMatthieu Moy <Matthieu.Moy@imag.fr>
Tue, 24 Apr 2012 07:50:03 +0000 (09:50 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 24 Apr 2012 22:22:16 +0000 (15:22 -0700)
commitb55e67752242b449a4577c05341fd6b2fea4d310
treeeae985cc0bdc12a2da280403be2da74242e3f546
parent321e75c5dc6d6abc76e2349000e93c809ddfcdab
push: introduce new push.default mode "simple"

When calling "git push" without argument, we want to allow Git to do
something simple to explain and safe. push.default=matching is unsafe
when used to push to shared repositories, and hard to explain to
beginners in some contexts. It is debatable whether 'upstream' or
'current' is the safest or the easiest to explain, so introduce a new
mode called 'simple' that is the intersection of them: push to the
upstream branch, but only if it has the same name remotely. If not, give
an error that suggests the right command to push explicitely to
'upstream' or 'current'.

A question is whether to allow pushing when no upstream is configured. An
argument in favor of allowing the push is that it makes the new mode work
in more cases. On the other hand, refusing to push when no upstream is
configured encourages the user to set the upstream, which will be
beneficial on the next pull. Lacking better argument, we chose to deny
the push, because it will be easier to change in the future if someone
shows us wrong.

Original-patch-by: Jeff King <peff@peff.net>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
builtin/push.c
cache.h
config.c
t/t5528-push-default.sh