Разрешать конфликты с беглецами — это здорово. После прочтения Безболезненное разрешение конфликтов слияния в Git, я начал думать, как отображать изменения не только на уровне строк, но и на уровне слов.
Все примеры основаны на репозитории painless_git_conflicts_resolution. Hub использовался, чтобы сделать команду git clone
более краткой.
Беглец с отключенным стилем конфликта diff3
.
hub clone ryrych/painless_git_conflicts_resolution fugitive_no_diff3
cd fugitive_no_diff3/
git checkout beta
git merge origin/master
vim roses.txt
:Gdiff
Результат следующий:
Проблема в том, что вы можете видеть только то, что все строки каким-то образом изменились. Этот пример очень короткий, но кто из вас заметил, что of добавлено в строке 3?
RubyMine может решить эту проблему, хотя и не всегда, оставляя вас более чем часто с отметками различий и без выделения различий. Хотя на этом снимке экрана нет меток различий, отсутствие «контраста» очень затрудняет решение этих конфликтов.
Беглец с включенным diff3 + отображением общего предка:
Показать базу в конфликте fugitive.vim diff вопрос stackoverflow заставил меня попробовать принятый ответ, но решение не было улучшением.
hub clone ryrych/painless_git_conflicts_resolution fugitive_with_diff3
cd fugitive_with_diff3/
git checkout beta
git merge origin/master
vim roses.txt
:split
:Gdiff
[Ctrl][W][J]
:Gedit :1
opendiff как mergetool
hub clone ryrych/painless_git_conflicts_resolution opendiff
cd opendiff/
git checkout beta
git merge origin/master
git mergetool
и вуаля!
Это, конечно, решает проблему, но заставляет меня полагаться на внешний инструмент, который был разработан только для одной системы. Подводя итог: можно ли добиться в Vim чего-то похожего на opendiff?