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

Re: rename detection limit checking, cherry picking, and git am -3

From
Mark Levedahl <mlevedahl@gmail.com>
Date
Sep 18, 2007, 00:18 UTC
Message-ID
<46EF1953.6060106@gmail.com>
In-Reply-To
<20070917034742.GG3099@spearce.org>
Shawn O. Pearce wrote:
Show 12 quoted lines
> In this case `git am -3` creates a tree object containing only
> the files modified by the patch and then feeds that tree into
> git-merge-recursive.  Now if you go study git-revert's code you'll
> see it actually just calls git-merge-recursive on three trees,
> but these are three complete trees.
>
> So what's probably happening here is there's less candidates on one
> side in the `am -3` case, so we spend a lot less time generating
> the rename matrix, searching for a match, and we get better changes
> of finding a match.
>
>   

Thanks for the explanation. For my case, there are < 500 files (including renamed files) in common between the two branches, giving ~2000*4000 files that have no correspondence for which git can try to find renames. Clearly, reducing the one side from 4000 files to 1 file has an enormous payoff.

Mark
Previous: Karl Hasselström
Message 5 of 5 in “rename detection limit checking, cherry picking, and git am -3”
  1. Mark LevedahlSep 17, 2007
  2. Shawn O. PearceSep 17, 2007
  3. Junio C HamanoSep 17, 2007
  4. Karl HasselströmSep 17, 2007
  5. Mark LevedahlSep 18, 2007

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.