Merge branch 'mk/combine-diff-context-horizon-fix' into maint
* mk/combine-diff-context-horizon-fix: combine-diff.c: Fix output when changes are exactly 3 lines apart
This commit is contained in:
commit
a0bf40ddc9
@ -518,8 +518,11 @@ static int give_context(struct sline *sline, unsigned long cnt, int num_parent)
|
|||||||
unsigned long k;
|
unsigned long k;
|
||||||
|
|
||||||
/* Paint a few lines before the first interesting line. */
|
/* Paint a few lines before the first interesting line. */
|
||||||
while (j < i)
|
while (j < i) {
|
||||||
sline[j++].flag |= mark | no_pre_delete;
|
if (!(sline[j].flag & mark))
|
||||||
|
sline[j].flag |= no_pre_delete;
|
||||||
|
sline[j++].flag |= mark;
|
||||||
|
}
|
||||||
|
|
||||||
again:
|
again:
|
||||||
/* we know up to i is to be included. where does the
|
/* we know up to i is to be included. where does the
|
||||||
|
@ -353,4 +353,52 @@ test_expect_failure 'combine diff coalesce three parents' '
|
|||||||
compare_diff_patch expected actual
|
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
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user