Ответ 1
Шаг 1:
Сохраните следующие script, например: merger.sh:
#!/bin/sh
#
BASE=${1}
THEIRS=${2}
MINE=${3}
MERGED=${4}
WCPATH=${5}
vimdiff $MINE $THEIRS -c ":botright split $MERGED" -c ":diffthis" -c "setl statusline=MERGED | wincmd W | setl statusline=THEIRS | wincmd W | setl statusline=MINE"
Шаг 2:
Измените .subversion/config
и добавьте следующую строку:
merge-tool-cmd = /path/to/merger.sh
Шаг 3:
Когда вы получаете следующие параметры во время команды svn merge, выберите опцию 'l
'.
Это запуск внешнего инструмента для разрешения конфликтов.
Conflict discovered in 'main.h'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: l
Шаг 4:
Теперь vim будет открыт в режиме diff с тремя файлами - моими, их и объединенными.
Внесите необходимые изменения в объединенный файл и сохраните и выйдите (:wqa
).
Шаг 5:
Теперь ниже параметров снова появятся, выберите 'r
' (чтобы принять объединенную версию).
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: r