From: Marc Branchaud <marcnarc@xiplink.com>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: [PATCH 2/2] push: --ignore-stale option
Date: Thu, 15 Dec 2011 12:47:11 -0500 [thread overview]
Message-ID: <4EEA329F.1020201@xiplink.com> (raw)
In-Reply-To: <20111215073816.GD1327@sigill.intra.peff.net>
On 11-12-15 02:38 AM, Jeff King wrote:
>
> But I still see this as solving the wrong problem, and encouraging a
> dangerous workflow. Why are you using ":" to push matching branches if
> you don't want to push topic1? I think a much more likely scenario is:
>
> $ git clone <<origin>>
> $ git checkout -b topic1 origin/topic1
> $ work work work
> $ : hmm, it's not ready yet
> $ git checkout -b topic2 origin/topic2
> $ work work work
> $ : looking good, let's ship it!
> $ git push ;# we default to matching!
>
> I.e., the user is not actually intending to push all matching branches,
> but does so accidentally because "matching" is the default. And they
> have accidentally just pushed non-ready work to topic1, which would
> happen even with --ignore-stale.
>
> IOW, I am not convinced that people are actually consciously choosing
> the workflow you outlined above, and are instead interested in
> --ignore-stale as a convenient way of guessing which branches should be
> pushed during a matching push. But it's only a guess, and as I showed
> above, it can still cause problems. I think the right solution is to
> switch the default away from matching, which is the root cause of the
> confusion.
100% agree.
In my experience, people are confused by any magic that happens when a local
ref name matches a remote's ref name. I find folks have a much easier time
with git once they embrace the notion that a remote's branches are distinct
from their local clone's, and that explicitly saying
push origin <local>:<remote>
is the clearest way of making sure git does what you want.
It's convenient for advanced users to take advantage of the shortcuts any
ref-matching magic provides, but I find novice users tend to make mistakes as
often as not.
M.
next prev parent reply other threads:[~2011-12-15 17:47 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-13 23:35 [PATCH 2/2] push: --ignore-stale option Junio C Hamano
2011-12-13 23:48 ` Andreas Ericsson
2011-12-15 7:38 ` Jeff King
2011-12-15 17:47 ` Marc Branchaud [this message]
2011-12-15 18:21 ` Junio C Hamano
2011-12-19 5:33 ` Junio C Hamano
2011-12-19 5:35 ` [PATCH 1/2] advice: Document that they all default to true Junio C Hamano
2011-12-19 9:37 ` Jeff King
2011-12-19 5:38 ` [PATCH 2/2] push: hint to use push.default=upstream when appropriate Junio C Hamano
2011-12-19 10:37 ` Jeff King
2011-12-19 20:16 ` Junio C Hamano
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=4EEA329F.1020201@xiplink.com \
--to=marcnarc@xiplink.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/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).