git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Please discuss: what "git push" should do when you do not say what to push?
@ 2012-03-17  5:10 Junio C Hamano
  2012-03-17  5:22 ` Junio C Hamano
                   ` (7 more replies)
  0 siblings, 8 replies; 44+ messages in thread
From: Junio C Hamano @ 2012-03-17  5:10 UTC (permalink / raw)
  To: git; +Cc: linux-kernel

There is a proposal to change the default behaviour of 'git push' on the
Git mailing list. The goal of this message is to encourage you to discuss
it before it happens (or the change is aborted, depending on the outcome
of the discussion).

In the current setting (i.e. push.default=matching), 'git push' without
argument will push all branches that exist locally and remotely with the
same name. This is usually appropriate when a developer pushes to his own
public repository, but may be confusing if not dangerous when using a
shared repository. The proposal is to change the default to 'upstream',
i.e. push only the current branch, and push it to the branch 'git pull'
would pull from. Another candidate is 'current'; this pushes only the
current branch to the remote branch of the same name.

For more details on the behavior of Git with these values, read the
documentation about 'push.default' in 'man git-config'
(http://schacon.github.com/git/git-config.html).

You may be negatively affected when such a change happens if you do not
see anything in the output from 'git config push.default' and if you rely
on the default that pushes all your matching branches. On the other hand,
you may want to see the default behaviour to change, especially if you are
using shared repositories. In either case, please join the discussion to
give us more data point and help us decide the future of Git. Also, if
you think your friends and colleagues will be affected by this change,
either positively or negatively, please tell them about this discussion.

What has been discussed so far can be seen in this thread:

    http://thread.gmane.org/gmane.comp.version-control.git/192547/focus=192694

Previous relevant discussions include:

    http://thread.gmane.org/gmane.comp.version-control.git/123350/focus=123541
    http://thread.gmane.org/gmane.comp.version-control.git/166743

To join the discussion, send your messages to:

    git@vger.kernel.org

The list accepts messages from non-subscribers, and you do not have to ask
"please Cc me, I am not subscribed", as it's customary to Cc: posters when
replying on this list.

^ permalink raw reply	[flat|nested] 44+ messages in thread
* Re: Please discuss: what "git push" should do when you do not say what to push?
@ 2012-03-19 18:26 Michael K. Johnson
  0 siblings, 0 replies; 44+ messages in thread
From: Michael K. Johnson @ 2012-03-19 18:26 UTC (permalink / raw)
  To: git

Thank you for the public requests for comment on changing "git push"
semantics.  I don't have anything particularly new to say, so TL;DR
is: I think that changing the default value for push.default to
upstream would help advocate corporate Git adoption as potential
users experiment on their own, attracted by the benefits of "branchy"
development.  I don't think that my own ability to advocate for Git
is affected by this decision, but wanted to share the observation.

I am encouraging corporate adoption of Git for primary source
code control, and I see two reasons for making relatively centralized
workflows easy.

It is easiest to advocate for this change when more developers are
convinced that the initial adoption process will be relatively easy;
that they can change from existing centralized version control
to Git without synchronized, protracted productivity loss due to
a steep learning curve.  Don't get me wrong, they want to make
use of DVCS concepts, and they aren't interested in the change
without expecting benefits from the change, it's just that having a
centralized workflow available makes it easier to contemplate change.
The more developers involved, the harder it would be to try to
synchronize everyone's learning curve and the more value in a
centralized workflow being available.

As has been raised several times already, most corporations are most
comfortable with having one repository that is the official main
repository, a "primus inter pares" of repositories.  At least in
my own context, for business continuity we want developers to push
topic branches to the official central repository.  In practice, very
little truly disconnected development is done; the benefits of DVCS
in general and Git in particular lie mostly in the version graph, and
secondarily in the scalability derived from repository distribution.

The default setting of push.default=matching is confusing for new
users in practice, at least in centralized workflows.  It has been
confusing in practice that they need to synchronize their master
in order to synchronize their topic branch, and in order to find
the solution they need to have some idea what solution they are
looking for -- and expect that there is a solution.

Finally, my reasoning for "upstream" instead of "current" is that
I have heard in practice that quite a few developers who are interested
in Git but not yet familiar with it have heard that branches can have
different names in different repositories, and they like the idea.
They might want to track "origin/bug1234567" in "mybug" that is
shorter and easier to remember...  This is a minor point, in my
opinion.

^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2012-03-21 18:05 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-17  5:10 Please discuss: what "git push" should do when you do not say what to push? Junio C Hamano
2012-03-17  5:22 ` Junio C Hamano
2012-03-17 10:05   ` Andrew Sayers
2012-03-18 18:50     ` Junio C Hamano
2012-03-18 21:26       ` Ævar Arnfjörð Bjarmason
2012-03-19  0:29         ` Junio C Hamano
2012-03-19  7:29           ` Sebastien Douche
2012-03-19 20:11       ` Andrew Sayers
2012-03-19 21:43         ` Junio C Hamano
2012-03-19 22:20           ` demerphq
2012-03-19 22:38             ` Junio C Hamano
2012-03-20 10:00               ` Andreas Ericsson
2012-03-19 22:47           ` Andrew Sayers
2012-03-19 22:59             ` Junio C Hamano
2012-03-20 21:20               ` Andrew Sayers
2012-03-20 23:09                 ` Junio C Hamano
2012-03-20 23:41                   ` Andrew Sayers
2012-03-21  0:25                     ` Junio C Hamano
2012-03-20 14:12   ` Martin Langhoff
2012-03-20 15:28     ` Junio C Hamano
2012-03-20 18:31       ` Martin Langhoff
2012-03-20 16:43     ` Jakub Narebski
2012-03-21 17:54   ` Summary of discussion on "git push" default change Junio C Hamano
2012-03-21 18:05     ` Matthieu Moy
2012-03-17 14:00 ` Please discuss: what "git push" should do when you do not say what to push? Joey Hess
2012-03-19  0:36   ` Junio C Hamano
2012-03-17 18:43 ` fREW Schmidt
2012-03-18  4:02   ` H. Peter Anvin
2012-03-18  5:43     ` Marcus D. Hanwell
2012-03-18 16:52   ` Sebastian Schuberth
2012-03-19  9:07 ` Peter Krefting
2012-03-19  9:35   ` Letting remote repositories override local configuration Jonathan Nieder
2012-03-19 12:21     ` Peter Krefting
2012-03-19 18:57 ` Please discuss: what "git push" should do when you do not say what to push? Kevin Ballard
2012-03-20  2:27 ` Antony Male
2012-03-20 12:04   ` Jakub Narebski
2012-03-20 13:04     ` Antony Male
2012-03-20  7:13 ` Nathan Gray
2012-03-20 12:00   ` Ben Tebulin
2012-03-20 12:00   ` Ben Tebulin
2012-03-20 12:00   ` Ben Tebulin
2012-03-20 12:01   ` Ben Tebulin
2012-03-20 12:36 ` Filipe Fernandes
  -- strict thread matches above, loose matches on Subject: below --
2012-03-19 18:26 Michael K. Johnson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).