diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-04-16 13:28:07 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-04-16 13:28:07 +0300 |
commit | 04f879a7fb86048a0b6e9ea58a4d7d058bffde0b (patch) | |
tree | c7bf24526c6c81f0764c517d69f385f551f1a209 /t | |
parent | fffbf7c6ba3a3653b92329f879d238e6fea4dfce (diff) | |
parent | ab5af825db8beaf623f8ac95e4b4179ec1b9569e (diff) |
Merge branch 'nd/checkout-f-while-conflicted-fix'
"git checkout -f <branch>" while the index has an unmerged path
incorrectly left some paths in an unmerged state, which has been
corrected.
* nd/checkout-f-while-conflicted-fix:
unpack-trees: fix oneway_merge accidentally carry over stage index
Diffstat (limited to 't')
-rwxr-xr-x | t/t2023-checkout-m.sh | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/t/t2023-checkout-m.sh b/t/t2023-checkout-m.sh index 7e18985134..fca3f85824 100755 --- a/t/t2023-checkout-m.sh +++ b/t/t2023-checkout-m.sh @@ -46,4 +46,28 @@ test_expect_success '-m restores 3-way conflicted+resolved file' ' test_cmp both.txt.conflicted.cleaned both.txt.cleaned ' +test_expect_success 'force checkout a conflict file creates stage zero entry' ' + git init co-force && + ( + cd co-force && + echo a >a && + git add a && + git commit -ama && + A_OBJ=$(git rev-parse :a) && + git branch topic && + echo b >a && + git commit -amb && + B_OBJ=$(git rev-parse :a) && + git checkout topic && + echo c >a && + C_OBJ=$(git hash-object a) && + git checkout -m master && + test_cmp_rev :1:a $A_OBJ && + test_cmp_rev :2:a $B_OBJ && + test_cmp_rev :3:a $C_OBJ && + git checkout -f topic && + test_cmp_rev :0:a $A_OBJ + ) +' + test_done |