1

如何配置 Perforce 以使用工具 TortoiseMerge 进行差异和合并?


我试过争论

/base:%1 /mine:%2

在此处输入图像描述

遵循http://tortoisesvn.net/docs/release/TortoiseMerge_en/tme-automation.htmlhttp://www.perforce.com/perforce/doc.current/manuals/p4v/Configuring_display_preferences.html#Diff。Perforce 文档说

在参数字段中指定第三方差异应用程序的参数:输入 %1 作为第一个文件的名称,输入 %2 作为第二个文件的名称。P4V 在调用 diff 应用程序时将这些占位符替换为实际的文件名。

然而,当我尝试它时,TortoiseMerge 错误“无法打开文件 %1”,表明 P4V 没有替换参数并保持%1原样

在此处输入图像描述

4

3 回答 3

9

您可以通过创建一个 bat 文件来做到这一点。在 bat 文件中,您可以使用正确的参数调用合并程序。这是我的 bat 文件的内容:

TortoiseMerge.exe /base:%1 /theirs:%2 /mine:%3 /merged:%4

p4 中的设置%b %1 %2 %rP4 中的设置

如您所见,我将我的 bat 文件称为“p4Helper.bat”

于 2013-11-06T14:29:16.473 回答
3

可悲的是,P4V 的论点替换被打破了。您可以使用 TortoiseMerge 进行差异化,但不能合并。

要设置 TortoiseMerge 进行比较,请使用参数字符串%1 %2

在此处输入图像描述

合并的正确论点是

/base:%b /theirs:%1 /mine:%2 /merged:%r

但是它给出了这个错误

在此处输入图像描述

据推测,发生的事情是 P4V 无法/base:%b用适当的文件路径替换“%b”。

于 2012-09-28T10:51:49.967 回答
1

存在一个现有的增强请求,因为如果这些参数不是单独的,P4V 不会替换 %b、%1、%2 和 %r 的值。例如,P4V 不能替代:

 /base:%b /theirs:%1 /mine:%2 /merged:%r

TortoiseMerge 需要这些。

但是,一位用户报告说,由于路径名中存在空格,该命令在他在路径名周围添加引号后起作用。例如:

开始 /WAIT "C:/Program Files/Beyond Compare 3/BComp.exe" %1 %2 %3 /mergeoutput=%4

因此,作为一种解决方法,您可以在调用 TortoiseMerge 的脚本中增加 %b %1 %2 %r 参数。在 TortoiseMerge 的例子中,你会有这样的一行:

 c:"\the_path_to_TortoiseMerge" /base:%1 /theirs:%2 /mine:%3 /merged:%4
于 2014-08-28T21:30:55.520 回答