git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 6/7] mergetools: Fix difftool/mergetool --tool-help listing for vim

From
David Aguilar <davvid@gmail.com>
Date
Jan 25, 2013, 09:43 UTC
Message-ID
<1359107034-14606-7-git-send-email-davvid@gmail.com>
In-Reply-To
<1359107034-14606-1-git-send-email-davvid@gmail.com>

"git difftool --tool-help" and "git mergetool --tool-help" incorreclty list "vim" as being an unavailable tool. This is because they attempt to find a tool named according to the mergetool scriptlet instead of the Git- recognized tool name.

vimdiff, vimdiff2, gvimdiff, and gvimdiff2 are all provided by the "vim" scriptlet. This required git-mergetool--lib to special-case it when setting up the tool.

Remove the exception for "vim" and allow the scriptlets to be found naturally by using symlinks to a single "vimdiff" scriptlet. This causes the --tool-help option to correctly list vimdiff, vimdiff2, gvimdiff, and gvimdiff2 in its output.

Signed-off-by: David Aguilar <davvid@gmail.com>
---
 git-mergetool--lib.sh       | 9 +--------
 mergetools/gvimdiff         | 1 +
 mergetools/gvimdiff2        | 1 +
 mergetools/{vim => vimdiff} | 0
 mergetools/vimdiff2         | 1 +
 5 files changed, 4 insertions(+), 8 deletions(-)
 create mode 120000 mergetools/gvimdiff
 create mode 120000 mergetools/gvimdiff2
 rename mergetools/{vim => vimdiff} (100%)
 create mode 120000 mergetools/vimdiff2
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 4c1e129..db8218a 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -44,14 +44,7 @@ valid_tool () {
 }
 
 setup_tool () {
-	case "$1" in
-	vim*|gvim*)
-		tool=vim
-		;;
-	*)
-		tool="$1"
-		;;
-	esac
+	tool="$1"
 	mergetools="$(git --exec-path)/mergetools"
 
 	# Load the default definitions
diff --git a/mergetools/gvimdiff b/mergetools/gvimdiff
new file mode 120000
index 0000000..2a72558
--- /dev/null
+++ b/mergetools/gvimdiff
@@ -0,0 +1 @@
+vimdiff
\ No newline at end of file
diff --git a/mergetools/gvimdiff2 b/mergetools/gvimdiff2
new file mode 120000
index 0000000..2a72558
--- /dev/null
+++ b/mergetools/gvimdiff2
@@ -0,0 +1 @@
+vimdiff
\ No newline at end of file
diff --git a/mergetools/vim b/mergetools/vimdiff
similarity index 100%
rename from mergetools/vim
rename to mergetools/vimdiff
diff --git a/mergetools/vimdiff2 b/mergetools/vimdiff2
new file mode 120000
index 0000000..2a72558
--- /dev/null
+++ b/mergetools/vimdiff2
@@ -0,0 +1 @@
+vimdiff
\ No newline at end of file
-- 
1.8.1.1.367.g22b1720.dirty
Previous: David AguilarNext: Sebastian Schuberth
Message 7 of 30 in “mergetool-lib improvements for --tool-help”
  1. 0/7 mergetool-lib improvements for --tool-helpDavid Aguilar, Jan 25, 2013
  2. 1/7 git-mergetool: move show_tool_help to mergetool--libDavid Aguilar, Jan 25, 2013
  3. 2/7 git-mergetool: remove redundant assignmentDavid Aguilar, Jan 25, 2013
  4. 3/7 git-mergetool: don't hardcode 'mergetool' in show_tool_helpDavid Aguilar, Jan 25, 2013
  5. 4/7 git-difftool: use git-mergetool--lib for "--tool-help"David Aguilar, Jan 25, 2013
  6. 5/7 mergetools/vim: Remove redundant diff commandDavid Aguilar, Jan 25, 2013
  7. 6/7 mergetools: Fix difftool/mergetool --tool-help listing for vimDavid Aguilar, Jan 25, 2013
  8. Sebastian SchuberthJan 25, 2013
  9. David AguilarJan 25, 2013
  10. Sebastian SchuberthJan 25, 2013
  11. Sebastian SchuberthJan 25, 2013
  12. John KeepingJan 25, 2013
  13. David AguilarJan 25, 2013
  14. Junio C HamanoJan 25, 2013
  15. 7/7 mergetool--lib: Improve show_tool_help() outputDavid Aguilar, Jan 25, 2013
  16. John KeepingJan 25, 2013
  17. Junio C HamanoJan 25, 2013
  18. John KeepingJan 25, 2013
  19. Junio C HamanoJan 25, 2013
  20. John KeepingJan 25, 2013
  21. Junio C HamanoJan 25, 2013
  22. John KeepingJan 25, 2013
  23. Junio C HamanoJan 25, 2013
  24. John KeepingJan 25, 2013
  25. 8/7 mergetool--lib: don't call "exit" in setup_toolJohn Keeping, Jan 25, 2013
  26. Junio C HamanoJan 26, 2013
  27. David AguilarJan 26, 2013
  28. 1/2 mergetool--lib: don't call "exit" in setup_toolJohn Keeping, Jan 26, 2013
  29. 1/2 mergetool--lib: don't call "exit" in setup_toolJohn Keeping, Jan 26, 2013
  30. 9/7 mergetool--lib: fix path lookup in guess_merge_toolJohn Keeping, Jan 25, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.