使用vim进行svn冲突的简单方法?

时间:2010-06-28 20:00:12

标签: svn vim

我在SVN工作时遇到了冲突,我发现自己错过了Mercurial的一些功能。在Mercurial中,我将vim -d设置为我的差异工具。我想知道是否有办法让SVN以类似的方式工作?有点像:

$ svn resolve whatever.py 

哪个会调出vim(在diff模式下),允许我修复文件,然后执行svn resolved清理。我专门用于CLI(主要通过SSH),因此不需要应用图形差异工具。

这样的事情存在吗?

更新
可能值得包括我在这个过程中的位置。我编辑了一个文件(whatever.py),保存了文件,并完成了svn update,其他人也更改了文件。所以我的svn stat看起来像这样:

?      whatever.py.mine
?      whatever.py.r7822
?      whatever.py.r7908
C      whatever.py

4 个答案:

答案 0 :(得分:4)

将vim设置为Tortoise的diff工具,win32(适用于我):

1)Tortoise SVN-> Settings-> external Programms-> diff工具

  

设置外部C:\ programs \ gVim \ vim73 \ gvim.exe -d

     

设置外部C:\ programs \ gVim \ vim73 \ gvim.exe -d

2)统一差异查看器

  

C:\程序\ gVim的\ vim73 \的gvim.exe

3)合并工具

  

“C:\ programs \ gVim \ vim73 \ gvim.exe”-f -d -c“wincmd J”-c“resize 22”%merged%theirs%mine%base

答案 1 :(得分:3)

每当我与svn update发生冲突时,我都会被要求提供六个选项,其中一个选项是编辑相关文件。也许您需要更新版本的Subversion。我正在运行1.6.9。

答案 2 :(得分:1)

在更新版本的subversion CLI客户端中,您可以设置环境变量SVN_MERGE=vim -d,然后选择l以在svn更新期间出现冲突菜单时启动外部工具。

我不是100%确定svn传递的参数顺序是否与vim -d所需的参数顺序匹配,因此您可能必须编写包装脚本而不是直接调用vim。

当然,svn手册有完整的细节。

答案 3 :(得分:1)

尝试将环境变量EDITORVISUAL设置为vim