From: Marc Branchaud <marcnarc@xiplink.com>
To: Felipe Contreras <felipe.contreras@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
Marat Radchenko <marat@slonopotamus.org>,
git@vger.kernel.org
Subject: Re: Pull is Evil
Date: Thu, 01 May 2014 11:20:44 -0400 [thread overview]
Message-ID: <5362664C.8040907@xiplink.com> (raw)
In-Reply-To: <20140501094610.GB75770@vauxhall.crustytoothpaste.net>
On 14-05-01 05:46 AM, brian m. carlson wrote:
> On Wed, Apr 30, 2014 at 05:25:59PM -0500, Felipe Contreras wrote:
>> Marc Branchaud wrote:
>>> On 14-04-30 04:14 PM, Felipe Contreras wrote:
>>>> What is wrong when `git pull` merges a fast-forward?
>>>
>>> Nothing. Everything. It depends.
>>
>> It depends on what? I don't see how a fast-forward `git pull` could
>> possibly have any trouble.
>>
>>>> The problems with `git pull` come when you can't do a fast-forward merge, right?
>>>
>>> Some of them, maybe most of them.
>>
>> Name one problem with a fast-forward merge.
>
> At work, we have a workflow where we merge topic branches as
> non-fast-forward, so that we have a record of the history (including who
> reviewed the code), but when we want to just update our local branches,
> we always want fast-forward:
>
> git checkout maintenance-branch
> # Update our maintenance branch to the latest from the main repo.
> git pull --ff-only
> git pull --no-ff developer-remote topic-branch
> git push main-repo HEAD
Thanks for the nice example.
To me this looks like an advanced use of "git pull". A new user could be
taught to work like this, but I don't think a new user would come up with it
on their own (until they became an experienced user).
What's more, it seems to me that the only real advantage "git pull" provides
here is a less typing compared to the non-pull equivalent:
git fetch main-repo
git checkout main-repo/maintenance-branch
git fetch developer-remote
git merge --no-ff developer-remote/topic-branch
git push main-repo HEAD
I suggest that this approach is superior for new users (despite the increased
risk of finger cramps), because if main-repo's maintenance-branch is updated
in the interim and the push fails, the user can use the exact same commands
to resolve the situation.
Sure, the non-pull approach makes use of Scary Branch Stuff (remotes and
namespaces and detached HEADs -- oh my!). But trying to avoid that stuff is
precisely the slippery slope that led to pull's misguided gymnastics. We've
gone down that slope, slipped and fallen over, and now we're wallowing in the
muck.
M.
next prev parent reply other threads:[~2014-05-01 15:20 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-28 6:29 A failing attempt to use Git in a centralized environment Marat Radchenko
2014-04-28 18:41 ` Junio C Hamano
2014-04-30 14:21 ` Pull is Evil (was: Re: A failing attempt to use Git in a centralized environment) Marc Branchaud
2014-04-30 14:55 ` Junio C Hamano
2014-04-30 19:45 ` Pull is Evil Marc Branchaud
2014-04-30 20:01 ` Jonathan Nieder
2014-04-30 20:01 ` Junio C Hamano
2014-04-30 21:48 ` Marc Branchaud
2014-05-02 7:40 ` Andreas Krey
2014-05-02 8:46 ` David Kastrup
2014-05-03 6:17 ` Andreas Krey
2014-05-03 6:55 ` David Kastrup
2014-04-30 20:14 ` Felipe Contreras
2014-04-30 22:06 ` Marc Branchaud
2014-04-30 22:25 ` Felipe Contreras
2014-05-01 9:46 ` brian m. carlson
2014-05-01 10:48 ` Felipe Contreras
2014-05-01 15:16 ` Junio C Hamano
2014-05-01 19:16 ` Felipe Contreras
2014-05-01 19:48 ` W. Trevor King
2014-05-01 20:07 ` W. Trevor King
2014-05-01 23:25 ` Felipe Contreras
2014-05-02 0:02 ` W. Trevor King
2014-05-02 0:37 ` Felipe Contreras
2014-05-02 1:10 ` W. Trevor King
2014-05-02 1:14 ` Felipe Contreras
2014-05-02 14:54 ` W. Trevor King
2014-05-02 18:55 ` Felipe Contreras
2014-05-02 19:07 ` W. Trevor King
2014-05-02 19:10 ` David Kastrup
2014-05-02 19:13 ` Felipe Contreras
2014-05-02 19:46 ` W. Trevor King
2014-05-02 20:34 ` Felipe Contreras
2014-05-02 21:13 ` W. Trevor King
2014-05-02 21:18 ` Felipe Contreras
2014-05-02 22:01 ` pull.prompt or other way to slow/disable 'git pull' (was: Pull is Evil) W. Trevor King
2014-05-02 22:20 ` Felipe Contreras
2014-05-03 0:05 ` pull.prompt or other way to slow/disable 'git pull' W. Trevor King
2014-05-03 9:50 ` Felipe Contreras
2014-05-04 18:51 ` W. Trevor King
2014-05-04 20:54 ` Felipe Contreras
2014-05-01 23:20 ` Re: Pull is Evil Felipe Contreras
2014-05-01 15:20 ` Marc Branchaud [this message]
2014-05-01 17:56 ` W. Trevor King
2014-05-01 18:04 ` Marc Branchaud
2014-05-01 18:30 ` W. Trevor King
2014-05-01 20:21 ` Marc Branchaud
2014-05-01 23:28 ` Felipe Contreras
2014-05-02 7:16 ` Andreas Krey
2014-05-02 8:14 ` Felipe Contreras
2014-05-02 19:29 ` Junio C Hamano
2014-05-02 19:53 ` Junio C Hamano
2014-05-01 23:45 ` brian m. carlson
2014-05-01 23:39 ` Felipe Contreras
2014-05-01 19:22 ` Felipe Contreras
2014-05-01 19:43 ` Marc Branchaud
2014-05-01 19:27 ` Felipe Contreras
2014-05-01 21:06 ` Philip Oakley
2014-05-01 21:16 ` Philip Oakley
2014-05-01 23:34 ` Felipe Contreras
2014-05-01 23:59 ` W. Trevor King
2014-05-02 0:31 ` Felipe Contreras
2014-04-30 16:47 ` Pull is Evil (was: Re: A failing attempt to use Git in a centralized environment) Felipe Contreras
2014-04-30 17:09 ` Pull is Evil Matthieu Moy
2014-04-30 18:31 ` Felipe Contreras
2014-04-30 19:10 ` Junio C Hamano
2014-04-30 19:32 ` Felipe Contreras
2014-04-30 19:53 ` Junio C Hamano
2014-04-30 20:11 ` Felipe Contreras
2014-04-30 16:12 ` A failing attempt to use Git in a centralized environment Stepan Kasal
2014-04-30 17:15 ` Geert Bosch
2014-05-04 8:58 ` John Szakmeister
2014-05-02 20:56 ` Max Kirillov
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=5362664C.8040907@xiplink.com \
--to=marcnarc@xiplink.com \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=marat@slonopotamus.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).