如何向 perforce 询问包含描述和文件的更改列表

How to ask perforce for a list of changes with both description and files

我想获取 perforce 分支的更改列表,例如:

p4 -t -L //mydepot/library1/v1.0/...@2017/03/27,@now

即本周所有更改的列表及其说明。但我还想要一个文件列表,如 files in one changelist:

p4 files @=123456

这似乎需要脚本,但有人知道 perforce 方法吗? 如果返回的变更集集合很大,之后查询每个变更集是否会对服务器产生不利影响?

p4 -Ztag -F "describe -s %change%" changes //mydepot/library1/v1.0/...@2017/03/27,@now | p4 -x - run

性能问题的答案取决于 "large" 的数量(我们说的是 changes/files 的数量)和您的服务器硬件。

我的猜测是,使用 "normal" 服务器和 "normal" 用法你会没事的,但如果我们谈论的是几十亿个更改,每个更改都有几十亿个文件,是的,那些命令需要一段时间。如果我们在数百或数千范围内,嗯。

您在一个问题中提出了一堆问题,所以这里是一个答案中的一堆答案。

  1. 使用 p4 changes 命令获取感兴趣的更改列表。
  2. 使用 p4 describe -sp4 files @= 获取每个更改中的文件列表。
  3. 是的,要合并这两组数据,您需要一个脚本,但它可以是一个非常短的脚本。您可以使用 p4 命令行别名功能来编写这样的脚本,也可以使用您喜欢的脚本语言。网上有很多此类脚本的示例。
  4. 服务器最终将不得不执行多个命令,但这些特定命令是服务器非常有效地执行的命令。我怀疑服务器在计算输出时不会有问题,但您在读取所有输出时会遇到问题。换句话说,不要 运行 一个产生比你想读的更多输出的脚本。