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

Re: rebase vs rebase -i

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 5, 2010, 00:45 UTC
Message-ID
<7vmxzose72.fsf@alter.siamese.dyndns.org>
In-Reply-To
<76718491002041157o37de139brb7995076274375aa@mail.gmail.com>
Jay Soffian <jaysoffian@gmail.com> writes:
Show 11 quoted lines
> On Thu, Feb 4, 2010 at 1:46 PM, Johannes Schindelin
> <Johannes.Schindelin@gmx.de> wrote:
>> Both "rebase -i" and "rebase -m" are really a cherry-pick in a loop.
>
> Well then I'm still confused. I see where pick_one() in
> git-rebase--interactive.sh is using cherry-pick.
>
> But call_merge() in git-rebase.sh is using git-merge-recursive (absent
> specifying another strategy).
>
> ?

I think Dscho's point is that cherry-pick internally runs the same merge-recursive.

When you have a change C based on its parent C^ and want to replay that effect on a (possibly unrelated) commit A, you would run three-way merge, merging C into A as if C^ is the common ancestor. The rebase script cherry-pick, and revert all work with the same principle (for revert obviously you would swap C and C^---you are applying the effect of going from C to C^ in that case).

And no, "format-patch --stdout | am -3" pipe in the normal rebase codepath will stay unless you can produce a benchmark that says the performance of merge machinery is good enough these days. Back when "rebase -m" was introduced, it wasn't.

Previous: Jay SoffianNext: Junio C Hamano
Message 8 of 10 in “rebase vs rebase -i”
  1. Jay SoffianFeb 4, 2010
  2. Johannes SchindelinFeb 4, 2010
  3. Jay SoffianFeb 4, 2010
  4. Johannes SchindelinFeb 4, 2010
  5. Jay SoffianFeb 4, 2010
  6. Johannes SchindelinFeb 4, 2010
  7. Jay SoffianFeb 4, 2010
  8. Junio C HamanoFeb 5, 2010
  9. Junio C HamanoFeb 5, 2010
  10. Jay SoffianFeb 5, 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.