# [minor BUG] cherry-pick -x doesn't work if a conflict occurs

6 messages from 2010-12-29 to 2011-01-05. Participants: Uwe Kleine-König, Robin Rosenberg, Jay Soffian, Junio C Hamano.
Thread: https://gitlist.dev/t/26154

## Uwe Kleine-König, 2010-12-29 14:16

Subject: [minor BUG] cherry-pick -x doesn't work if a conflict occurs
Message-ID: <20101229141638.GA14865@pengutronix.de>
URL: https://gitlist.dev/e/20101229141638.GA14865%40pengutronix.de

```
Hello,

when hitting a conflict cherry-pick suggests using

	git commit -c $sha1

but the resulting (suggested) commit log doesn't have the extra
reference requested by -x.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

```

## Robin Rosenberg, 2011-01-05 06:31

Subject: Re: [minor BUG] cherry-pick -x doesn't work if a conflict occurs
Message-ID: <24C35180-AED6-4848-9F05-908831F911F9@dewire.com>
URL: https://gitlist.dev/e/24C35180-AED6-4848-9F05-908831F911F9%40dewire.com
In-Reply-To: <20101229141638.GA14865@pengutronix.de>

```

29 dec 2010 kl. 15:16 skrev Uwe Kleine-König:

> Hello,
> 
> when hitting a conflict cherry-pick suggests using
> 
> 	git commit -c $sha1
> 
> but the resulting (suggested) commit log doesn't have the extra
> reference requested by -x.
> 

The man page says -x only takes effect when you do not have a conflict, so there
is no bug.

-- robin

```

## Uwe Kleine-König, 2011-01-05 06:50

Subject: Re: [minor BUG] cherry-pick -x doesn't work if a conflict occurs
Message-ID: <20110105065047.GJ25121@pengutronix.de>
URL: https://gitlist.dev/e/20110105065047.GJ25121%40pengutronix.de
In-Reply-To: <24C35180-AED6-4848-9F05-908831F911F9@dewire.com>

```
On Wed, Jan 05, 2011 at 07:31:05AM +0100, Robin Rosenberg wrote:
> 
> 29 dec 2010 kl. 15:16 skrev Uwe Kleine-König:
> 
> > Hello,
> > 
> > when hitting a conflict cherry-pick suggests using
> > 
> > 	git commit -c $sha1
> > 
> > but the resulting (suggested) commit log doesn't have the extra
> > reference requested by -x.
> > 
> 
> The man page says -x only takes effect when you do not have a conflict, so there
> is no bug.
ah, I wonder if this is intended or just documenting a short-coming :-)

Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

```

## Jay Soffian, 2011-01-05 16:28

Subject: Re: [minor BUG] cherry-pick -x doesn't work if a conflict occurs
Message-ID: <AANLkTimi8s7QRYuEgr2x=bqwEuFPqUUQF4E=f=_PsoV0@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTimi8s7QRYuEgr2x%3DbqwEuFPqUUQF4E%3Df%3D_PsoV0%40mail.gmail.com
In-Reply-To: <20110105065047.GJ25121@pengutronix.de>

```
2011/1/5 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
>> The man page says -x only takes effect when you do not have a conflict, so there
>> is no bug.
> ah, I wonder if this is intended or just documenting a short-coming :-)

I think it's intended as it's no longer the original commit, but
personally I think it should be configurable (I'd like -x to be
configurable as well). For now, I use the following "recommit" script
after a cherry-pick conflict.

#!/bin/sh
# Used after a cherry-pick conflicts to commit with the original
# authorship (commit -c) but keep the newly generated commit message
#
self=$(cd "$(dirname "$0")" && pwd -P)/$(basename "$0")
. "$(git --exec-path)/git-sh-setup"
require_work_tree
cd_to_toplevel
test -f .git/MERGE_MSG || die "No .git/MERGE_MSG"

if test "$GIT_EDITOR" = "$self"
then
  cat .git/MERGE_MSG > .GIT/COMMIT_EDITMSG
  exit 0
fi

if sha1=$(sed -ne \
  's/^(cherry picked from commit \([a-f0-9]\{40\}\))$/\1/p' .git/MERGE_MSG)
then
  export GIT_EDITOR="$self"
  git commit -c $sha1
fi

j.

```

## Jay Soffian, 2011-01-05 16:37

Subject: Re: [minor BUG] cherry-pick -x doesn't work if a conflict occurs
Message-ID: <AANLkTi==nMhcN538ekww3FEYFxhOqDqj4_Z7xg0a0B0Z@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTi%3D%3DnMhcN538ekww3FEYFxhOqDqj4_Z7xg0a0B0Z%40mail.gmail.com
In-Reply-To: <AANLkTimi8s7QRYuEgr2x=bqwEuFPqUUQF4E=f=_PsoV0@mail.gmail.com>

```
2011/1/5 Jay Soffian <jaysoffian@gmail.com>:
> 2011/1/5 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
>> ah, I wonder if this is intended or just documenting a short-coming :-)
>
> I think it's intended as it's no longer the original commit, but

Ah, seems to be a documented short-coming after-all:

  http://thread.gmane.org/gmane.comp.version-control.git/61737/focus=61933

j.

```

## Junio C Hamano, 2011-01-05 18:33

Subject: Re: [minor BUG] cherry-pick -x doesn't work if a conflict occurs
Message-ID: <7v1v4rdwv0.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v1v4rdwv0.fsf%40alter.siamese.dyndns.org
In-Reply-To: <AANLkTi==nMhcN538ekww3FEYFxhOqDqj4_Z7xg0a0B0Z@mail.gmail.com>

```
Jay Soffian <jaysoffian@gmail.com> writes:

> Ah, seems to be a documented short-coming after-all:
>
>   http://thread.gmane.org/gmane.comp.version-control.git/61737/focus=61933

Well, it is not.

Shawn might have accepted a documentation patch as such during my absence,
but when I originally wrote the "cherry-picked-from", it was a conscious
design decision not to carry the information forward in a conflicted case,
and the reasoning was exactly what you wrote in your first response.

Because -x has become an optional feature that a user has to explicitly
ask, I however tend to agree with Uwe that it may make sense to throw the
original commit object name in the commit log template these days.  That
would allow the user to edit it further and say something like "Originally
done by Foo in commit 1234, forward ported with conflict resolution."

```
