5

我正在研究在 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

合并功能的等效功能不起作用:这是一个内部错误,微软已经承认了这一点。

4

2 回答 2

8

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

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


差异

vsDiffMerge.exe /t %1 %2

在哪里:

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

合并:

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

在哪里:

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

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

编辑:对不起大家,我不知道我是怎么把那个混在一起的。通过我今天的测试,Mark Sowul 是完全正确的。我已经确定了我的答案。此外,很抱歉在发布第一条评论后没有立即纠正此问题。我刚从国外旅行回来。

于 2013-07-09T20:00:32.083 回答
0

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

于 2014-01-27T12:55:58.583 回答