понедельник, 2 марта 2015 г.

Инструменты для работы с Git – ExamDiff Pro

Ну и для полноты картины рассмотрим еще одну программу для сравнения и слияния в Git.
Установка простая, но есть пара пунктиков которые надо отметить. Кратенько по установке:

ED0001

Запоминаем путь установки, его потом будем прописывать в gitconfig

ED0003

Эта прога может сравнивать много чего, включая каталоги, бинарники и т.д. и т.п. Для сравнения некоторых файлов она использует плагины, которые можно посмотреть и скачать тут
http://www.prestosoft.com/edp_plugins.asp

ED0004

ED0006

Чуть чуть донастроим сам ExamDiff. Он может выдавать разные предупреждения. И часто может вылетать вот такое:

ED0008

Нам сообщают что у нас в файле нет новой строки в конце файла. Видимо это считается хорошим тоном. Так или иначе это сообщение можно отключить по совету данному в подсказке, что мы и сделаем:

ED0009

И сделаем еще одну настройку, чтобы ExamDiff не создавал .bak файлов в рабочей директории

ED0010

Теперь настраиваем ExamDiff а работу с Git. На сайте ExamDiff есть инструкция как его настраивать, но я немного изменил их вариант, чтобы было так, как удобней мне. Я просто поменял в разделе [difftool "edp"] $REMOTE и $LOCAL местами, относительно того как написано в документации, чтобы файлы из разных коммитов отображались в порядке перечисления коммитов.

В любом случае, если вас не устроят мои настройки вы можете сделать как вам удобнее.
Сразу приведу текстовый вариант настройки:

[diff]
        tool = p4m
        tool = kdiff3
        tool = dm
        tool = dfu
        tool = wm
        tool = ss
        tool = bc4
        tool = araxis
        tool = edp

[difftool "p4m"]
        cmd = "p4merge.exe $LOCAL $REMOTE"

[difftool "kdiff3"]
        path = C:/Program Files/KDiff3/kdiff3.exe

[difftool "dm"]
        cmd = C:/Program\\ Files/DiffMerge/sgdm.exe $LOCAL $REMOTE

[difftool "dfu"]
        cmd = diffusew $LOCAL $REMOTE

[difftool "wm"]
        cmd = winmergeu $LOCAL $REMOTE

[difftool "ss"]
        cmd = smartsynchronize.exe $LOCAL $REMOTE

[difftool "bc4"]
        cmd = bcomp.exe $LOCAL $REMOTE

[difftool "araxis"]
        path = C:\\Program Files\\Araxis\\Araxis Merge\\compare.exe

[difftool "edp"]
        cmd = \"C:/Program Files/ExamDiff Pro/ExamDiff.exe\" \"$LOCAL\" \"$REMOTE\" //nh 


[difftool]
        prompt = false
        keepBackup = false
        trustExitCode = false

[merge]
        tool = p4m
        tool = kdiff3
        tool = dm
        tool = dfu
        tool = ss
        tool = bc4
        tool = araxis
        tool = edp

[mergetool]
        prompt = false
        keepBackup = false
        keepTemporaries = false

[mergetool "p4m"]
        cmd = "p4merge.exe $BASE $LOCAL $REMOTE $MERGED"
        trustExitCode = true
 

[mergetool "kdiff3"]
        path = C:/Program Files/KDiff3/kdiff3.exe

[mergetool "dm"]
 cmd = C:/Program\\ Files/DiffMerge/sgdm.exe -merge -result=$MERGED $LOCAL $BASE $REMOTE 

[mergetool "dfu"]
        cmd = diffusew $MERGED $LOCAL $BASE $REMOTE

[mergetool "ss"]
        cmd = smartsynchronize.exe $LOCAL $REMOTE $MERGED
        trustExitCode = false

[mergetool "bc4"]
        cmd = bcomp.exe $LOCAL $REMOTE $BASE $MERGED
        trustExitCode = true

[mergetool "araxis"]
        path = C:\\Program Files\\Araxis\\Araxis Merge\\compare.exe

[mergetool "edp"]
        cmd = \"C:/Program Files/ExamDiff Pro/ExamDiff.exe\" //merge \"$REMOTE\" \"$BASE\" \"$LOCAL\" 
//o:\"$MERGED\" //dn1:\"Remote\" //dn2:\"Base\" //dn3:\"Local\" //dno:\"Output\" //nh

Ну и чтобы понятней было с последней строчкой приведу скрин редактора Far manager

ED0011

Ну а теперь испытываем в работе diff. Даем команду

$ git difftool ffd6b37 c258082 --tool=edp --cc test.txt

И получаем всплывшее окно ExamDiff

ED0013

Теперь проверяем слияние командами

$ git merge newbranch
$ git mergetool --tool=edp


ED0015

Получаем всплывшее окно ExamDiff Pro

ED0014

Разрешаем конфликт, сохраняем и выходим из программы.

Все работает.

Комментариев нет:

Отправить комментарий