【问题标题】:How to use TortoiseMerge from Perforce P4V?如何从 Perforce P4V 使用 TortoiseMerge?
【发布时间】:2012-09-28 09:16:44
【问题描述】:

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


我尝试了参数

/base:%1 /mine:%2

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

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

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

【问题讨论】:

    标签: merge perforce p4v tortoisemerge


    【解决方案1】:

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

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

    p4 %b %1 %2 %r 中的设置:

    如你所见,我将我的 bat 文件命名为“p4Helper.bat”

    【讨论】:

    • 完美!谢谢!一段时间以来,我一直在用头撞墙,试图让它发挥作用。
    • 这么久了,还是坏了。这真是太棒了。
    【解决方案2】:

    遗憾的是,P4V 的参数替换被破坏了。您可以使用 TortoiseMerge 进行差异化,但不能合并。

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

    合并的正确参数是

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

    但是它给出了这个错误

    可能发生的事情是 P4V 无法用适当的文件路径替换 /base:%b 中的“%b”。

    【讨论】:

    • 您是否尝试将其配置为合并工具?错误是什么?
    • p4ideax 并不是真正报告问题的地方。最好将此类情况报告给 support@perforce.com 或 Perforce 论坛
    【解决方案3】:

    存在一个现有的增强请求,因为如果这些参数不是单独的,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
    

    【讨论】:

    • 嗨。听起来你为 Perforce 工作。你能为我们报告这个错误吗?
    • 您好!是的,您已被添加到此问题报告中。 :-)
    猜你喜欢
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多