summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Hostetler <jeffhost@microsoft.com>2019-11-21 22:04:39 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-11-22 07:11:44 (GMT)
commite6152e35ff287ab58e2c17065f02cb1be9f4a0aa (patch)
treeac6e7122e9a5463784029d82f6a427d491d244dc
parent72918c1ad91504f56c395cc91c5072651125662a (diff)
downloadgit-e6152e35ff287ab58e2c17065f02cb1be9f4a0aa.zip
git-e6152e35ff287ab58e2c17065f02cb1be9f4a0aa.tar.gz
git-e6152e35ff287ab58e2c17065f02cb1be9f4a0aa.tar.bz2
trace2: add region in clear_ce_flags
When Git updates the working directory with the sparse-checkout feature enabled, the unpack_trees() method calls clear_ce_flags() to update the skip-wortree bits on the cache entries. This check can be expensive, depending on the patterns used. Add trace2 regions around the method, including some flag information, so we can get granular performance data during experiments. This data will be used to measure improvements to the pattern-matching algorithms for sparse-checkout. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--unpack-trees.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/unpack-trees.c b/unpack-trees.c
index 33ea781..01a05ff 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -1407,15 +1407,23 @@ static int clear_ce_flags(struct index_state *istate,
struct pattern_list *pl)
{
static struct strbuf prefix = STRBUF_INIT;
+ char label[100];
+ int rval;
strbuf_reset(&prefix);
- return clear_ce_flags_1(istate,
+ xsnprintf(label, sizeof(label), "clear_ce_flags(0x%08lx,0x%08lx)",
+ (unsigned long)select_mask, (unsigned long)clear_mask);
+ trace2_region_enter("unpack_trees", label, the_repository);
+ rval = clear_ce_flags_1(istate,
istate->cache,
istate->cache_nr,
&prefix,
select_mask, clear_mask,
pl, 0);
+ trace2_region_leave("unpack_trees", label, the_repository);
+
+ return rval;
}
/*