Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用vim解决svn冲突的简单方法?_Svn_Vim - Fatal编程技术网

使用vim解决svn冲突的简单方法?

使用vim解决svn冲突的简单方法?,svn,vim,Svn,Vim,我在SVN工作时遇到了冲突,我发现自己缺少了Mercurial的一些功能。在Mercurial中,我将vim-d设置为我的diff工具。我想知道是否有办法让SVN以类似的方式工作?大致如下: $ svn resolve whatever.py 这将启动vim(在diff模式下),允许我修复该文件,然后执行svn resolved清理。我专门在CLI中工作(主要是通过SSH),因此不需要应用图形化的差异工具 这样的事情存在吗 更新: 在这个过程中,我所处的位置可能值得一提。我编辑了一个文件(w

我在SVN工作时遇到了冲突,我发现自己缺少了Mercurial的一些功能。在Mercurial中,我将
vim-d
设置为我的diff工具。我想知道是否有办法让SVN以类似的方式工作?大致如下:

$ svn resolve whatever.py 
这将启动vim(在diff模式下),允许我修复该文件,然后执行
svn resolved
清理。我专门在CLI中工作(主要是通过SSH),因此不需要应用图形化的差异工具

这样的事情存在吗

更新:
在这个过程中,我所处的位置可能值得一提。我编辑了一个文件(
which.py
),保存了它,并执行了一次
svn更新
,其他人也更改了该文件。因此,我的
svn stat
看起来是这样的:

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

每当我遇到来自
svn更新的冲突时
,都会要求我提供六个选项,其中一个选项是编辑有问题的文件。也许您需要更新版本的Subversion。我正在运行1.6.9。

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

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


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

尝试将环境变量
编辑器
视觉
设置为vim

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

1) 乌龟SVN->设置->外部程序->差异工具

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

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

2) 统一差异查看器

C:\programs\gVim\vim73\gVim.exe

3) 合并工具

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


你看过斯文迪夫吗?PS刚在谷歌上搜索到了vim的这一点:它似乎在将
HEAD
与当前值进行比较。没有解决冲突。我可能会下载它,但它不能解决这个问题。这是一个非常旧的subversion版本,但是如果我决定推迟解决这个问题,这个问题仍然适用。所以。。。你说得对。唯一缺少的是实际执行合并的命令。这是svn合并
。一旦我得到了更新版本,它就起作用了。把它扔进去,这样我就能把它标对这适用于提交等,但不会改变差异。我已经在使用vim作为我的
编辑器
。我在合并中使用了以下内容:
“C:\Program Files(x86)\vim\vim 73\gvim.exe”-d--cmd“set lines=999 columns=999”-C“wincmd J”%merged%theres%base%mine