我在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
答案 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)
尝试将环境变量EDITOR
或VISUAL
设置为vim