1

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

我们有 2 个分支(可能更多):maindev. 开发是在 中完成的dev,它有多个 CL。有时,我们会完全集成devmain:我们将所做的所有更改都dev放入main一个完整集成的CL 中。

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

现在,我想知道我是否Y参加main了特定的 CL。例如:

  • 我有Y没有main@A没有
  • 我有Y没有main@B没有
  • 我有吗Ymain@C

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

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

因为它试图融入Ymain告诉是否应该做某事。如果没有,我们已经有了改变,没有什么可做的。

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

4

1 回答 1

2

使用-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. ...
于 2021-04-22T14:17:38.470 回答