我正在尝试看看svn中的合并是如何变得容易的。
此page提到外部工具可用于合并。 vim可以用作外部合并工具吗?
一些额外要求:
例如:如
答案 0 :(得分:27)
第1步:
保存以下脚本,例如: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将以差异模式打开,包含3个文件 - 我的,他们的并合并。
在合并文件中进行必要的更改,然后保存并退出(:wqa
)。
第5步:
现在,再次出现以下选项,现在选择“r
”(接受合并版本)。
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: r