Skip to content

Commit

Permalink
Merge branch 'mk/combine-diff-context-horizon-fix' into maint
Browse files Browse the repository at this point in the history
* mk/combine-diff-context-horizon-fix:
  combine-diff.c: Fix output when changes are exactly 3 lines apart
  • Loading branch information
Junio C Hamano committed Jun 27, 2013
2 parents 81de16a + aac3857 commit a0bf40d
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 2 deletions.
7 changes: 5 additions & 2 deletions combine-diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -518,8 +518,11 @@ static int give_context(struct sline *sline, unsigned long cnt, int num_parent)
unsigned long k;

/* Paint a few lines before the first interesting line. */
while (j < i)
sline[j++].flag |= mark | no_pre_delete;
while (j < i) {
if (!(sline[j].flag & mark))
sline[j].flag |= no_pre_delete;
sline[j++].flag |= mark;
}

again:
/* we know up to i is to be included. where does the
Expand Down
48 changes: 48 additions & 0 deletions t/t4038-diff-combined.sh
Original file line number Diff line number Diff line change
Expand Up @@ -353,4 +353,52 @@ test_expect_failure 'combine diff coalesce three parents' '
compare_diff_patch expected actual
'

# Test for a bug reported at
# http://thread.gmane.org/gmane.comp.version-control.git/224410
# where a delete lines were missing from combined diff output when they
# occurred exactly before the context lines of a later change.
test_expect_success 'combine diff missing delete bug' '
git commit -m initial --allow-empty &&
cat <<-\EOF >test &&
1
2
3
4
EOF
git add test &&
git commit -a -m side1 &&
git checkout -B side1 &&
git checkout HEAD^ &&
cat <<-\EOF >test &&
0
1
2
3
4modified
EOF
git add test &&
git commit -m side2 &&
git branch -f side2 &&
test_must_fail git merge --no-commit side1 &&
cat <<-\EOF >test &&
1
2
3
4modified
EOF
git add test &&
git commit -a -m merge &&
git diff-tree -c -p HEAD >actual.tmp &&
sed -e "1,/^@@@/d" < actual.tmp >actual &&
tr -d Q <<-\EOF >expected &&
- 0
1
2
3
-4
+4modified
EOF
compare_diff_patch expected actual
'

test_done

0 comments on commit a0bf40d

Please sign in to comment.