Показаны сообщения с ярлыком git mergetool. Показать все сообщения
Показаны сообщения с ярлыком git mergetool. Показать все сообщения

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

Инструменты для работы с Git – IDM UltraCompare 8.50.0.1023

Для полноты картины опишу и этот инструмент. Может кто привык к нему. Но как то он не очень работает с кодировочками.

Этап установки пропущу. Сразу же привету конфиг файл и примеры работы.

[core]
 repositoryformatversion = 0
 filemode = false
 bare = false
 logallrefupdates = true
 symlinks = false
 ignorecase = true
 hideDotFiles = dotGitOnly

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

[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 "ucp"]
 cmd = ucp.exe -t $LOCAL $REMOTE


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

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

[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

[mergetool "ucp"]
 cmd = ucp.exe -3 $BASE $LOCAL $REMOTE

Протестируем работу сравнения файлов командой

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

U0001

Всплыло окошко

U0002

И так сравнение работает, проверяем слияние командами:

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


U0004

Всплыло окошко, которое хочется сразу же закрыть Smile

U0003

Виндовую кодировочку показывает не верно. Странно это как-то. Но так или иначе работает.

вторник, 3 марта 2015 г.

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

В прошлой статье я уже писал как установить и сделать простые настройки в TortoiseGit. Вместе с ним идет утилитка сравнения и слияния которая называется TortoiseGitMerge. Вот ее мы тоже настроим в gitconfig как внешнюю утилиту сравнения и слияния.
Приведу пример моих настроек в файле gitconfig

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

[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 "tg"]
 cmd = \""c:/Program Files/TortoiseGIT/bin/TortoiseGitMerge.exe"\" -mine:"$REMOTE" -base:"$LOCAL"


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

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

[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

[mergetool "tg"]
    cmd = \""c:/Program Files/TortoiseGIT/bin/TortoiseGitMerge.exe"\" -base:"$BASE" -theirs:"$REMOTE" 
-mine:"$LOCAL" -merged:"$MERGED"

Ну а теперь протестируем работу сравнения файлов командой

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

TG0024

Всплыло окошко

TG0025

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

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


TG0026

Всплыло окошко для разрешения конфликта

TG0027

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

понедельник, 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

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

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

пятница, 27 февраля 2015 г.

Инструменты для работы с Git – Araxis Merge Professional v2013.4296

Сразу перейду к файлу gitconfig с настройками для арахиса :)

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

[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]
        prompt = false
        keepBackup = false
        trustExitCode = false

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

[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

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

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

AR0001

Всплыло окно сравнения

AR0002

Все работает замечательно

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

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


AR0003

AR0004

Все работает замечательно. На этом по арахису все.

Инструменты для работы с Git – Beyond Compare 4

Где скачать и как установить это все просто. Начну сразу с настроек gitconfig файла. Путь к экзешнику BC4 я прописал в PATH.

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

[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]
        prompt = false
        keepBackup = false
        trustExitCode = false

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

[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

Теперь проверяем работу сравнения командой

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

BC0002

Все прекрасно работает.

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

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


BC0004

Тоже все работает. И интерфейс довольно приятный и логичный.

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

Скачиваем тут. Для работы нужна JRE 1.7 или выше. Кроме того это коммерческий продукт, но бесплатен для не коммерческого использования. После скачивания разархивируем из архива и устанавливаем.

Так же можно скачать и портабельную версию тут.

SS0001

SS0002

SS0003

SS0004

SS0005

SS0006

Добавляем путь C:\Program Files (x86)\SmartSynchronize\bin в переменую PATH, дабы было проще настраивать.

SS0010

Запускаем прогу из меню старт и настраиваем.

SS0007

SS0008

SS0009

На этом все. Теперь настраиваем gitconfig

[diff]
        tool = p4m
        tool = kdiff3
        tool = dm
        tool = dfu
        tool = wm
        tool = ss

[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]
        prompt = false
        keepBackup = false
        trustExitCode = false

[merge]
        tool = p4m
        tool = kdiff3
        tool = dm
        tool = dfu
        tool = ss

[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

В редакторе Far manager это выглядит так

SS0011Теперь проверяем работу сравнения файлов командой


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

SS0013

И получаем всплывшее окошко сравнения файлов

SS0012

По ходу у этой тулзы один из самых приятных интерфейсов.

Закрываем и проверяем работу слияния командами

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


SS0015

SS0014

Разрешаем конфликт, сохраняем и закрываем. Все работает. Эта тулза оставила самые приятные впечатления от работы.

четверг, 26 февраля 2015 г.

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

Скачиваем тут и устанавливаем

DF0001

DF0002

DF0003

DF0004

DF0005

Проверяем что путь к проге прописался и ее можно запускать из Run

DF0006

Запустилось.

DF0007

Теперь настраиваем gitconfig на работу с Diffuse. По мне так настройка Diffuse оказалась самой простой. И, в принципе, инструмент очень понятный и простой для работы. Правда при слиянии все четыре окна выставлены в ряд, а не как у P4Merge и KDiff3, где окно слияния располагается снизу под тремя окнами от куда происходит слияние, но возможно это даже и удобнее, так как если текст программы длинный, а это почти всегда так, то это даже удобнее.

Причем порядок следования окон очень легко менять, как из меню так и горячими клавишами, что только добавляет удобства работы с Diffuse.

И так gitconfig в студию!

[diff]
        tool = p4m
        tool = kdiff3
        tool = dm
        tool = dfu

[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]
        prompt = false
        keepBackup = false
        trustExitCode = false

[merge]
        tool = p4m
        tool = kdiff3
        tool = dm
        tool = dfu

[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

В редакторе Far manager это выглядит так:

DF0008

Проверяем работу сравнения командой

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

DF0009

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

DF0010

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

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


DF0011

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

DF0012

Делаем нужные изменения. Сохраняем и т.д. и т.п.

Единственное, что эта прога иногда не корректно обрабатывает переходы на другую строку. Но в принципе оставила приятное впечатление.