我正在调查在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
并且必需的参数是:
/Diff %1 %2 %6 %7
(即原始文件,修改文件,原始文件标签,修改后的文件标签)。有关此here的文档。
合并工具更成问题。我在命令行上找不到任何特定的文档。我到目前为止最接近的是
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsDiffMerge.exe
我非常肯定是对的,但我正在使用的论点
%1 %2 %1 %2 %3 %4 /m
不太正确 - 文件标签不同,差异显示的格式不同(与普通的内置工具不同)。我从一些与git相关的文档here反向设计了这个命令行,但我对git一无所知,也不会说意大利语。有人可以帮我找到正确的命令行选项吗?
编辑添加
有一个MSDN讨论似乎与此问题here有关。看起来它与其他工具一起发生并且不仅限于Matlab:我已相应地重新标记了这个问题
编辑添加
Diff功能的首选命令行是:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsDiffMerge.exe
,命令行参数为:
/t %1 %2 %6 %7
合并功能的等效功能不起作用:这是一个内部错误&微软承认了这一点。
答案 0 :(得分:7)
vsDiffMerge.exe工具似乎适用于差异和三向合并。我成功地将VS差异/合并工具与Perforce客户端集成,以进行合并和集成。
要提供给工具的参数(至少对于Perforce)是:
DIFF
vsDiffMerge.exe /t %1 %2
其中:
合并:
vsDiffMerge.exe /m %1 %2 %b %r
其中:
注意:“%”解释来自Perfore文档:http://www.perforce.com/perforce/doc.current/manuals/p4v/Configuring_display_preferences.html#Diff
编辑:对不起大家,我不知道我是如何混合那个的。 Mark Sowul今天的测试完全正确。我已经解决了我的问题。此外,对于第一条评论发布后没有得到纠正的道歉。我刚从海外旅行回到家。答案 1 :(得分:0)
我找到了与merge选项一起出现的错误解决方案。 我创建了应该用于合并文件的文件。 请在我的评论中查看更多详细信息:http://www.codeproject.com/Articles/649736/Solving-the-resx-Merge-Problem-in-TFS?msg=4745473#xx4745473xx