diff options
Diffstat (limited to 't/t6023-merge-rename-nocruft.sh')
-rwxr-xr-x | t/t6023-merge-rename-nocruft.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/t/t6023-merge-rename-nocruft.sh b/t/t6023-merge-rename-nocruft.sh index 69c66cf6f..65be95fba 100755 --- a/t/t6023-merge-rename-nocruft.sh +++ b/t/t6023-merge-rename-nocruft.sh @@ -45,6 +45,7 @@ git add A M && git commit -m "initial has A and M" && git branch white && git branch red && +git branch blue && git checkout white && sed -e "/^g /s/.*/g : white changes a line/" <A >B && @@ -58,6 +59,13 @@ echo created by red >R && git update-index --add R && git commit -m "red creates R" && +git checkout blue && +sed -e "/^o /s/.*/g : blue changes a line/" <A >B && +rm -f A && +mv B A && +git update-index A && +git commit -m "blue modify A" && + git checkout master' # This test broke in 65ac6e9c3f47807cb603af07a6a9e1a43bc119ae @@ -94,4 +102,38 @@ test_expect_success 'merge white into red (A->B,M->N)' \ return 0 ' +# This test broke in 8371234ecaaf6e14fe3f2082a855eff1bbd79ae9 +test_expect_success 'merge blue into white (A->B, mod A, A untracked)' \ +' + git checkout -b white-blue white && + echo dirty >A && + git merge blue && + git write-tree >/dev/null || { + echo "BAD: merge did not complete" + return 1 + } + + test -f A || { + echo "BAD: A does not exist in working directory" + return 1 + } + test `cat A` = dirty || { + echo "BAD: A content is wrong" + return 1 + } + test -f B || { + echo "BAD: B does not exist in working directory" + return 1 + } + test -f N || { + echo "BAD: N does not exist in working directory" + return 1 + } + test -f M && { + echo "BAD: M still exists in working directory" + return 1 + } + return 0 +' + test_done |