svn:使用vim合并冲突

标签 svn vim

我想看看如何在 svn 中合并变得容易。

page提到可以使用外部工具进行合并。
vim 可以用作外部合并工具吗?

一些额外的要求:

  • 文件应水平/垂直拆分以提供更好的 View 。
  • 应适当设置窗口标题。

  • 例如:如
    enter image description here

    最佳答案

    第 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
    

    关于svn:使用vim合并冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19678860/

    相关文章:

    svn - 如何获取 SVN 存储库的本地副本?

    svn - 无法使用 SVN 作为 Maven 存储库进行部署

    vim - 跨选项卡自动调整 Vim 中的拆分大小

    vim - 如何复制与模式匹配的行,并在一个命令中修改第二行?

    windows - 什么 SCM 在 Windows 和 Linux 下支持符号链接(symbolic link)?

    svn - 有没有办法将 "persistently"与 SVN 同步 git 存储库?

    svn:警告:处理外部定义时出错

    linux - 在 VI/Linux 中替换反斜杠加管道

    vim - Vundle 和 NeoBundle 有什么区别?

    vim - 我如何告诉 Vim 忽略某些 "second extensions"?