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:
parent
a6ee883b8e
commit
3ec62ad9ff
@ -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
|
||||||
|
@ -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 &&
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user