0

所以我需要解决的问题是:

  1. 我在 //branch1 提交了 CL 100
  2. 此 CL 稍后在 CL123 中从 //branch1 集成到 //branch2。
  3. 从 //branch2 集成 CL123 后来集成到 //branch3 和 //task/branch4。
  4. 后来,它被从 //task/branch4 集成到大约 35 个其他分支,在途中使用其他分支。

假设我有大约 100 个可以集成 CL 的分支,但我的任务是找到所有集成了初始 CL100 的分支。

怎么做?我的队友一直在手动执行此操作(需要数小时,有时甚至数天才能找到所有分支)。

我只是想知道是否有一些工具可以列出集成了初始 CL 的所有分支?如果没有,那么编写脚本的初始起点是什么?

我尝试使用

p4 -ztag changes -i //depot/...@123,@123 

但它只显示 CL 集成历史,而不是我正在寻找的。

4

1 回答 1

4

图形选项是使用修订图工具。在修订图表中打开文件,选择修订,使用“突出显示后代”选项,然后过滤到“仅显示突出显示的文件”。

https://alm.developpez.com/cours/perforce/conseils/images/image5.png

如果您想自己在代码中实现这一点,它基本上只是p4 filelog递归运行,然后对结果结构进行简单的图形搜索。不幸的是 P4V 不是开源的,但 IIRC Revision Graph 的底层数据结构仍然与旧半条命模组中的相同,后者以类似的方式显示了分支历史;这将是起点(我提前向阅读此代码的任何人道歉——这实际上是我的第一个 C++ 编码项目,所以有点粗糙): https ://swarm.workshop.perforce.com/files/guest/ sam_stafford/p4hl/src/dlls/FileLogCache.h

https://swarm.workshop.perforce.com/view/guest/sam_stafford/p4hl/screenshots/jpg/p4hl1.jpg?v=%231

于 2018-09-12T15:14:23.773 回答