Merge branch 'nd/unpack-trees-with-cache-tree'
commit7e794d0a3f7ad4a37541539b823d5b9afdc10ce3
authorJunio C Hamano <gitster@pobox.com>
Mon, 17 Sep 2018 20:53:53 +0000 (17 13:53 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 17 Sep 2018 20:53:53 +0000 (17 13:53 -0700)
treee0ee853dbcf38a57195490ffc547039e4348de5f
parent1b7a91da71d42759dfb83fa3a17be54ad01f0132
parent5f4436a7211de7cd7552f6cf3bbb35147db1a070
Merge branch 'nd/unpack-trees-with-cache-tree'

The unpack_trees() API used in checking out a branch and merging
walks one or more trees along with the index.  When the cache-tree
in the index tells us that we are walking a tree whose flattened
contents is known (i.e. matches a span in the index), as linearly
scanning a span in the index is much more efficient than having to
open tree objects recursively and listing their entries, the walk
can be optimized, which is done in this topic.

* nd/unpack-trees-with-cache-tree:
  Document update for nd/unpack-trees-with-cache-tree
  cache-tree: verify valid cache-tree in the test suite
  unpack-trees: add missing cache invalidation
  unpack-trees: reuse (still valid) cache-tree from src_index
  unpack-trees: reduce malloc in cache-tree walk
  unpack-trees: optimize walking same trees with cache-tree
  unpack-trees: add performance tracing
  trace.h: support nested performance tracing
cache-tree.c
cache-tree.h
diff-lib.c
dir.c
preload-index.c
read-cache.c
t/README
t/test-lib.sh
unpack-trees.c