From: Elijah Newren Date: Sun, 10 Apr 2016 06:13:38 +0000 (-0700) Subject: merge-octopus: abort if index does not match HEAD X-Git-Tag: v2.9.0-rc0~98^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3ec62ad9ffba2476e30fdf8e8717756fe62119f9;p=git-core%2Fgit.git merge-octopus: abort if index does not match HEAD Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- diff --git a/git-merge-octopus.sh b/git-merge-octopus.sh index 8643f74cb..dc2fd1b5a 100755 --- a/git-merge-octopus.sh +++ b/git-merge-octopus.sh @@ -44,6 +44,12 @@ esac # MRC is the current "merge reference commit" # 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) MRT=$(git write-tree) NON_FF_MERGE=0 diff --git a/t/t6044-merge-unrelated-index-changes.sh b/t/t6044-merge-unrelated-index-changes.sh index eed5d95c1..20a3ffed6 100755 --- a/t/t6044-merge-unrelated-index-changes.sh +++ b/t/t6044-merge-unrelated-index-changes.sh @@ -105,7 +105,7 @@ test_expect_success 'recursive' ' 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 checkout B^0 && @@ -114,7 +114,7 @@ test_expect_failure 'octopus, unrelated file touched' ' 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 checkout B^0 && @@ -123,7 +123,7 @@ test_expect_failure 'octopus, related file removed' ' 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 checkout B^0 &&