perforce - 从命令行使用p4v diffdialog

时间:2013-04-30 21:37:37

标签: 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"

和其他变体,但看起来它试图将整行解析为要打开的文件的参数。

所以我想也许我必须使用标志或其他东西来指定源/目标文件和版本,但我找不到相关的文档。

3 个答案:

答案 0 :(得分:2)

我最近遇到了同样的问题(想要差异2个文件,但我一直希望在过去的某些版本中对我的工作区修订版进行区分)。

最大的挑战是能够指定我想要的文件的唯一方法是使用p4或p4v命令。 p4v命令不接受diff操作的2个参数,即使你指定了一个修订版,它也只会针对下一个版本而不是当前版本区分该版本。

p4 diff会根据我的工作区版本区分指定的版本,但问题是输出只是基于文本的。

在阅读文档(http://www.perforce.com/perforce/doc.current/manuals/cmdref/diff.html#1040665)时,我遇到了这一行:

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

(有关详细信息,请参阅http://www.perforce.com/perforce/doc.current/manuals/cmdref/env.P4DIFF.html#1040647

所以在预感中,我决定将该环境变量指向我的WinMerge目录。令人惊讶的是,它奏效了! 然后我想,我可以将它指向p4merge客户端,这也可以。唯一(非常适合)的限制是,以前的版本显示为临时文件而不是。

答案 1 :(得分:0)

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

http://answers.perforce.com/articles/KB_Article/Invoking-P4V-from-the-command-line

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

答案 2 :(得分:0)

我刚刚在我检查过的文件上运行了这个,它弹出了diff gui窗口:

p4v -cmd 'diff //main/dev/myfile.py'

一些鱼子酱:

  1. 您必须已登录P4(p4登录命令才会这样做)
  2. 您应该禁用显示的“打开连接”对话框     启动,或者它首先弹出。