All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Mike Stump <mikestump@comcast.net>
Cc: git@vger.kernel.org
Subject: Re: cherry picking and merge
Date: Fri, 1 Aug 2014 13:02:01 -0700	[thread overview]
Message-ID: <20140801200201.GS12427@google.com> (raw)
In-Reply-To: <51C01AAA-3CFB-4110-BAE9-7D04CA8EE53A@comcast.net>

Hi Mike,

Mike Stump wrote:

> Cherry picking doesn’t work as well as it should.  I was testing on
> git version 1.7.9.5.
>
> Put in a line in a file, call it:
>
> first version
>
> then cherry pick this into your branch. Then update on master and
> transform that into:
>
> second version
>
> then, merge that branch back to master.  Death in the form of conflicts.

Do you mean that "git merge" should be aware of what changes you have
already cherry-picked?

It isn't, and that's deliberate ("git merge" is designed to be simple
as possible, though no more simple than that).  This way, if on a side
branch someone makes a change that would conflict with "master" and
then backs it out, then the branch can still merge cleanly.

Generally people do one of the following:

 * Use a merge-centric workflow.  Don't cherry-pick "forward" but
   merge instead.  (Do use cherry-pick for backports when you forgot
   to commit a fix on top of the oldest supported branch that would
   need it.)  The gitworkflows(7) manpage has more details on how
   this works.

 * Use a cherry-pick-centric workflow.  Never merge.  Notice when
   you're trying to apply a patch you already applied and skip it.
   (Others in the thread have covered this workflow a little.)

Even in those workflows, it's possible to have conflicts due to
genuinely conflicting changes, even with no cherry-pick involved.  I
find the '[merge] conflictstyle = diff3' setting (see git-config(1))
and git-rerere(1) to be helpful in making that less painful.

Hope that helps,
Jonathan

  parent reply	other threads:[~2014-08-01 20:02 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-01  0:58 cherry picking and merge Mike Stump
2014-08-01  2:43 ` brian m. carlson
2014-08-01 16:27   ` Jakub Narębski
2014-08-01 17:48     ` Mike Stump
2014-08-01 18:57       ` Philip Oakley
2014-08-01 22:10         ` Mike Stump
2014-08-02 10:39           ` Philip Oakley
2014-08-02 16:29           ` Philip Oakley
     [not found]       ` <CANQwDwc4YPdK+a0Oc-jWPTRyM5GiP-CMuRY1inxJY41GwUGBvQ@mail.gmail.com>
2014-08-01 19:01         ` Fwd: " Jakub Narębski
2014-08-01 22:24           ` Mike Stump
2014-08-02 11:44             ` Philip Oakley
2014-08-06 15:43               ` Jakub Narębski
2014-08-06 18:41                 ` Mike Stump
2014-08-01 20:12       ` Sam Vilain
2014-08-01 23:06         ` Mike Stump
2014-08-01 23:40           ` Nico Williams
2014-08-02  0:18             ` Alex Davidson
2014-08-06 19:11             ` Mike Stump
2014-08-06 19:44               ` Rebase safely (Re: cherry picking and merge) Nico Williams
2014-08-06 20:13                 ` Nico Williams
     [not found]                 ` <A769B84E-42D1-44AC-B0A8-0F4E68AB71FB@comcast.net>
2014-08-07  5:11                   ` Nico Williams
2014-08-08 17:34                     ` Mike Stump
2014-08-08 18:27                       ` Nico Williams
2014-08-08 16:23                   ` Fwd: " Mike Stump
2014-08-01 16:56   ` cherry picking and merge Mike Stump
2014-08-21 17:36     ` Keller, Jacob E
2014-08-21 17:58       ` Keller, Jacob E
2014-08-01 19:22 ` Nico Williams
2014-08-01 22:13   ` Mike Stump
2014-08-01 22:19     ` Nico Williams
2014-08-01 20:02 ` Jonathan Nieder [this message]
2014-08-01 20:50   ` Jonathan Nieder
2014-08-01 20:55     ` Nico Williams
2014-08-01 21:44       ` Junio C Hamano
2014-08-01 22:00         ` Nico Williams
2014-08-01 22:09           ` Junio C Hamano
2014-08-06 15:58       ` Jakub Narębski
2014-08-06 16:26         ` Nico Williams
2014-08-06 23:16         ` Junio C Hamano
2014-08-06 23:20           ` Junio C Hamano
2014-08-01 23:47     ` Mike Stump
2014-08-01 22:35   ` Mike Stump
2014-08-01 22:42     ` Jonathan Nieder

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=20140801200201.GS12427@google.com \
    --to=jrnieder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=mikestump@comcast.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.