perforce - 从命令行使用 p4v diffdialog

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

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

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

最佳答案

我最近遇到了同样的问题(想要比较 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 客户端吗,这也有效。唯一(非常宜居)的限制是以前的版本显示为临时文件而不是 。

关于perforce - 从命令行使用 p4v diffdialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16309379/

相关文章:

perforce - 如何在不丢失修改的情况下在 perforce 中从更改列表中删除文件?

version-control - perforce p4 同步问题

synchronization - P4V/P4 将工作区文件夹同步到软件仓库

java - 如何取消 Perforce P4V 中从本地工作区意外删除的文件的删除标记

macos - 安装p4v也会安装p4命令行吗?

diff - 针对特定变更列表强制执行差异文件

version-control - Perforce:有没有一种直接的方法来跟踪原始提交的代码更改?

Perforce 解决方法添加带有 '@' 的文件

version-control - 如何从本地磁盘删除标记为添加的文件?

get - Perforce获取最新修订版不获取 check out 文件吗?