git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: David Aguilar <davvid@gmail.com>
To: gitster@pobox.com
Cc: git@vger.kernel.org, charles@hashpling.org, markus.heidelberg@web.de
Subject: [PATCH 02/14] git-mergetool/difftool: make (g)vimdiff workable under Windows
Date: Mon,  6 Apr 2009 01:31:17 -0700	[thread overview]
Message-ID: <1239006689-14695-3-git-send-email-davvid@gmail.com> (raw)
In-Reply-To: <1239006689-14695-2-git-send-email-davvid@gmail.com>

From: Markus Heidelberg <markus.heidelberg@web.de>

Under Windows vimdiff and gvimdiff are not available as symbolic links,
but as batch files vimdiff.bat and gvimdiff.bat. These files weren't
found by 'type vimdiff' which led to the following error:

    The merge tool vimdiff is not available as 'vimdiff'

Even if they were found, it wouldn't work to invoke these batch files
from git-mergetool.

To solve this, use vim and gvim (vim.exe and gvim.exe) and pass the -d
command line switch over to them.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
---
 contrib/difftool/git-difftool-helper |   10 ++++++++--
 git-mergetool.sh                     |   10 ++++++++--
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/contrib/difftool/git-difftool-helper b/contrib/difftool/git-difftool-helper
index 9c0a134..e481913 100755
--- a/contrib/difftool/git-difftool-helper
+++ b/contrib/difftool/git-difftool-helper
@@ -86,11 +86,11 @@ launch_merge_tool () {
 		;;
 
 	vimdiff)
-		"$merge_tool_path" -c "wincmd l" "$LOCAL" "$REMOTE"
+		"$merge_tool_path" -d -c "wincmd l" "$LOCAL" "$REMOTE"
 		;;
 
 	gvimdiff)
-		"$merge_tool_path" -c "wincmd l" -f "$LOCAL" "$REMOTE"
+		"$merge_tool_path" -d -c "wincmd l" -f "$LOCAL" "$REMOTE"
 		;;
 
 	xxdiff)
@@ -160,6 +160,12 @@ init_merge_tool_path() {
 	merge_tool_path=$(git config mergetool."$1".path)
 	if test -z "$merge_tool_path"; then
 		case "$1" in
+		vimdiff)
+			merge_tool_path=vim
+			;;
+		gvimdiff)
+			merge_tool_path=gvim
+			;;
 		emerge)
 			merge_tool_path=emacs
 			;;
diff --git a/git-mergetool.sh b/git-mergetool.sh
index 87fa88a..6e611e9 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -214,12 +214,12 @@ merge_file () {
 	    ;;
 	vimdiff)
 	    touch "$BACKUP"
-	    "$merge_tool_path" -c "wincmd l" "$LOCAL" "$MERGED" "$REMOTE"
+	    "$merge_tool_path" -d -c "wincmd l" "$LOCAL" "$MERGED" "$REMOTE"
 	    check_unchanged
 	    ;;
 	gvimdiff)
 	    touch "$BACKUP"
-	    "$merge_tool_path" -c "wincmd l" -f "$LOCAL" "$MERGED" "$REMOTE"
+	    "$merge_tool_path" -d -c "wincmd l" -f "$LOCAL" "$MERGED" "$REMOTE"
 	    check_unchanged
 	    ;;
 	xxdiff)
@@ -359,6 +359,12 @@ init_merge_tool_path() {
 	merge_tool_path=`git config mergetool.$1.path`
 	if test -z "$merge_tool_path" ; then
 		case "$1" in
+			vimdiff)
+				merge_tool_path=vim
+				;;
+			gvimdiff)
+				merge_tool_path=gvim
+				;;
 			emerge)
 				merge_tool_path=emacs
 				;;
-- 
1.6.2.2.414.g81aa9

  reply	other threads:[~2009-04-06  8:34 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-06  8:31 git-{merge,diff}tool refactor round three David Aguilar
2009-04-06  8:31 ` [PATCH 01/14] doc/merge-config: list ecmerge as a built-in merge tool David Aguilar
2009-04-06  8:31   ` David Aguilar [this message]
2009-04-06  8:31     ` [PATCH 03/14] git-mergetool: add new merge tool TortoiseMerge David Aguilar
2009-04-06  8:31       ` [PATCH 04/14] difftool: remove merge options for opendiff, tkdiff, kdiff3 and xxdiff David Aguilar
2009-04-06  8:31         ` [PATCH 05/14] difftool: remove the backup file feature David Aguilar
2009-04-06  8:31           ` [PATCH 06/14] difftool: use perl built-ins when testing for msys David Aguilar
2009-04-06  8:31             ` [PATCH 07/14] difftool: add a -y shortcut for --no-prompt David Aguilar
2009-04-06  8:31               ` [PATCH 08/14] difftool/mergetool: add diffuse as merge and diff tool David Aguilar
2009-04-06  8:31                 ` [PATCH 09/14] difftool: move 'git-difftool' out of contrib David Aguilar
2009-04-06  8:31                   ` [PATCH 10/14] difftool: add various git-difftool tests David Aguilar
2009-04-06  8:31                     ` [PATCH 11/14] difftool: add support for a difftool.prompt config variable David Aguilar
2009-04-06  8:31                       ` [PATCH 12/14] bash completion: add git-difftool David Aguilar
2009-04-06  8:31                         ` [PATCH 13/14] mergetool: use $( ... ) instead of `backticks` David Aguilar
2009-04-06  8:31                           ` [PATCH 14/14] difftool/mergetool: refactor commands to use git-mergetool--lib David Aguilar
2009-04-06 23:42                   ` [PATCH 09/14] difftool: move 'git-difftool' out of contrib Markus Heidelberg
2009-04-06 22:17               ` [PATCH 07/14] difftool: add a -y shortcut for --no-prompt Markus Heidelberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1239006689-14695-3-git-send-email-davvid@gmail.com \
    --to=davvid@gmail.com \
    --cc=charles@hashpling.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=markus.heidelberg@web.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).