2012-06-14 4 views
8

Я пытаюсь использовать gvimdiff как mergetool для git в Windows. Раньше я использовал vimdiff в режиме консоли, но знаю, что мне не нравится ограничивать размер консоли Windows, поэтому я пытаюсь переключиться на gvimdiff, у которых более гибкий подход к настройке размера окна.gvimdiff mergetool для msysgit

Но пытается вызвать git mergetool Теперь я получаю ошибку, которая не является для меня ясно:

The merge tool gvimdiff is not available as 'gvim'

Как это можно решить?

gvim для Windows устанавливается и доступен через командную строку. То же самое верно для команды gvimdiff.

Я пытаюсь найти место, где эта ошибка возникает в сценариях git, но в настоящее время не повезло.

+0

примечание стороны: вы можете изменить 'cmd' по умолчанию siz e щелкнув правой кнопкой мыши по свойствам top-bar -> и что-то там. Пока вы там, вы также можете сказать, чтобы он инициализировал каждое окно в том же исходном положении. Затем, как только вы нажмете ok, он спрашивает, хотите ли вы установить его по умолчанию или только для этого окна. – Shahbaz

+0

Это не помогает мне в этом конкретном случае ... код, который я пытаюсь объединить, имеет огромные отступы и длину строк, поэтому я планирую получить еще несколько пикселей (г), установив маленький, но читаемый шрифт в gvimdiff. .. – shytikov

+1

Ошибка возникает в функции 'get_merge_tool_path' внутри' $ (git --exec-path) \ git-mergetool - lib'. Когда вы настраиваете 'gvimdiff' в качестве инструмента слияния, git внутренне переводит его в команду' gvim' (см. '$ (Git --exec-path) \ mergetools \ vim'. Из оболочки, которую вы запускаете' git mergetool', вы должны иметь возможность запускать 'gvim'. Если это работает, тогда' git mergetool' также должен быть. –

ответ

8

Если вы запускаете консоль Git, уверены ли вы, что команды доступны? Я подозреваю, что это не на PATH вашей консоли Git, а только на Windows PATH (который не включен полностью).

+1

Он открывает окно GVim, а не консоль. Хотя консоль git не захватывает PATH, это раздражает как ад – Shahbaz

+0

@Shahbaz: На самом деле' git' пытается открыть 'gvim', а не пользователь.Чтобы проверить, что PATH настроен правильно, пользователь должен проверить, может ли он выполнить' gvim' из той же оболочки, что он работает 'git mergetool'. –

+0

@TimHenigan, вы правы, мой плохой. – Shahbaz

2

Объединяя свои ответы, это мои настройки

.gitconfig

[alias] 
    d = difftool 
[diff] 
    renames = copy 
    tool = gvimdiff 
[difftool "gvimdiff"] 
    cmd = "gvim -d" "$LOCAL" "$REMOTE" 
[difftool] 
    prompt = false 

И добавил файл gvim доступный в %PATH% с содержанием:

"C:\Program Files (x86)\Vim\vim73\gvim.exe" "[email protected]" 

Git difftool in Windows to see list of all changed files in addition to file diffs (a la Kaleidoscope)?