3 test_description
='combined diff'
8 one
=$1 branch
=$2 side
=$3 &&
10 git branch
$side $branch &&
11 for l
in $one two three fyra
17 git commit
-m $branch &&
19 for l
in $one two three quatro
25 git commit
-m $side &&
26 test_must_fail git merge
$branch &&
27 for l
in $one three four
33 git commit
-m "merge $branch into $side"
39 # Ignore lines that were removed only from the other parent
44 ' "$it" >"$it.actual.1" &&
49 ' "$it" >"$it.actual.2" &&
51 git
diff "$it^" "$it" -- |
sed -e '1,/^@@/d' >"$it.expect.1" &&
52 test_cmp
"$it.expect.1" "$it.actual.1" &&
54 git
diff "$it^2" "$it" -- |
sed -e '1,/^@@/d' >"$it.expect.2" &&
55 test_cmp
"$it.expect.2" "$it.actual.2"
58 test_expect_success setup
'
62 git commit -m initial &&
67 git checkout withone &&
68 setup_helper one withone sidewithone &&
70 git checkout sansone &&
71 setup_helper "" sansone sidesansone
74 test_expect_success
'check combined output (1)' '
75 git show sidewithone -- >sidewithone &&
76 verify_helper sidewithone
79 test_expect_success
'check combined output (2)' '
80 git show sidesansone -- >sidesansone &&
81 verify_helper sidesansone
84 test_expect_success
'diagnose truncated file' '
87 git commit --amend -C HEAD &&
89 grep "diff --cc file" out
92 # Test for a bug reported at
93 # http://thread.gmane.org/gmane.comp.version-control.git/224410
94 # where a delete lines were missing from combined diff output when they
95 # occurred exactly before the context lines of a later change.
96 test_expect_success
'combine diff missing delete bug' '
97 git commit -m initial --allow-empty &&
105 git commit -a -m side1 &&
106 git checkout -B side1 &&
107 git checkout HEAD^ &&
116 git commit -m side2 &&
117 git branch -f side2 &&
118 test_must_fail git merge --no-commit side1 &&
126 git commit -a -m merge &&
127 git diff-tree -c -p HEAD >actual.tmp &&
128 sed -e "1,/^@@@/d" < actual.tmp >actual &&
129 tr -d Q <<-\EOF >expected &&
137 test_cmp expected actual