Perforce:如何查看特定修订版的分支内是否有某些更改?

Perforce: how to see if some changes are inside a branch at a specific revision?

这不是一个简单的问题,所以我会尽力用一个简单的例子来解释它...

我们有 2 个分支(可能更多):maindev。开发是在 dev 中完成的,因为它获得了多个 CL。有时,我们将 dev 完全整合到 main 中:我们将 dev 中完成的所有更改都放在 main 中,并放在一个 中全积分 CL.

  dev   main
   │      │
 W ├─────►│ A full integrate W
   │      │
 X ├─────►│ B full integrate X
   │      │
 Y │      │
   │      │
 Z ├─────►│ C full integrate Y and Z
   │      │

现在,我想知道在特定的 CL 中是否有 main 中的 Y。例如:

我想要一个能给我这个结果的命令行。到目前为止,我正在使用:

p4 integrate -n "//dev/...@Y,@Y" //main/...

因为它 尝试 Y 整合到 main 中并告诉是否应该做某事。如果没有,我们已经有了改变,没有什么可做的。

问题是,使用此命令,一旦 Y 集成到 main 中,它总是会说它在这里,因为我们无法为目标分支提供 CL main...

使用 -C 标记 p4 integrate-C 标志将考虑的集成记录限制为 <= 给定更改列表的记录;它就是为了解决这个问题。

例如:

p4 integ -n -C B //dev/...@Y,Y //main/...  # no
p4 integ -n -C C //dev/...@Y,Y //main/...  # yes

参见p4 help undoc

    p4 integrate -1 -2 -C changelist# -Rlou -Znnn
        ... The -C
        changelist# flag considers only integration history from changelists
        at or below the given number, allowing you to ignore credit from
        subsequent integrations. ...