git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 3/7] revert: add --ff option to allow fast forward when cherry-picking

From
Christian Couder <chriscool@tuxfamily.org>
Date
Mar 7, 2010, 20:39 UTC
Message-ID
<201003072139.45942.chriscool@tuxfamily.org>
In-Reply-To
<7vy6i4zem7.fsf@alter.siamese.dyndns.org>
On Sunday 07 March 2010 10:05:04 Junio C Hamano wrote:
Show 26 quoted lines
> Paolo Bonzini <bonzini@gnu.org> writes:
> > On 03/07/2010 04:55 AM, Junio C Hamano wrote:
> >> What was the real motive/use case of "cherry-pick --ff"?
> >
> > Avoiding pointless separation of histories.  It's true that nowadays
> > git-patch-id will make a good job of reconciling them, but they do
> > look ugly in gitk.
> 
> Sorry, but that is a not-very-useful XY answer.
> 
> Why were _you_ using "cherry-pick" on a commit that is an immediate child
> of the current commit?  What were you trying to achieve by blindly using
> cherry-pick even in such a case?
> 
> I am sort-of guessing that "blindly" is coming from a script that doesn't
> bother to check if the commit you are cherry-picking is a direct child,
> and I do not think it is such a bad thing to allow scripts to blindly call
> cherry-pick that way and at the same time avoid making cherry-picked
> commits that are unnecessary.  So in that sense I am not opposed to having
> an option to allow "--ff".
> 
> But if that is the real motivation, then making --ff default is a wrong
> thing to do, as existing scripts knew and trusted cherry-pick will _not_
> fast-forward, and the ones that do want fast-forward have already checked
> just like "rebase -i" does.  Changing the default like Chriscool suggested
> would not help anybody.

The wording is: "Maybe this option could be made the default in the long run, ..."

I didn't wrote something like: "This option should be made the default in the long run, ..."

I really didn't know if it should or should not be made the default now or in the long run, but I thought I had to talk about it.

Why? Because Paolo said that he would like it to become the default, and also because if we implement "git cherry-pick A..B" and people start to use it a lot, they may find it boring to have to always add --ff to avoid creating lots of spurious commit (instead of reusing existing ones).

Now if you want me to remove this part of the commit message, I will do it. But my opinion is that it is interesting to document that we thought about making it the default now or in the future.

Do you prefer something like:

"Making this option the default was discussed on the mailing list but we decided that it is best left as non default for now. Though we recognized that it is best to have a --no-ff option too to future proof scripts in case the decision to make fast forwarding the default is made in the future."

?

Best regards, Christian.

Previous: Junio C HamanoNext: Christian Couder
Message 8 of 12 in “add --ff option to cherry-pick”
  1. 0/7 add --ff option to cherry-pickChristian Couder, Mar 6, 2010
  2. 1/7 parse-options: add parse_options_concat() to concat optionsChristian Couder, Mar 6, 2010
  3. 2/7 builtin/merge: make checkout_fast_forward() non staticChristian Couder, Mar 6, 2010
  4. 3/7 revert: add --ff option to allow fast forward when cherry-pickingChristian Couder, Mar 6, 2010
  5. Junio C HamanoMar 7, 2010
  6. Paolo BonziniMar 7, 2010
  7. Junio C HamanoMar 7, 2010
  8. Christian CouderMar 7, 2010
  9. 4/7 cherry-pick: add tests for new --ff optionChristian Couder, Mar 6, 2010
  10. 5/7 Documentation: describe new cherry-pick --ff optionChristian Couder, Mar 6, 2010
  11. 6/7 cherry-pick: add a no-op --no-ff option to future proof scriptsChristian Couder, Mar 6, 2010
  12. 7/7 rebase -i: use new --ff cherry-pick optionChristian Couder, Mar 6, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.