summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-10-01 19:58:57 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-10-01 19:58:57 (GMT)
commit5ec11ab39d11aecd731044955a7a4f7e925cdba6 (patch)
tree87432ee7fd9345d922f2fa7d182246125cc3b61d /t
parent69759917aa4b1efb5bf198e76c3664bed9c70d4d (diff)
parenta427ef7acc9d932d1c203dd2fae67f51c4b1d1e8 (diff)
downloadgit-5ec11ab39d11aecd731044955a7a4f7e925cdba6.zip
git-5ec11ab39d11aecd731044955a7a4f7e925cdba6.tar.gz
git-5ec11ab39d11aecd731044955a7a4f7e925cdba6.tar.bz2
Merge branch 'da/mergetool-custom'
The actual external command to run for mergetool backend can be specified with difftool/mergetool.$name.cmd configuration variables, but this mechanism was ignored for the backends we natively support. * da/mergetool-custom: mergetool--lib: Allow custom commands to override built-ins
Diffstat (limited to 't')
-rwxr-xr-xt/t7610-mergetool.sh13
-rwxr-xr-xt/t7800-difftool.sh11
2 files changed, 24 insertions, 0 deletions
diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh
index 6fa0c70..bc38737 100755
--- a/t/t7610-mergetool.sh
+++ b/t/t7610-mergetool.sh
@@ -509,4 +509,17 @@ test_expect_success 'file with no base' '
git reset --hard master >/dev/null 2>&1
'
+test_expect_success 'custom commands override built-ins' '
+ git checkout -b test14 branch1 &&
+ git config mergetool.defaults.cmd "cat \"\$REMOTE\" >\"\$MERGED\"" &&
+ git config mergetool.defaults.trustExitCode true &&
+ test_must_fail git merge master &&
+ git mergetool --no-prompt --tool defaults -- both &&
+ echo master both added >expected &&
+ test_cmp both expected &&
+ git config --unset mergetool.defaults.cmd &&
+ git config --unset mergetool.defaults.trustExitCode &&
+ git reset --hard master >/dev/null 2>&1
+'
+
test_done
diff --git a/t/t7800-difftool.sh b/t/t7800-difftool.sh
index 9c3e997..eb1d3f8 100755
--- a/t/t7800-difftool.sh
+++ b/t/t7800-difftool.sh
@@ -76,6 +76,17 @@ test_expect_success PERL 'custom commands' '
test "$diff" = "branch"
'
+# Ensures that a custom difftool.<tool>.cmd overrides built-ins
+test_expect_success PERL 'custom commands override built-ins' '
+ restore_test_defaults &&
+ git config difftool.defaults.cmd "cat \$REMOTE" &&
+
+ diff=$(git difftool --tool defaults --no-prompt branch) &&
+ test "$diff" = "master" &&
+
+ git config --unset difftool.defaults.cmd
+'
+
# Ensures that git-difftool ignores bogus --tool values
test_expect_success PERL 'difftool ignores bad --tool values' '
diff=$(git difftool --no-prompt --tool=bad-tool branch)