2015-12-09 3 views
7

Я хочу установить WinMerge в качестве инструмента сравнения по умолчанию в VS 2015, и я не могу сделать это глобально. Мне нужно отредактировать мой локальный файл [solution dir] /. Git/config), и он отлично работает, но когда я пытаюсь сделать это во всем мире, редактируя файл ([User folder] /. Gitconfig), он не работает в VS 2015 (используется стандартный инструмент VS diff). Его немного раздражает применять эти настройки каждый раз, когда я добавляю новое решение для Git.Настройка WinMerge как инструмента Diff/merge в Visual Studio 2015

Вот мой конфиг

[diff] 
tool = winmerge 
[difftool] 
prompt = true 
[difftool "winmerge"] 
path = d:\\WinMerge\\winmergeu.exe 
cmd = \"d:\\WinMerge\\WinMergeU.exe\" \"$LOCAL\" \"$REMOTE\" 
[merge] 
tool = winmerge 
[mergetool] 
prompt = true 
[mergetool "winmerge"] 
path = d:\\WinMerge\\winmergeu.exe 
cmd = \"d:\\WinMerge\\winmergeu.exe\" -u -e -dl \"Local\" -dr \"Remote\" $LOCAL $REMOTE $MERGED 
+0

Что о 'мерзавец конфигурации merge.tool winmerge' ? – Claudio

+0

Просто попробовал. Не работает. – Padzonk

+0

Вы пытались добавить 'guitool = winmerge' под' [diff] '? Это единственная разница, которую я вижу по сравнению с моей конфигурацией, которая работает хотя бы со старой версией VS (у меня есть плагин Git Extensions, хотя). Если в вызове 'git difftool' есть опция' --gui', Git ищет 'diff.guitool' вместо' diff.tool'. – sendaran

ответ

12

У меня есть VS2015 SP1 и WinMerge на моем пути, ничего установить в моем решении .git/конфигурации и следующие в .gitconfig (в C: \ Users \ имя пользователя), и она работает:

[diff] 
    tool = winmerge 
[difftool "winmerge"] 
    cmd = winmergeu.exe -e -ub -x -wl -u -maximise -dl "base" -dr "mine" \"$LOCAL\" \"$REMOTE\" 
+0

Итак, я только что понял, что для тех, кто использует VS 2017, нажмите кнопку ** Merge ** в Team Explorer, чтобы вызвать новый инструмент, содержащий VS, для разрешения конфликтов. –

-1

решение с .gitconfig работает как Magic (VS 2015). Тем не менее, проводник Windows отказывается переименовать файл в .gitconfig. Я использовал переименование командной строки.

ren aaa ".gitconfig" 

Нет необходимости перезапуска Visual Studio.

+0

не отвечает на вопрос ... –

1

В дополнение к тому, что сказал @gezzahead (и я добавил запись guitool только для хорошей меры), я обнаружил, что в политике домена я был создан два «домашних» каталога и, следовательно, два .gitconfigs - a) окна по умолчанию из C: \ users \ jsmith \ .gitconfig и H: \. gitconfig (мой H: диск - это сопоставленный диск для того, что ИТ-вызов вызывает мою «домашнюю папку»).

После того, как я создал символическую ссылку, используя что-то вроде ниже (вам нужно будет ее отредактировать), Visual Studio подняла WinMerge.

mklink H:\.gitconfig C:\users\jsmith\.gitconfig 

Просто для полноты картины, я бегу Win10 x64, VS 2015 обновление 2, и ниже приведен список моей конфигурации (немного цензурой)

PS> git config --global --list 
user.name=John Smith 
[email protected] 
diff.tool=winmerge 
diff.guitool=winmerge 
difftool.winmerge.path=c:/Program Files (x86)/winmerge/winmergeu.exe 
difftool.winmerge.cmd=winmergeu.exe /e /x /u /wl /maximize -dl base -dr mine "$LOCAL" "$REMOTE" 
Смежные вопросы