#!/bin/sh
#
# Copyright (c) 2009 Christian Couder
#

test_description='Tests for "git reset" with "--merge" and "--keep" options'

TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh

test_expect_success setup '
	printf "line %d\n" 1 2 3 >file1 &&
	cat file1 >file2 &&
	git add file1 file2 &&
	test_tick &&
	git commit -m "Initial commit" &&
	git tag initial &&
	echo line 4 >>file1 &&
	cat file1 >file2 &&
	test_tick &&
	git commit -m "add line 4 to file1" file1 &&
	git tag second
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     C       C     C    D     --merge  D       D     D
# file2:     C       D     D    D     --merge  C       D     D
test_expect_success 'reset --merge is ok with changes in file it does not touch' '
	git reset --merge HEAD^ &&
	! grep 4 file1 &&
	grep 4 file2 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" &&
	test -z "$(git diff --cached)"
'

test_expect_success 'reset --merge is ok when switching back' '
	git reset --merge second &&
	grep 4 file1 &&
	grep 4 file2 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse second)" &&
	test -z "$(git diff --cached)"
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     C       C     C    D     --keep   D       D     D
# file2:     C       D     D    D     --keep   C       D     D
test_expect_success 'reset --keep is ok with changes in file it does not touch' '
	git reset --hard second &&
	cat file1 >file2 &&
	git reset --keep HEAD^ &&
	! grep 4 file1 &&
	grep 4 file2 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" &&
	test -z "$(git diff --cached)"
'

test_expect_success 'reset --keep is ok when switching back' '
	git reset --keep second &&
	grep 4 file1 &&
	grep 4 file2 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse second)" &&
	test -z "$(git diff --cached)"
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     B       B     C    D     --merge  D       D     D
# file2:     C       D     D    D     --merge  C       D     D
test_expect_success 'reset --merge discards changes added to index (1)' '
	git reset --hard second &&
	cat file1 >file2 &&
	echo "line 5" >> file1 &&
	git add file1 &&
	git reset --merge HEAD^ &&
	! grep 4 file1 &&
	! grep 5 file1 &&
	grep 4 file2 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" &&
	test -z "$(git diff --cached)"
'

test_expect_success 'reset --merge is ok again when switching back (1)' '
	git reset --hard initial &&
	echo "line 5" >> file2 &&
	git add file2 &&
	git reset --merge second &&
	! grep 4 file2 &&
	! grep 5 file1 &&
	grep 4 file1 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse second)" &&
	test -z "$(git diff --cached)"
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     B       B     C    D     --keep   (disallowed)
test_expect_success 'reset --keep fails with changes in index in files it touches' '
	git reset --hard second &&
	echo "line 5" >> file1 &&
	git add file1 &&
	test_must_fail git reset --keep HEAD^
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     C       C     C    D     --merge  D       D     D
# file2:     C       C     D    D     --merge  D       D     D
test_expect_success 'reset --merge discards changes added to index (2)' '
	git reset --hard second &&
	echo "line 4" >> file2 &&
	git add file2 &&
	git reset --merge HEAD^ &&
	! grep 4 file2 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" &&
	test -z "$(git diff)" &&
	test -z "$(git diff --cached)"
'

test_expect_success 'reset --merge is ok again when switching back (2)' '
	git reset --hard initial &&
	git reset --merge second &&
	! grep 4 file2 &&
	grep 4 file1 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse second)" &&
	test -z "$(git diff --cached)"
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     C       C     C    D     --keep   D       D     D
# file2:     C       C     D    D     --keep   C       D     D
test_expect_success 'reset --keep keeps changes it does not touch' '
	git reset --hard second &&
	echo "line 4" >> file2 &&
	git add file2 &&
	git reset --keep HEAD^ &&
	grep 4 file2 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" &&
	test -z "$(git diff --cached)"
'

test_expect_success 'reset --keep keeps changes when switching back' '
	git reset --keep second &&
	grep 4 file2 &&
	grep 4 file1 &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse second)" &&
	test -z "$(git diff --cached)"
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     A       B     B    C     --merge  (disallowed)
test_expect_success 'reset --merge fails with changes in file it touches' '
	git reset --hard second &&
	echo "line 5" >> file1 &&
	test_tick &&
	git commit -m "add line 5" file1 &&
	sed -e "s/line 1/changed line 1/" <file1 >file3 &&
	mv file3 file1 &&
	test_must_fail git reset --merge HEAD^ 2>err.log &&
	grep file1 err.log | grep "not uptodate"
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     A       B     B    C     --keep   (disallowed)
test_expect_success 'reset --keep fails with changes in file it touches' '
	git reset --hard second &&
	echo "line 5" >> file1 &&
	test_tick &&
	git commit -m "add line 5" file1 &&
	sed -e "s/line 1/changed line 1/" <file1 >file3 &&
	mv file3 file1 &&
	test_must_fail git reset --keep HEAD^ 2>err.log &&
	grep file1 err.log | grep "not uptodate"
'

test_expect_success 'setup 3 different branches' '
	git reset --hard second &&
	git branch branch1 &&
	git branch branch2 &&
	git branch branch3 &&
	git checkout branch1 &&
	echo "line 5 in branch1" >> file1 &&
	test_tick &&
	git commit -a -m "change in branch1" &&
	git checkout branch2 &&
	echo "line 5 in branch2" >> file1 &&
	test_tick &&
	git commit -a -m "change in branch2" &&
	git tag third &&
	git checkout branch3 &&
	echo a new file >file3 &&
	rm -f file1 &&
	git add file3 &&
	test_tick &&
	git commit -a -m "change in branch3"
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     X       U     B    C     --merge  C       C     C
test_expect_success '"reset --merge HEAD^" is ok with pending merge' '
	git checkout third &&
	test_must_fail git merge branch1 &&
	git reset --merge HEAD^ &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse second)" &&
	test -z "$(git diff --cached)" &&
	test -z "$(git diff)"
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     X       U     B    C     --keep   (disallowed)
test_expect_success '"reset --keep HEAD^" fails with pending merge' '
	git reset --hard third &&
	test_must_fail git merge branch1 &&
	test_must_fail git reset --keep HEAD^ 2>err.log &&
	test_grep "middle of a merge" err.log
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     X       U     B    B     --merge  B       B     B
test_expect_success '"reset --merge HEAD" is ok with pending merge' '
	git reset --hard third &&
	test_must_fail git merge branch1 &&
	git reset --merge HEAD &&
	test "$(git rev-parse HEAD)" = "$(git rev-parse third)" &&
	test -z "$(git diff --cached)" &&
	test -z "$(git diff)"
'

# The next test will test the following:
#
#           working index HEAD target         working index HEAD
#           ----------------------------------------------------
# file1:     X       U     B    B     --keep   (disallowed)
test_expect_success '"reset --keep HEAD" fails with pending merge' '
	git reset --hard third &&
	test_must_fail git merge branch1 &&
	test_must_fail git reset --keep HEAD 2>err.log &&
	test_grep "middle of a merge" err.log
'

test_expect_success '--merge is ok with added/deleted merge' '
	git reset --hard third &&
	rm -f file2 &&
	test_must_fail git merge branch3 &&
	! test -f file2 &&
	test -f file3 &&
	git diff --exit-code file3 &&
	git diff --exit-code branch3 file3 &&
	git reset --merge HEAD &&
	! test -f file3 &&
	! test -f file2 &&
	git diff --exit-code --cached
'

test_expect_success '--keep fails with added/deleted merge' '
	git reset --hard third &&
	rm -f file2 &&
	test_must_fail git merge branch3 &&
	! test -f file2 &&
	test -f file3 &&
	git diff --exit-code file3 &&
	git diff --exit-code branch3 file3 &&
	test_must_fail git reset --keep HEAD 2>err.log &&
	test_grep "middle of a merge" err.log
'

test_done
