| #!/bin/sh |
| # |
| # Copyright (c) 2008 Charles Bailey |
| # |
| |
| test_description='git mergetool |
| |
| Testing basic merge tool invocation' |
| |
| . ./test-lib.sh |
| |
| test_expect_success 'setup' ' |
| echo master >file1 && |
| git add file1 && |
| git commit -m "added file1" && |
| git checkout -b branch1 master && |
| echo branch1 change >file1 && |
| echo branch1 newfile >file2 && |
| git add file1 file2 && |
| git commit -m "branch1 changes" && |
| git checkout -b branch2 master && |
| echo branch2 change >file1 && |
| echo branch2 newfile >file2 && |
| git add file1 file2 && |
| git commit -m "branch2 changes" && |
| git checkout master && |
| echo master updated >file1 && |
| echo master new >file2 && |
| git add file1 file2 && |
| git commit -m "master updates" |
| ' |
| |
| test_expect_success 'custom mergetool' ' |
| git config merge.tool mytool && |
| git config mergetool.mytool.cmd "cat \"\$REMOTE\" >\"\$MERGED\"" && |
| git config mergetool.mytool.trustExitCode true && |
| git checkout 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 ) && |
| test "$(cat file1)" = "master updated" && |
| test "$(cat file2)" = "master new" && |
| git commit -m "branch1 resolved with mergetool" |
| ' |
| |
| test_done |