【问题标题】:GVim as merge tool for TFSGVim 作为 TFS 的合并工具
【发布时间】:2012-09-23 08:25:32
【问题描述】:

我想使用 GVim 作为 TFS 2010 的合并工具。
我无法弄清楚 GVim 的参数。 特别是参数 %4,当我使用它时,我得到一个空缓冲区。如果我不使用它,我会收到一条错误消息,我必须使用它。

【问题讨论】:

  • 严格来说不是一个答案,但你见过vim.org/scripts/script.php?script_id=3808
  • @Benj,是的,看到了。那是为了在 vim 中工作和使用 tfs 源代码控制。我想要的是,当我在 VS2010 中工作并单击“合并工具中的更改”按钮时,GVim 将作为该工具打开。
  • 是的,我知道,这只是一个无耻的插件;-)
  • This question 和接受的答案中的link 可能会有所帮助。
  • 也许问题是 vim 使用 diff 而它应该使用 diff3 之类的东西进行合并...

标签: vim merge


【解决方案1】:

这可能不完全符合你的喜好,但这是我使用 GVim 作为合并工具的方式。

我将它设置为进行双向合并:它的左侧有“源”(我正在合并 来自的地方),右侧有合并文件(开始就像我的目标分支机构提供的信息一样)。

我是这样设置的:

command: C:\Program Files (x86)\Vim\vim73\gvim.exe
argument: -c "vert diffsplit %1 " %4 -c "wincmd l|0read %2  |diff"

它的作用如下:

  • 读取左侧的“源”文件,并拆分窗口(-c "vert diffsplit %1")
  • 在右侧打开合并结果 (%4)
  • 运行一个快速脚本:
    • 在右侧窗口上移动 (wincmd l)
    • 读取我在分支中的现有更改 (0read %2)
    • 重新运行 diff 算法 (diff)

这让我可以根据传入的合并“区分”我的工作,保存右侧将解决合并。

【讨论】:

    【解决方案2】:

    您的屏幕截图表明您使用的是 Vim 7.3。根据 Vim 网站: http://vim.wikia.com/wiki/Running_diff

    在某些时候,“Vim without Cream”提供的 MyDiff 函数 安装程序已修改。从 Vim 7.3.138 开始,它仍然被破坏。

    但是,您可以尝试以下详细模式参数

    command : gvim
    argument: -V -od %1 %2
    

    【讨论】:

    • 谢谢,但我没有 diff 问题。可能是因为我没有使用“Vim without Cream”(sourceforge),而是使用来自 vim.org 的 gvim。
    • 然后尝试参数:-d %1 %2 %4
    • %4 参数仍然会产生一个空窗口。
    • 从命令行执行“gvimdiff -O branch1.txt base.txt branch2.txt merge.txt”,这意味着TFS合并工具应该按顺序命名这些文件:%2 %1 % 4 %3 ,你可以按这个顺序试试吗?
    • 我试过了,TFS 仍然没有为 %4 提供文件,所以它不起作用。
    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2014-06-13
    • 2011-05-27
    • 2013-09-26
    • 2011-01-05
    • 2012-06-16
    相关资源
    最近更新 更多