summaryrefslogtreecommitdiff
path: root/merge-ort.c
diff options
context:
space:
mode:
authorElijah Newren <newren@gmail.com>2021-03-11 00:38:29 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-03-11 06:18:05 (GMT)
commit174791f0fb23e29de1d879c1aae3a164bb998885 (patch)
treec47ef46f6a2ff8e7ba7d686645f37c10f38d80bf /merge-ort.c
parent2fd9eda462088b7ef992e9f5abd1658d942b3923 (diff)
downloadgit-174791f0fb23e29de1d879c1aae3a164bb998885.zip
git-174791f0fb23e29de1d879c1aae3a164bb998885.tar.gz
git-174791f0fb23e29de1d879c1aae3a164bb998885.tar.bz2
merge-ort: use relevant_sources to filter possible rename sources
The past several commits determined conditions when rename sources might be needed, and filled a relevant_sources strset with those paths. Pass these along to diffcore_rename_extended() to use to limit the sources that we need to detect renames for. For the testcases mentioned in commit 557ac0350d ("merge-ort: begin performance work; instrument with trace2_region_* calls", 2020-10-28), this change improves the performance as follows: Before After no-renames: 12.596 s ± 0.061 s 6.003 s ± 0.048 s mega-renames: 130.465 s ± 0.259 s 114.009 s ± 0.236 s just-one-mega: 3.958 s ± 0.010 s 3.489 s ± 0.017 s Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'merge-ort.c')
-rw-r--r--merge-ort.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/merge-ort.c b/merge-ort.c
index 5840832..eea1402 100644
--- a/merge-ort.c
+++ b/merge-ort.c
@@ -2208,7 +2208,7 @@ static void detect_regular_renames(struct merge_options *opt,
diff_queued_diff = renames->pairs[side_index];
trace2_region_enter("diff", "diffcore_rename", opt->repo);
diffcore_rename_extended(&diff_opts,
- NULL,
+ &renames->relevant_sources[side_index],
&renames->dirs_removed[side_index],
&renames->dir_rename_count[side_index]);
trace2_region_leave("diff", "diffcore_rename", opt->repo);