我正在尝试了解如何简化svn中的合并操作。
这个页面提到可以使用外部工具进行合并。Vim 能否作为外部合并工具呢?
一些额外要求:
- 文件应该被水平或垂直地分割以获得更好的视图。
- 窗口标题应该适当设置。
例如:
步骤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
第三步:
当您在执行svn合并命令时,若出现以下选项,请选择 '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 模式打开 3 个文件 - 我的、他们的和合并后的文件。
在合并后的文件中进行必要的更改,然后保存并退出 (:wqa
)。
步骤 5:
现在以下选项将再次出现,请选择 'r
'(接受合并后的版本)。
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: r
The external merge tool exited with exit code 255
,则执行 chmod +x merger.sh
。 - Steven Lee