path: root/diff-lib.c
diff options
authorJunio C Hamano <>2018-09-17 20:53:53 (GMT)
committerJunio C Hamano <>2018-09-17 20:53:53 (GMT)
commit7e794d0a3f7ad4a37541539b823d5b9afdc10ce3 (patch)
treee0ee853dbcf38a57195490ffc547039e4348de5f /diff-lib.c
parent1b7a91da71d42759dfb83fa3a17be54ad01f0132 (diff)
parent5f4436a7211de7cd7552f6cf3bbb35147db1a070 (diff)
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
Diffstat (limited to 'diff-lib.c')
1 files changed, 2 insertions, 2 deletions
diff --git a/diff-lib.c b/diff-lib.c
index 88a98b1..70cddbf 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -518,11 +518,11 @@ static int diff_cache(struct rev_info *revs,
int run_diff_index(struct rev_info *revs, int cached)
struct object_array_entry *ent;
- uint64_t start = getnanotime();
if (revs-> != 1)
BUG("run_diff_index must be passed exactly one tree");
+ trace_performance_enter();
ent = revs->pending.objects;
if (diff_cache(revs, &ent->item->oid, ent->name, cached))
@@ -531,7 +531,7 @@ int run_diff_index(struct rev_info *revs, int cached)
- trace_performance_since(start, "diff-index");
+ trace_performance_leave("diff-index");
return 0;