2009-07-23 05:48:29 +08:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
test_description='combined diff'
|
|
|
|
|
|
|
|
. ./test-lib.sh
|
|
|
|
|
|
|
|
setup_helper () {
|
|
|
|
one=$1 branch=$2 side=$3 &&
|
|
|
|
|
|
|
|
git branch $side $branch &&
|
|
|
|
for l in $one two three fyra
|
|
|
|
do
|
|
|
|
echo $l
|
|
|
|
done >file &&
|
|
|
|
git add file &&
|
|
|
|
test_tick &&
|
|
|
|
git commit -m $branch &&
|
|
|
|
git checkout $side &&
|
|
|
|
for l in $one two three quatro
|
|
|
|
do
|
|
|
|
echo $l
|
|
|
|
done >file &&
|
|
|
|
git add file &&
|
|
|
|
test_tick &&
|
|
|
|
git commit -m $side &&
|
|
|
|
test_must_fail git merge $branch &&
|
|
|
|
for l in $one three four
|
|
|
|
do
|
|
|
|
echo $l
|
|
|
|
done >file &&
|
|
|
|
git add file &&
|
|
|
|
test_tick &&
|
|
|
|
git commit -m "merge $branch into $side"
|
|
|
|
}
|
|
|
|
|
|
|
|
verify_helper () {
|
|
|
|
it=$1 &&
|
|
|
|
|
|
|
|
# Ignore lines that were removed only from the other parent
|
|
|
|
sed -e '
|
|
|
|
1,/^@@@/d
|
|
|
|
/^ -/d
|
|
|
|
s/^\(.\)./\1/
|
|
|
|
' "$it" >"$it.actual.1" &&
|
|
|
|
sed -e '
|
|
|
|
1,/^@@@/d
|
|
|
|
/^- /d
|
|
|
|
s/^.\(.\)/\1/
|
|
|
|
' "$it" >"$it.actual.2" &&
|
|
|
|
|
|
|
|
git diff "$it^" "$it" -- | sed -e '1,/^@@/d' >"$it.expect.1" &&
|
|
|
|
test_cmp "$it.expect.1" "$it.actual.1" &&
|
|
|
|
|
|
|
|
git diff "$it^2" "$it" -- | sed -e '1,/^@@/d' >"$it.expect.2" &&
|
|
|
|
test_cmp "$it.expect.2" "$it.actual.2"
|
|
|
|
}
|
|
|
|
|
|
|
|
test_expect_success setup '
|
|
|
|
>file &&
|
|
|
|
git add file &&
|
|
|
|
test_tick &&
|
|
|
|
git commit -m initial &&
|
|
|
|
|
|
|
|
git branch withone &&
|
|
|
|
git branch sansone &&
|
|
|
|
|
|
|
|
git checkout withone &&
|
|
|
|
setup_helper one withone sidewithone &&
|
|
|
|
|
|
|
|
git checkout sansone &&
|
|
|
|
setup_helper "" sansone sidesansone
|
|
|
|
'
|
|
|
|
|
|
|
|
test_expect_success 'check combined output (1)' '
|
|
|
|
git show sidewithone -- >sidewithone &&
|
|
|
|
verify_helper sidewithone
|
|
|
|
'
|
|
|
|
|
2010-01-28 16:41:52 +08:00
|
|
|
test_expect_success 'check combined output (2)' '
|
2009-07-23 05:48:29 +08:00
|
|
|
git show sidesansone -- >sidesansone &&
|
|
|
|
verify_helper sidesansone
|
|
|
|
'
|
|
|
|
|
2010-04-15 20:59:37 +08:00
|
|
|
test_expect_success 'diagnose truncated file' '
|
|
|
|
>file &&
|
|
|
|
git add file &&
|
|
|
|
git commit --amend -C HEAD &&
|
|
|
|
git show >out &&
|
|
|
|
grep "diff --cc file" out
|
|
|
|
'
|
|
|
|
|
2009-07-23 05:48:29 +08:00
|
|
|
test_done
|