代码之家  ›  专栏  ›  技术社区  ›  Jack M.

使用VIM解决SVN冲突的简单方法?

  •  2
  • Jack M.  · 技术社区  · 14 年前

    我在SVN工作时遇到了一个冲突,我发现自己在Mercurial中缺少了一些功能。在Mercurial,我有 vim -d 设置为我的差异工具。我想知道是否有办法让SVN以类似的方式工作?沿着以下几条线的东西:

    $ svn resolve whatever.py 
    

    它将显示VIM(在diff模式下),允许我修复文件,然后执行 svn resolved 清理。我只在cli中工作(主要是通过ssh),因此不需要应用图形化的diff工具。

    这样的事情存在吗?

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

    ?      whatever.py.mine
    ?      whatever.py.r7822
    ?      whatever.py.r7908
    C      whatever.py
    
    4 回复  |  直到 14 年前
        1
  •  3
  •   Andy Lester    14 年前

    每当我和一个 svn update , I'm asked for a half dozen options, one of which is to edit the file in question. Perhaps you need a newer version of Subversion. I'm running 1.6.9.

        2
  •  4
  •   Sergey    14 年前

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

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

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

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

    2)统一差异查看器

    C:\Programs\gvim\vim73\gvim.exe(程序\gvim\vim73\gvim.exe)

    3)合并工具

    “c:\programs\gvim\vim73\gvim.exe”-f-d-c“wincmd j”-c“resize 22%”,合并了他们的%mine%基础

        3
  •  1
  •   Amardeep AC9MF    14 年前

    In more recent versions of the subversion CLI client, you can set an environment variable SVN_MERGE=vim -d 然后选择 l 在SVN更新期间出现冲突菜单时启动外部工具。

    我不能100%确定SVN传递的参数顺序是否与VIM-D所需的顺序匹配,所以您可能需要编写一个包装脚本,而不是直接调用VIM。

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

        4
  •  1
  •   the_mandrill    14 年前

    尝试设置环境变量 EDITOR VISUAL 到vim