Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blame.c1
-rwxr-xr-xt/t8003-blame-corner-cases.sh9
2 files changed, 10 insertions, 0 deletions
diff --git a/blame.c b/blame.c
index 82fa16d658..1be1cd82a2 100644
--- a/blame.c
+++ b/blame.c
@@ -1184,6 +1184,7 @@ void blame_coalesce(struct blame_scoreboard *sb)
for (ent = sb->ent; ent && (next = ent->next); ent = next) {
if (ent->suspect == next->suspect &&
ent->s_lno + ent->num_lines == next->s_lno &&
+ ent->lno + ent->num_lines == next->lno &&
ent->ignored == next->ignored &&
ent->unblamable == next->unblamable) {
ent->num_lines += next->num_lines;
diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh
index 383ba2bbd6..a3f12e3d16 100755
--- a/t/t8003-blame-corner-cases.sh
+++ b/t/t8003-blame-corner-cases.sh
@@ -311,4 +311,13 @@ test_expect_success 'blame coalesce' '
test_cmp expect actual
'
+test_expect_success 'blame does not coalesce non-adjacent result lines' '
+ cat >expect <<-EOF &&
+ $orig 1) ABC
+ $orig 3) DEF
+ EOF
+ git blame --no-abbrev -s -L1,1 -L3,3 $split giraffe >actual &&
+ test_cmp expect actual
+'
+
test_done