Browse Source

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>
maint
Elijah Newren 9 years ago committed by Junio C Hamano
parent
commit
3ec62ad9ff
  1. 6
      git-merge-octopus.sh
  2. 6
      t/t6044-merge-unrelated-index-changes.sh

6
git-merge-octopus.sh

@ -44,6 +44,12 @@ esac @@ -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

6
t/t6044-merge-unrelated-index-changes.sh

@ -105,7 +105,7 @@ test_expect_success 'recursive' ' @@ -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' ' @@ -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' ' @@ -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 &&


Loading…
Cancel
Save