#!/bin/sh
#
# Copyright (c) 2008 Charles Bailey
#

test_description='git mergetool

Testing basic merge tool invocation'

. ./test-lib.sh

# All the mergetool test work by checking out a temporary branch based
# off 'branch1' and then merging in master and checking the results of
# running mergetool

test_expect_success 'setup' '
    git config rerere.enabled true &&
    echo master >file1 &&
    echo master file11 >file11 &&
    echo master file12 >file12 &&
    echo master file13 >file13 &&
    echo master file14 >file14 &&
    mkdir subdir &&
    echo master sub >subdir/file3 &&
    test_create_repo submod &&
    (
	cd submod &&
	: >foo &&
	git add foo &&
	git commit -m "Add foo"
    ) &&
    git submodule add git://example.com/submod submod &&
    git add file1 file1[1-4] subdir/file3 .gitmodules submod &&
    git commit -m "add initial versions" &&

    git checkout -b branch1 master &&
    git submodule update -N &&
    echo branch1 change >file1 &&
    echo branch1 newfile >file2 &&
    echo branch1 change file11 >file11 &&
    echo branch1 change file13 >file13 &&
    echo branch1 sub >subdir/file3 &&
    (
	cd submod &&
	echo branch1 submodule >bar &&
	git add bar &&
	git commit -m "Add bar on branch1" &&
	git checkout -b submod-branch1
    ) &&
    git add file1 file11 file13 file2 subdir/file3 submod &&
    git rm file12 &&
    git commit -m "branch1 changes" &&

    git checkout master &&
    git submodule update -N &&
    echo master updated >file1 &&
    echo master new >file2 &&
    echo master updated file12 >file12 &&
    echo master updated file14 >file14 &&
    echo master new sub >subdir/file3 &&
    (
	cd submod &&
	echo master submodule >bar &&
	git add bar &&
	git commit -m "Add bar on master" &&
	git checkout -b submod-master
    ) &&
    git add file1 file12 file14 file2 subdir/file3 submod &&
    git rm file11 &&
    git commit -m "master updates" &&

    git config merge.tool mytool &&
    git config mergetool.mytool.cmd "cat \"\$REMOTE\" >\"\$MERGED\"" &&
    git config mergetool.mytool.trustExitCode true
'

test_expect_success 'custom mergetool' '
    git checkout -b test1 branch1 &&
    git submodule update -N &&
    test_must_fail git merge master >/dev/null 2>&1 &&
    ( yes "" | git mergetool file1 >/dev/null 2>&1 ) &&
    ( yes "" | git mergetool file2 >/dev/null 2>&1 ) &&
    ( yes "" | git mergetool subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file12 >/dev/null 2>&1 ) &&
    ( yes "l" | git mergetool submod >/dev/null 2>&1 ) &&
    test "$(cat file1)" = "master updated" &&
    test "$(cat file2)" = "master new" &&
    test "$(cat subdir/file3)" = "master new sub" &&
    test "$(cat submod/bar)" = "branch1 submodule" &&
    git commit -m "branch1 resolved with mergetool"
'

test_expect_success 'mergetool crlf' '
    git config core.autocrlf true &&
    git checkout -b test2 branch1 &&
    test_must_fail git merge master >/dev/null 2>&1 &&
    ( yes "" | git mergetool file1 >/dev/null 2>&1 ) &&
    ( yes "" | git mergetool file2 >/dev/null 2>&1 ) &&
    ( yes "" | git mergetool subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file12 >/dev/null 2>&1 ) &&
    ( yes "r" | git mergetool submod >/dev/null 2>&1 ) &&
    test "$(printf x | cat file1 -)" = "$(printf "master updated\r\nx")" &&
    test "$(printf x | cat file2 -)" = "$(printf "master new\r\nx")" &&
    test "$(printf x | cat subdir/file3 -)" = "$(printf "master new sub\r\nx")" &&
    git submodule update -N &&
    test "$(cat submod/bar)" = "master submodule" &&
    git commit -m "branch1 resolved with mergetool - autocrlf" &&
    git config core.autocrlf false &&
    git reset --hard
'

test_expect_success 'mergetool in subdir' '
    git checkout -b test3 branch1 &&
    git submodule update -N &&
    (
	cd subdir &&
	test_must_fail git merge master >/dev/null 2>&1 &&
	( yes "" | git mergetool file3 >/dev/null 2>&1 ) &&
	test "$(cat file3)" = "master new sub"
    )
'

test_expect_success 'mergetool on file in parent dir' '
    (
	cd subdir &&
	( yes "" | git mergetool ../file1 >/dev/null 2>&1 ) &&
	( yes "" | git mergetool ../file2 >/dev/null 2>&1 ) &&
	( yes "d" | git mergetool ../file11 >/dev/null 2>&1 ) &&
	( yes "d" | git mergetool ../file12 >/dev/null 2>&1 ) &&
	( yes "l" | git mergetool ../submod >/dev/null 2>&1 ) &&
	test "$(cat ../file1)" = "master updated" &&
	test "$(cat ../file2)" = "master new" &&
	test "$(cat ../submod/bar)" = "branch1 submodule" &&
	git commit -m "branch1 resolved with mergetool - subdir"
    )
'

test_expect_success 'mergetool skips autoresolved' '
    git checkout -b test4 branch1 &&
    git submodule update -N &&
    test_must_fail git merge master &&
    test -n "$(git ls-files -u)" &&
    ( yes "d" | git mergetool file11 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file12 >/dev/null 2>&1 ) &&
    ( yes "l" | git mergetool submod >/dev/null 2>&1 ) &&
    output="$(git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git reset --hard
'

test_expect_success 'mergetool merges all from subdir' '
    (
	cd subdir &&
	git config rerere.enabled false &&
	test_must_fail git merge master &&
	( yes "r" | git mergetool ../submod ) &&
	( yes "d" "d" | git mergetool --no-prompt ) &&
	test "$(cat ../file1)" = "master updated" &&
	test "$(cat ../file2)" = "master new" &&
	test "$(cat file3)" = "master new sub" &&
	( cd .. && git submodule update -N ) &&
	test "$(cat ../submod/bar)" = "master submodule" &&
	git commit -m "branch2 resolved by mergetool from subdir"
    )
'

test_expect_success 'mergetool skips resolved paths when rerere is active' '
    git config rerere.enabled true &&
    rm -rf .git/rr-cache &&
    git checkout -b test5 branch1
    git submodule update -N &&
    test_must_fail git merge master >/dev/null 2>&1 &&
    ( yes "l" | git mergetool --no-prompt submod >/dev/null 2>&1 ) &&
    ( yes "d" "d" | git mergetool --no-prompt >/dev/null 2>&1 ) &&
    git submodule update -N &&
    output="$(yes "n" | git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git reset --hard
'

test_expect_success 'deleted vs modified submodule' '
    git checkout -b test6 branch1 &&
    git submodule update -N &&
    mv submod submod-movedaside &&
    git rm submod &&
    git commit -m "Submodule deleted from branch" &&
    git checkout -b test6.a test6 &&
    test_must_fail git merge master &&
    test -n "$(git ls-files -u)" &&
    ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
    ( yes "r" | git mergetool submod ) &&
    rmdir submod && mv submod-movedaside submod &&
    test "$(cat submod/bar)" = "branch1 submodule" &&
    git submodule update -N &&
    test "$(cat submod/bar)" = "master submodule" &&
    output="$(git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git commit -m "Merge resolved by keeping module" &&

    mv submod submod-movedaside &&
    git checkout -b test6.b test6 &&
    git submodule update -N &&
    test_must_fail git merge master &&
    test -n "$(git ls-files -u)" &&
    ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
    ( yes "l" | git mergetool submod ) &&
    test ! -e submod &&
    output="$(git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git commit -m "Merge resolved by deleting module" &&

    mv submod-movedaside submod &&
    git checkout -b test6.c master &&
    git submodule update -N &&
    test_must_fail git merge test6 &&
    test -n "$(git ls-files -u)" &&
    ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
    ( yes "r" | git mergetool submod ) &&
    test ! -e submod &&
    test -d submod.orig &&
    git submodule update -N &&
    output="$(git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git commit -m "Merge resolved by deleting module" &&
    mv submod.orig submod &&

    git checkout -b test6.d master &&
    git submodule update -N &&
    test_must_fail git merge test6 &&
    test -n "$(git ls-files -u)" &&
    ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
    ( yes "l" | git mergetool submod ) &&
    test "$(cat submod/bar)" = "master submodule" &&
    git submodule update -N &&
    test "$(cat submod/bar)" = "master submodule" &&
    output="$(git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git commit -m "Merge resolved by keeping module" &&
    git reset --hard HEAD
'

test_expect_success 'file vs modified submodule' '
    git checkout -b test7 branch1 &&
    git submodule update -N &&
    mv submod submod-movedaside &&
    git rm submod &&
    echo not a submodule >submod &&
    git add submod &&
    git commit -m "Submodule path becomes file" &&
    git checkout -b test7.a branch1 &&
    test_must_fail git merge master &&
    test -n "$(git ls-files -u)" &&
    ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
    ( yes "r" | git mergetool submod ) &&
    rmdir submod && mv submod-movedaside submod &&
    test "$(cat submod/bar)" = "branch1 submodule" &&
    git submodule update -N &&
    test "$(cat submod/bar)" = "master submodule" &&
    output="$(git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git commit -m "Merge resolved by keeping module" &&

    mv submod submod-movedaside &&
    git checkout -b test7.b test7 &&
    test_must_fail git merge master &&
    test -n "$(git ls-files -u)" &&
    ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
    ( yes "l" | git mergetool submod ) &&
    git submodule update -N &&
    test "$(cat submod)" = "not a submodule" &&
    output="$(git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git commit -m "Merge resolved by keeping file" &&

    git checkout -b test7.c master &&
    rmdir submod && mv submod-movedaside submod &&
    test ! -e submod.orig &&
    git submodule update -N &&
    test_must_fail git merge test7 &&
    test -n "$(git ls-files -u)" &&
    ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
    ( yes "r" | git mergetool submod ) &&
    test -d submod.orig &&
    git submodule update -N &&
    test "$(cat submod)" = "not a submodule" &&
    output="$(git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git commit -m "Merge resolved by keeping file" &&

    git checkout -b test7.d master &&
    rmdir submod && mv submod.orig submod &&
    git submodule update -N &&
    test_must_fail git merge test7 &&
    test -n "$(git ls-files -u)" &&
    ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
    ( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
    ( yes "l" | git mergetool submod ) &&
    test "$(cat submod/bar)" = "master submodule" &&
    git submodule update -N &&
    test "$(cat submod/bar)" = "master submodule" &&
    output="$(git mergetool --no-prompt)" &&
    test "$output" = "No files need merging" &&
    git commit -m "Merge resolved by keeping module"
'

test_expect_success 'submodule in subdirectory' '
    git checkout -b test10 branch1 &&
    git submodule update -N &&
    (
	cd subdir &&
	test_create_repo subdir_module &&
	(
	    cd subdir_module &&
	    : >file15 &&
	    git add file15 &&
	    git commit -m "add initial versions"
	)
    ) &&
    git submodule add git://example.com/subsubmodule subdir/subdir_module &&
    git add subdir/subdir_module &&
    git commit -m "add submodule in subdirectory" &&

    git checkout -b test10.a test10 &&
    git submodule update -N &&
    (
	cd subdir/subdir_module &&
	git checkout -b super10.a &&
	echo test10.a >file15 &&
	git add file15 &&
	git commit -m "on branch 10.a"
    ) &&
    git add subdir/subdir_module &&
    git commit -m "change submodule in subdirectory on test10.a" &&

    git checkout -b test10.b test10 &&
    git submodule update -N &&
    (
	cd subdir/subdir_module &&
	git checkout -b super10.b &&
	echo test10.b >file15 &&
	git add file15 &&
	git commit -m "on branch 10.b"
    ) &&
    git add subdir/subdir_module &&
    git commit -m "change submodule in subdirectory on test10.b" &&

    test_must_fail git merge test10.a >/dev/null 2>&1 &&
    (
	cd subdir &&
	( yes "l" | git mergetool subdir_module )
    ) &&
    test "$(cat subdir/subdir_module/file15)" = "test10.b" &&
    git submodule update -N &&
    test "$(cat subdir/subdir_module/file15)" = "test10.b" &&
    git reset --hard &&
    git submodule update -N &&

    test_must_fail git merge test10.a >/dev/null 2>&1 &&
    ( yes "r" | git mergetool subdir/subdir_module ) &&
    test "$(cat subdir/subdir_module/file15)" = "test10.b" &&
    git submodule update -N &&
    test "$(cat subdir/subdir_module/file15)" = "test10.a" &&
    git commit -m "branch1 resolved with mergetool" &&
    rm -rf subdir/subdir_module
'

test_expect_success 'directory vs modified submodule' '
    git checkout -b test11 branch1 &&
    mv submod submod-movedaside &&
    git rm submod &&
    mkdir submod &&
    echo not a submodule >submod/file16 &&
    git add submod/file16 &&
    git commit -m "Submodule path becomes directory" &&

    test_must_fail git merge master &&
    test -n "$(git ls-files -u)" &&
    ( yes "l" | git mergetool submod ) &&
    test "$(cat submod/file16)" = "not a submodule" &&
    rm -rf submod.orig &&

    git reset --hard &&
    test_must_fail git merge master &&
    test -n "$(git ls-files -u)" &&
    test ! -e submod.orig &&
    ( yes "r" | git mergetool submod ) &&
    test -d submod.orig &&
    test "$(cat submod.orig/file16)" = "not a submodule" &&
    rm -r submod.orig &&
    mv submod-movedaside/.git submod &&
    ( cd submod && git clean -f && git reset --hard ) &&
    git submodule update -N &&
    test "$(cat submod/bar)" = "master submodule" &&
    git reset --hard && rm -rf submod-movedaside &&

    git checkout -b test11.c master &&
    git submodule update -N &&
    test_must_fail git merge test11 &&
    test -n "$(git ls-files -u)" &&
    ( yes "l" | git mergetool submod ) &&
    git submodule update -N &&
    test "$(cat submod/bar)" = "master submodule" &&

    git reset --hard &&
    git submodule update -N &&
    test_must_fail git merge test11 &&
    test -n "$(git ls-files -u)" &&
    test ! -e submod.orig &&
    ( yes "r" | git mergetool submod ) &&
    test "$(cat submod/file16)" = "not a submodule" &&

    git reset --hard master &&
    ( cd submod && git clean -f && git reset --hard ) &&
    git submodule update -N
'

test_done
