GVim作为TFS合并工具

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

1
不是严格的答案,但您是否看过http://www.vim.org/scripts/script.php?script_id = 3808? - Benj
1
@Benj,是的,看到了。那是为了在vim中工作并使用tfs源代码控制。我想要的是,当我在VS2010中工作并单击“合并工具中的更改”按钮时,GVim将作为该工具打开。 - kroiz
是的,我知道,这只是一个无耻的宣传;-) - Benj
6
这个问题以及被接受的答案中的链接可能会有所帮助,可以了解如何配置TFS以与各种合并工具一起使用。 - romainl
也许问题在于vim使用了diff而不是像diff3这样的合并工具... - kroiz
我还遇到了另一个gvim diff问题,即在将文件与服务器最新版本进行比较时,在gvim中我看不到更改,尽管其他diff工具(如VS默认比较工具和tortoise diff工具)实际上显示了更改... 我真的很喜欢vim,但我认为在比较和合并方面应该使用其他工具... - kroiz
2个回答

2
这可能不完全符合您的喜好,但以下是我使用GVim作为合并工具的方法。
我将其设置为进行双向合并:左侧为“源”(我从中合并),右侧为合并文件(最初是我的目标分支所拥有的信息)。
我按照以下方式进行设置:
command: C:\Program Files (x86)\Vim\vim73\gvim.exe
argument: -c "vert diffsplit %1 " %4 -c "wincmd l|0read %2  |diff"

这段代码的作用如下:
  • 读取左侧的“source”文件,并分割窗口(-c“vert diffsplit %1”)
  • 在右侧打开合并结果(%4)
  • 运行一个快速脚本,其中包括以下步骤:
    • 移动到右侧窗口(wincmd l)
    • 读取分支中我现有的更改(0read %2)
    • 重新运行diff算法(diff)
这使我可以将我的工作与即将合并的内容进行“diff”,保存右侧的内容将解决合并问题。

0

根据您的截图,您正在使用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

1
谢谢,但我没有diff的问题。可能是因为我没有使用“Vim without Cream”(sourceforge),而是从vim.org下载了gvim。 - kroiz
1
请尝试以下参数: -d %1 %2 %4 - Henry Aloni
1
仍然使用%4参数会产生一个空窗口。 - kroiz
1
从命令行中,您可以执行“gvimdiff -O branch1.txt base.txt branch2.txt merge.txt”,这意味着TFS合并工具应该按照以下顺序命名这些文件:%2 %1 %4 %3,也许您可以尝试按照这个顺序进行操作? - Henry Aloni
我尝试了,但TFS仍然没有提供%4的文件,因此它无法工作。 - kroiz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接