【发布时间】:2013-10-30 09:49:00
【问题描述】:
我正在尝试看看如何让 svn 中的合并变得简单。
这个page 提到可以使用外部工具进行合并。 vim可以作为外部合并工具吗?
一些额外的要求:
- 应水平/垂直拆分文件以提供更好的视图。
- 应适当设置窗口标题。
例如:如
【问题讨论】:
-
@romainl:谷歌把我带到了这个页面,所以我真的很感谢这个人。
我正在尝试看看如何让 svn 中的合并变得简单。
这个page 提到可以使用外部工具进行合并。 vim可以作为外部合并工具吗?
一些额外的要求:
例如:如
【问题讨论】:
第 1 步:
保存以下脚本,例如:merge.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 模式下打开 3 个文件 - 我的,他们的和合并的。
在合并文件中进行必要的更改,然后保存并退出 (:wqa)。
第 5 步:
现在下面的选项会再次出现,现在选择“r”(接受合并的版本)。
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: r
【讨论】: