From: Shawn O. Pearce Date: Fri, 07 Sep 2007 04:42:23 GMT Subject: Re: very slow cherry-pick'ing (old-2.6-bkcvs tree) Message-ID: <20070907044223.GW18160@spearce.org> In-Reply-To: <200709062351.l86NpnAK004807@agora.fsl.cs.sunysb.edu> Erez Zadok wrote: > Our group maintains Unionfs on the latest -rc kernel, but we also maintain > several backports going all the way to 2.6.9. Once we complete the > development and testing of a feature/fix in -latest, we cherry-pick those > commits to older backports, and test those. When I cherry-pick from -latest > to my 2.6.{22,21,20,19,18} repositories, it works reasonably fast. But when > I cherry-pick to my 2.6.9 tree, it runs about 20 times slower! Why? Is > there anything I can do to inspect what's going on and perhaps speed up the > cherry-picking process? I'm guessing its due to rename detection. git-cherry-pick is implemented in terms of git-merge-recursive, which always does rename detection when files are deleted or added. This can take some considerable time if there's a lot of files that have been added/deleted. What would probably be faster would be to dump the patches in question using git-format-patch and then apply them using git-am. This bypasses the rename detection as it is using strictly a diff and an apply. -- Shawn.