summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-02-06 00:31:24 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-02-06 00:31:24 (GMT)
commit64971f0ac0200d3bb53cb19e7367cf57a40ae1fc (patch)
tree4d21d1a12b56d6b2896476d97861209b31faf688
parent897d28bcc23878b5d98b46f3903e3d2a302d8a01 (diff)
parent80f5a16798b7ff224aeab4a6b6e3627446071345 (diff)
downloadgit-64971f0ac0200d3bb53cb19e7367cf57a40ae1fc.zip
git-64971f0ac0200d3bb53cb19e7367cf57a40ae1fc.tar.gz
git-64971f0ac0200d3bb53cb19e7367cf57a40ae1fc.tar.bz2
Merge branch 'pb/mergetool-tool-help-fix' into maint
Fix 2.29 regression where "git mergetool --tool-help" fails to list all the available tools. * pb/mergetool-tool-help-fix: mergetool--lib: fix '--tool-help' to correctly show available tools
-rw-r--r--git-mergetool--lib.sh6
-rwxr-xr-xt/t7610-mergetool.sh11
2 files changed, 15 insertions, 2 deletions
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 7225abd..78f3647 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -46,9 +46,11 @@ show_tool_names () {
while read scriptname
do
setup_tool "$scriptname" 2>/dev/null
- variants="$variants$(list_tool_variants)\n"
+ # We need an actual line feed here
+ variants="$variants
+$(list_tool_variants)"
done
- variants="$(echo "$variants" | sort | uniq)"
+ variants="$(echo "$variants" | sort -u)"
for toolname in $variants
do
diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh
index 70afdd0..6ac75b5 100755
--- a/t/t7610-mergetool.sh
+++ b/t/t7610-mergetool.sh
@@ -828,4 +828,15 @@ test_expect_success 'mergetool -Oorder-file is honored' '
test_cmp expect actual
'
+test_expect_success 'mergetool --tool-help shows recognized tools' '
+ # Check a few known tools are correctly shown
+ git mergetool --tool-help >mergetools &&
+ grep vimdiff mergetools &&
+ grep vimdiff3 mergetools &&
+ grep gvimdiff2 mergetools &&
+ grep araxis mergetools &&
+ grep xxdiff mergetools &&
+ grep meld mergetools
+'
+
test_done