命令行访问VS 2012合并工具



我正在调查使用TFS 2012作为Matlab的源代码控制提供商,在Windows 7上。这需要安装VS 2012 shell/TFS客户端,以及64位的MSSCCI提供程序,可以从微软免费下载。我已经设置了所有这些,它工作正常。

但是,存在文件差异和合并的问题。如果我查看VS 2012源代码管理资源管理器的差异,VS 2012 Diff工具可以正常运行。如果我从Matlab中尝试相同的操作(使用源代码控制菜单),我会得到一个错误"无法执行配置的工具"。在解决冲突时,"合并工具中的合并更改"按钮也会发生同样的事情:在VS 2012中,它可以工作,从Matlab中,它不会。

这似乎是一个已知的问题,至少与其他工具试图驱动TFS。有一个解决方法,那就是将VS 2012配置为使用外部差分实用程序。我试过了,效果很好。此外,我发现,如果您将外部差异实用程序配置为VS 2012自己的"内部"差异工具,则内部工具将从Matlab中正确调用。

diff命令为:

C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEdevenv.exe

和必需的参数是:

 /Diff %1 %2 %6 %7

(即。原文件、修改文件、原文件标签、修改文件标签)。这里有相关的文档。

合并工具更有问题。我在它的命令行上找不到任何具体的文档。到目前为止最接近的是

C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEvsDiffMerge.exe

我很确定它是正确的,但是我使用的参数是

%1 %2 %1 %2 %3 %4 /m

不太正确—文件标签不同,差异显示的格式也不同(与正常的内置工具不同)。我从一些git相关的文档中反向设计了这个命令行,但是我对git一无所知,也不会说意大利语。有人能帮我找到正确的命令行选项吗?

添加

这里有一个MSDN讨论似乎与这个问题有关。看起来它发生在其他工具上,并不局限于Matlab:我已经相应地重新标记了这个问题

添加

Diff功能的首选命令行是:

C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEvsDiffMerge.exe

和命令行参数是:

/t %1 %2 %6 %7

对应的Merge功能不起作用:这是一个内部bug &微软已经承认了这一点。

vsDiffMerge.exe工具似乎可以同时用于差异合并和三向合并。我成功地将VS diff/merge工具与Perforce客户端进行了合并和集成。

提供给工具的参数(至少对于Perforce)是:


Diff

vsDiffMerge.exe /t %1 %2

地点:

  • /t(在临时选项卡中打开,在永久选项卡中打开)
  • %1(第一个文件)
  • %2(第二个文件)

合并:

vsDiffMerge.exe /m %1 %2 %b %r

地点:

  • /m(合并操作,离开做diff)
  • %1(他们的/源文件)
  • %2(你的/目标文件)
  • %b(基本文件)
  • %r(结果文件)

注意:"%"的解释来自performance文档:http://www.perforce.com/perforce/doc.current/manuals/p4v/Configuring_display_preferences.html#Diff

编辑:对不起大家,我不知道我是怎么搞混的。根据我今天的测试Mark Sowul是完全正确的。我已经确定了我的答案。同时,对于没有在第一个评论发布时纠正这个问题,我表示歉意。我刚从国外旅行回来。

我找到了与合并选项一起发生的错误的解决方案。我创建了应该用于合并文件的文件。在我的评论中查看更多细节:http://www.codeproject.com/Articles/649736/Solving-the-resx-Merge-Problem-in-TFS?msg=4745473#xx4745473xx

最新更新