git-mergetool/difftool: make (g)vimdiff workable under Windows

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Markus Heidelberg 2009-04-06 01:31:17 -07:00 коммит произвёл Junio C Hamano
Родитель da81688cc5
Коммит bad4273200
2 изменённых файлов: 16 добавлений и 4 удалений

Просмотреть файл

@ -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
;;

Просмотреть файл

@ -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
;;