On Tue, 2015-07-28 at 13:04 -0700, Junio C Hamano wrote: > Junio C Hamano <gitster@xxxxxxxxx> writes: > > > David Turner <dturner@xxxxxxxxxxxxxxxx> writes: > > > >> The work done to produce the cache-tree is work that the commit would > >> otherwise have to do. So we're spending extra time in one place to > >> eliminate that work in a different place. > > > > Good point. Thanks. > > Hmm, I forgot about another codepath. What about operations that > are purely done to pouplate the index, without necessarily creating > a tree out of the index? > > The most worrisome is "git checkout $branch" (two-tree merge). Git checkout $branch already populates the cache-tree; this is due to patches I added last year: commit aecf567cbfb6ab46e82f7f5df36fb6a2dd5bee69 Author: David Turner <dturner@xxxxxxxxxxxxxxxx> Date: Sat Jul 5 21:06:56 2014 -0700 cache-tree: create/update cache-tree on checkout When git checkout checks out a branch, create or update the cache-tree so that subsequent operations are faster. ---- Admittedly, we do not test for the case where we must do a two-way merge during a checkout, but I just tested that case, and it appears that we do already populate the cache-tree in that case. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html