perforce-从命令行使用p4v diffdialog

perforce-从命令行使用p4v diffdialog,perforce,p4v,Perforce,P4v,我尝试过搜索,但无法从命令行找到运行p4v diffdialog的参数 以下工作: % p4v.exe -cmd "diffdialog //depot/filepath/file#13" 但我希望能够区分文件的两个版本 例如,我希望能够区分同一文件的版本10和版本13 我尝试过不同的组合,如: % p4v.exe -cmd "diffdialog //depot/filepath/file#10 //depot/filepath/file#13" 和其他变体,但它似乎试图将整行解析为打开文

我尝试过搜索,但无法从命令行找到运行p4v diffdialog的参数

以下工作:

% p4v.exe -cmd "diffdialog //depot/filepath/file#13"
但我希望能够区分文件的两个版本

例如,我希望能够区分同一文件的版本10和版本13

我尝试过不同的组合,如:

% p4v.exe -cmd "diffdialog //depot/filepath/file#10 //depot/filepath/file#13"
和其他变体,但它似乎试图将整行解析为打开文件的参数


因此,我想也许我必须使用标志或其他东西来指定源/目标文件和版本,但我找不到关于这方面的文档。

该命令不允许您指定两个文件:


但是,您可以编写此操作的脚本。您可以调用
p4 print
来获取要比较的两个文件,然后使用p4merge将它们区分开来。

我刚刚对一个已签出的文件运行了此操作,它弹出了diff gui窗口:

p4v -cmd 'diff //main/dev/myfile.py'
有几个小问题:

  • 您必须已经登录到P4(P4登录命令将完成此操作)
  • 您应该禁用“打开连接”对话框,使其不显示在 启动,或者它首先弹出

  • 我最近遇到了同样的问题(想要区分2个文件,但我总是想区分我的工作区版本和过去的一些版本)

    最大的挑战是,能够指定我想要的文件的唯一方法是使用p4或p4v命令。p4v命令不接受diff操作的两个参数,即使您指定了一个修订,它也只会将该修订与下一个修订(而不是当前修订)进行区分

    p4 diff将根据我的工作区版本区分指定的修订,但问题是输出仅基于文本

    在阅读文档()时,我遇到了这一行:

    默认情况下,使用的diff例程是p4命令行应用程序中内置的例程。要将此diff例程更改为外部diff程序,请将P4DIFF环境变量设置为指向新程序

    (有关更多信息,请参阅)

    所以凭直觉,我决定将环境变量指向我的WinMerge目录。令人惊讶的是,它成功了!
    然后我想,我可以把这个指向p4merge客户机吗,这也行。唯一(非常适合使用)的限制是,以前的版本显示为临时文件,而不是。

    谢谢。我认为从“打开一个对话框来指定两个要比较的文件修订版”的描述中,我认为您可以指定两个版本作为参数。对于两个文件呢?我试着比较两个不同的仓库路径。您可以使用gui对话框指定仓库路径吗?您可以运行diffdialog命令,当对话框弹出时,重命名其中一个路径中的文件路径以指向另一个仓库。