From 01faa91cb71cf6f5acdf4e683cce08b5e233cfa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scharfe?= Date: Sat, 4 Jul 2020 14:56:32 +0200 Subject: revision: disable min_age optimization with line-log MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If one of the options --before, --min-age or --until is given, limit_list() filters out younger commits early on. Line-log needs all those commits to trace the movement of line ranges, though. Skip this optimization if both are used together. Reported-by: Мария Долгополова Signed-off-by: René Scharfe Signed-off-by: Junio C Hamano diff --git a/revision.c b/revision.c index ebb4d2a..3bdc1bb 100644 --- a/revision.c +++ b/revision.c @@ -1410,7 +1410,8 @@ static int limit_list(struct rev_info *revs) continue; break; } - if (revs->min_age != -1 && (commit->date > revs->min_age)) + if (revs->min_age != -1 && (commit->date > revs->min_age) && + !revs->line_level_traverse) continue; date = commit->date; p = &commit_list_insert(commit, p)->next; diff --git a/t/t4211-line-log.sh b/t/t4211-line-log.sh index 1428eae..e186c83 100755 --- a/t/t4211-line-log.sh +++ b/t/t4211-line-log.sh @@ -240,10 +240,12 @@ test_expect_success 'setup for checking line-log and parent oids' ' EOF git add file.c && test_tick && + first_tick=$test_tick && git commit -m "Add func1() and func2() in file.c" && echo 1 >other-file && git add other-file && + test_tick && git commit -m "Add other-file" && sed -e "s/F1/F1 + 1/" file.c >tmp && @@ -283,4 +285,10 @@ test_expect_success 'parent oids with parent rewriting' ' test_cmp expect actual ' +test_expect_success 'line-log with --before' ' + echo $root_oid >expect && + git log --format=%h --no-patch -L:func2:file.c --before=$first_tick >actual && + test_cmp expect actual +' + test_done -- cgit v0.10.2-6-g49f6