From: Max Kirillov <max@max630.net>
To: Richard Hansen <rhansen@bbn.com>
Cc: Junio C Hamano <gitster@pobox.com>,
Felipe Contreras <felipe.contreras@gmail.com>,
Marc Branchaud <marcnarc@xiplink.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: Pull is Mostly Evil
Date: Thu, 8 May 2014 01:37:52 +0300 [thread overview]
Message-ID: <20140507223752.GA13933@wheezy.local> (raw)
In-Reply-To: <5364A143.1060404@bbn.com>
Hi.
I might be late to this discussion, but here either
something I don't understand or something is missed.
On Sat, May 03, 2014 at 03:56:51AM -0400, Richard Hansen wrote:
> In my experience 'git pull' is mostly (only?) used for the following
> three tasks:
>
> 1. update a local branch to incorporate the latest upstream changes
>
> In this case, the local branch (master) is a
> derivative of the upstream branch (origin/master).
> The user wants all of the commits in the remote branch
> to be in the local branch. And the user would like
> the local changes, if any, to descend from the tip of
> the remote branch.
>
> For this case, 'git pull --ff-only' followed by 'git
> rebase -p' works well, as does 'git pull
> --rebase=preserve' if the user is comfortable rebasing
> without reviewing the incoming commits first. A plain
> 'git pull' or 'git pull --ff' is suboptimal due to the
> awkward backwards-parents merge commit.
This is actually not a finally defined use case. What kind
of "local changes" user can have ahead of the remote? As
far I understand, there are 3 cases:
1a. Changes that are going to be merged back to the master,
but not yet ready to be there.
This is essentially the same as case 2, but it does not name
the development branch explicitely. Switching parents for
this case is not desirable.
1b. Some truly local changes which never goes anywhere.
For this case the parent order does not matter.
1c. The local changes prepared for integration, but instead
of filing a pull request of otherwise publishing the
branch for integrator, the leaf developer does the
integrator's job and merges it back to master and then
publishing the master.
As far as I understand, this is the only case when somebody
would want the parents to be switched. And this does not
seem to be a good practice, because it's prone to push races
and requires letting everyone to push to master. So maybe
git should not encourage people to do so.
And the name "update", proposed here, does not seem to be
correct. Because what happens is not updating, but merging
feature to master and closing it.
> 2. update a published feature branch with the latest
> changes from its parent branch
> 3. integrate a more-or-less complete feature/fix back
> into the line of development it forked off of
--
Max
next prev parent reply other threads:[~2014-05-07 22:38 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-02 15:37 Pull is Mostly Evil Marc Branchaud
2014-05-02 15:45 ` David Kastrup
2014-05-02 16:05 ` Philip Oakley
2014-05-02 19:05 ` Felipe Contreras
2014-05-02 22:34 ` Philip Oakley
2014-05-02 22:53 ` Jonathan Nieder
2014-05-03 20:24 ` Philip Oakley
2014-05-02 23:23 ` Felipe Contreras
2014-05-03 11:24 ` Philip Oakley
2014-05-03 11:30 ` Felipe Contreras
2014-05-02 19:31 ` David Lang
2014-05-02 19:37 ` David Kastrup
2014-05-02 18:13 ` Junio C Hamano
2014-05-02 19:11 ` Felipe Contreras
2014-05-02 20:06 ` Junio C Hamano
2014-05-02 20:58 ` Felipe Contreras
2014-05-02 21:48 ` Jeff King
2014-05-02 21:55 ` Felipe Contreras
2014-05-02 22:36 ` Jeff King
2014-05-02 23:27 ` Felipe Contreras
2014-05-03 2:18 ` David Kastrup
2014-05-06 22:06 ` Junio C Hamano
2014-05-06 22:19 ` Felipe Contreras
2014-05-03 7:56 ` Richard Hansen
2014-05-03 8:17 ` David Kastrup
2014-05-03 9:04 ` Felipe Contreras
2014-05-03 9:56 ` David Kastrup
2014-05-04 4:30 ` David Lang
2014-05-04 4:38 ` Felipe Contreras
2014-05-04 6:13 ` David Kastrup
2014-05-04 6:50 ` James Denholm
2014-05-04 7:48 ` David Kastrup
2014-05-04 9:51 ` Felipe Contreras
2014-05-04 10:37 ` James Denholm
2014-05-04 11:02 ` David Kastrup
2014-05-03 9:26 ` Felipe Contreras
2014-05-03 22:09 ` Richard Hansen
2014-05-04 3:08 ` Felipe Contreras
2014-05-04 7:49 ` Richard Hansen
2014-05-04 10:17 ` Felipe Contreras
2014-05-04 19:09 ` Richard Hansen
2014-05-04 21:13 ` Felipe Contreras
2014-05-05 5:44 ` Richard Hansen
2014-05-05 5:47 ` Felipe Contreras
2014-05-07 22:37 ` Max Kirillov [this message]
2014-05-03 10:00 ` John Szakmeister
2014-05-05 15:39 ` Richard Hansen
2014-05-05 18:15 ` Felipe Contreras
2014-05-02 22:12 ` Philip Oakley
2014-05-09 19:49 ` Marc Branchaud
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=20140507223752.GA13933@wheezy.local \
--to=max@max630.net \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=marcnarc@xiplink.com \
--cc=rhansen@bbn.com \
/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).