对VS 2012合并工具的命令行访问

Max*_*Max 5 tfs visual-studio-2012 tfs2012

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

但是,文件差异和合并存在问题.如果我查看与VS 2012 Source Control Explorer的差异,则VS 2012 Diff工具可以正常运行.如果我在Matlab中尝试相同的操作(使用Source Control菜单),我会收到错误"无法执行已配置的工具".在解决冲突时,"合并工具中的合并更改"按钮会发生同样的事情:在VS 2012中,它起作用,来自Matlab,它没有.

看来这是一个已知问题,至少与其他试图驱动TFS的工具有关.有一种解决方法,即配置VS 2012以使用外部差异实用程序.我试过这个并且它有效.此外,我发现如果将外部差分实用程序配置为VS 2012自己的"内部"差异工具,则可以从Matlab正确调用内部工具.

diff命令是:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe
Run Code Online (Sandbox Code Playgroud)

并且所需的参数是:

 /Diff %1 %2 %6 %7
Run Code Online (Sandbox Code Playgroud)

(即原始文件,修改文件,原始文件标签,修改后的文件标签).有这个文件在这里.

合并工具更成问题.我在命令行上找不到任何特定的文档.我到目前为止最接近的是

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsDiffMerge.exe
Run Code Online (Sandbox Code Playgroud)

我很确定这是正确的,但我正在使用的论点

%1 %2 %1 %2 %3 %4 /m
Run Code Online (Sandbox Code Playgroud)

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

编辑添加

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

编辑添加

Diff功能的首选命令行是:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsDiffMerge.exe
Run Code Online (Sandbox Code Playgroud)

和命令行参数是:

/t %1 %2 %6 %7
Run Code Online (Sandbox Code Playgroud)

Merge功能的等效功能不起作用:这是一个内部错误,Microsoft已经承认了这一点.

ole*_*arn 7

vsDiffMerge.exe工具似乎适用于diffing和三向合并.我成功地将VS差异/合并工具与Perforce客户端集成,以进行合并和集成.

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


DIFF

vsDiffMerge.exe /t %1 %2
Run Code Online (Sandbox Code Playgroud)

哪里:

  • / t(在临时标签中打开,不要在永久标签中打开)
  • %1(第一档案)
  • %2(第二档)

合并:

vsDiffMerge.exe /m %1 %2 %b %r
Run Code Online (Sandbox Code Playgroud)

哪里:

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

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

编辑:对不起大家,我不知道我是如何混合那个的.Mark Sowul今天的测试完全正确.我已经解决了我的问题.此外,对于第一条评论发布后没有得到纠正的道歉.我刚从海外旅行回到家.

  • 根据http://osnabrugge.wordpress.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/,它是vsdiffmerge.exe"/ m "File1""File2""FileThatServesAsBase""FileThatServesasTarget"和我的测试似乎证实了这一点 (3认同)