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

Re: cherry-pick very slow on big repository

From
Elijah Newren <newren@gmail.com>
Date
Nov 10, 2017, 17:37 UTC
Message-ID
<CABPp-BH4LLzeJjE5cvwWQJ8xTj3m9oC-41Tu8BM8c7R0gQTjWw@mail.gmail.com>
In-Reply-To
<alpine.DEB.2.00.1711101436270.2391@ds9.cixit.se>

Interesting timing. I have some performance patches specifically developed because rename detection during merges made a small cherry-pick in a large repo rather slow...in my case, I dropped the time for the cherry pick by a factor of about 30 (no guarantees you'll see the same; it's very history-specific). I was just about to start sending my three series of patches, the performance one being the third...

On Fri, Nov 10, 2017 at 6:05 AM, Peter Krefting <peter@softwolves.pp.se> wrote:
Show 29 quoted lines
> Derrick Stolee:
>
>> Git is spending time detecting renames, which implies you probably renamed
>> a folder or added and deleted a large number of files. This rename detection
>> is quadratic (# adds times # deletes).
>
>
> Yes, a couple of directories with a lot of template files have been renamed
> (and some removed, some added) between the current development branch and
> this old maintenance branch. I get the "Performing inexact rename detection"
> a lot when merging changes in the other direction.
>
> However, none of them applies to these particular commits, which only
> touches files that are in the exact same location on both branches.
>
>> You can remove this rename detection by running your cherry-pick with `git
>> -c diff.renameLimit=1 cherry-pick ...`
>
>
> That didn't work, actually it failed to finish with this setting in effect,
> it hangs in such a way that I can't stop it with Ctrl+C (neither when
> running from the command line, nor when running inside gdb). It didn't
> finish in the 20 minutes I gave it.
>
> I also tried with diff.renames=false, which also seemed to fail.
>
>
> --
> \\// Peter - http://www.softwolves.pp.se/
Previous: Peter KreftingNext: Elijah Newren
Message 8 of 13 in “cherry-pick very slow on big repository”
  1. Peter KreftingNov 10, 2017
  2. Jeff KingNov 10, 2017
  3. Peter KreftingNov 10, 2017
  4. Derrick StoleeNov 10, 2017
  5. Peter KreftingNov 10, 2017
  6. Kevin WillfordNov 10, 2017
  7. Peter KreftingNov 13, 2017
  8. Elijah NewrenNov 10, 2017
  9. Elijah NewrenNov 10, 2017
  10. Peter KreftingNov 13, 2017
  11. Elijah NewrenNov 13, 2017
  12. Peter KreftingNov 21, 2017
  13. Elijah NewrenNov 21, 2017

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.