On Fri, Nov 10, 2017 at 10:39:39AM +0100, Peter Krefting wrote: > Running strace, it seems like it is doing lstat(), open(), mmap(), close() > and munmap() on every single file in the repository, which takes a lot of > time. > > I thought it was just updating the status, but "git status" returns > immediately, while cherry-picking takes several minutes for every > cherry-pick I do. It kind of sounds like a temporary index is being refreshed that doesn't have the proper stat information. Can you get a backtrace? I'd do something like: - gdb --args git cherry-pick ... - 'r' to run - give it a few seconds to hit the CPU heavy part, then ^C - 'bt' to generate the backtrace which should give a sense of which code path is leading to the slowdown (or of course use real profiling tools, but if the slow path is taking 6 minutes, you'll be likely to stop in the middle of it ;) ). -Peff