git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Aghiles <aghilesk@gmail.com>
Cc: git list <git@vger.kernel.org>
Subject: Re: git push in --tracked branches.
Date: Wed, 21 Apr 2010 21:52:51 -0400	[thread overview]
Message-ID: <20100422015251.GA25093@coredump.intra.peff.net> (raw)
In-Reply-To: <i2n3abd05a91004211813t8111c77am381bc0b8226a0c9b@mail.gmail.com>

On Wed, Apr 21, 2010 at 09:13:14PM -0400, Aghiles wrote:

> On Wed, Apr 21, 2010, Jeff King <peff@peff.net> wrote:
> 
> > "git push" will by default push matching refs. This has been the
> > behavior since day one. See the description of push.default in "git help
> > config" for other options (I think you want "tracking").
> 
> Thank you very much. The 'tracking' case is what I need. Could you
> enlighten me why pushing all matching branches is a sensible default ?
> It seems like an unusual thing to do.

I think it comes from a workflow where you tend to have a private repo
and then a personal public repo for publishing. The matching refs are
then the set of refs that you have previously pushed. So you do:

  $ git push public foo ;# publish "foo" for the first time
  $ git push public ;# now "foo" will be published every time

And you probably do work on topic branches, and only merge them into
your public branches when they are ready to show the world. So push is
really about synchronizing those public branches.

If you are working by cloning from a collaborative central repository,
then that workflow doesn't make as much sense. The refs on the other end
are not about "things I have published before" but rather "the set of
all refs that our group agrees about". And probably your workflow is to
hack on a specific ref, and then push changes to that ref.

Git grew out of the first type of workflow, and that has always been the
default. Tools for helping the latter workflow have developed later.
There was some discussion about changing the default, but it hurts
people used to the current default, so we ended up with the config
variable.

That is just my two cents, though. I have largely stayed out of the
debates which seem to come up every once in a while. I think this thread
is the one that lead to push.default:

  http://article.gmane.org/gmane.comp.version-control.git/111375

-Peff

  reply	other threads:[~2010-04-22  1:53 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-22  0:02 git push in --tracked branches Aghiles
2010-04-22  0:44 ` Jeff King
2010-04-22  1:13   ` Aghiles
2010-04-22  1:52     ` Jeff King [this message]
2010-04-22 19:52       ` Aghiles

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100422015251.GA25093@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=aghilesk@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).