merge-octopus: abort if index does not match HEAD

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Elijah Newren 2016-04-09 23:13:38 -07:00 committed by Junio C Hamano
parent a6ee883b8e
commit 3ec62ad9ff
2 changed files with 9 additions and 3 deletions

View File

@ -44,6 +44,12 @@ esac
# MRC is the current "merge reference commit" # MRC is the current "merge reference commit"
# MRT is the current "merge result tree" # MRT is the current "merge result tree"
if ! git diff-index --quiet --cached HEAD --
then
echo "Error: Your local changes to the following files would be overwritten by merge"
git diff-index --cached --name-only HEAD -- | sed -e 's/^/ /'
exit 2
fi
MRC=$(git rev-parse --verify -q $head) MRC=$(git rev-parse --verify -q $head)
MRT=$(git write-tree) MRT=$(git write-tree)
NON_FF_MERGE=0 NON_FF_MERGE=0

View File

@ -105,7 +105,7 @@ test_expect_success 'recursive' '
test_must_fail git merge -s recursive C^0 test_must_fail git merge -s recursive C^0
' '
test_expect_failure 'octopus, unrelated file touched' ' test_expect_success 'octopus, unrelated file touched' '
git reset --hard && git reset --hard &&
git checkout B^0 && git checkout B^0 &&
@ -114,7 +114,7 @@ test_expect_failure 'octopus, unrelated file touched' '
test_must_fail git merge C^0 D^0 test_must_fail git merge C^0 D^0
' '
test_expect_failure 'octopus, related file removed' ' test_expect_success 'octopus, related file removed' '
git reset --hard && git reset --hard &&
git checkout B^0 && git checkout B^0 &&
@ -123,7 +123,7 @@ test_expect_failure 'octopus, related file removed' '
test_must_fail git merge C^0 D^0 test_must_fail git merge C^0 D^0
' '
test_expect_failure 'octopus, related file modified' ' test_expect_success 'octopus, related file modified' '
git reset --hard && git reset --hard &&
git checkout B^0 && git checkout B^0 &&