我正在研究在 Windows 7 上使用 TFS 2012 作为 Matlab 的源代码控制提供程序。这需要安装 VS 2012 shell/TFS 客户端,以及可从 Microsoft 免费下载的 64 位 MSSCCI 提供程序。我已经设置了所有这些,它工作正常。
但是,文件差异和合并存在问题。如果我查看与 VS 2012 Source Control Explorer 的差异,则 VS 2012 Diff 工具运行正确。如果我在 Matlab 中尝试相同的操作(使用源代码管理菜单),我会收到错误“无法执行配置的工具”。解决冲突时,“合并工具中的合并更改”按钮也会发生同样的事情:在 VS 2012 中,它可以工作,但在 Matlab 中却没有。
看来这是一个已知问题,至少对于其他试图驱动 TFS 的工具来说是这样。有一个解决方法,即配置 VS 2012 以使用外部差异实用程序。我试过了,它奏效了。此外,我发现如果您将外部差异实用程序配置为 VS 2012 自己的“内部”差异工具,则将从 Matlab 正确调用内部工具。
差异命令是:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe
所需的参数是:
/Diff %1 %2 %6 %7
(即原始文件、修改文件、原始文件标签、修改文件标签)。这里有这方面的文档。
合并工具的问题更大。我在其命令行上找不到任何特定文档。到目前为止我最接近的是
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsDiffMerge.exe
我很确定这是对的,但我正在使用的论点
%1 %2 %1 %2 %3 %4 /m
不太正确 - 文件标签不同,差异显示格式不同(来自普通内置工具)。我从这里的一些与 git 相关的文档中对这个命令行进行了逆向工程,但我对 git 一无所知,也不会说意大利语。有人可以帮我找到正确的命令行选项吗?
编辑添加
有一个 MSDN Discussion 似乎与此问题有关。看起来它发生在其他工具上,并且不仅限于 Matlab:我已经相应地重新标记了这个问题
编辑添加
Diff 功能的首选命令行是:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsDiffMerge.exe
命令行参数是:
/t %1 %2 %6 %7
合并功能的等效功能不起作用:这是一个内部错误,微软已经承认了这一点。