查找集成了CL的所有分支

时间:2018-09-12 12:58:08

标签: integration perforce perforce-integrate

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

  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集成历史记录,而并非完全符合我的需求。

1 个答案:

答案 0 :(得分:4)

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

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

如果您想用代码自己实现,则基本上是递归运行p4 filelog,然后对结果结构进行简单的图搜索。不幸的是P4V不是开源的,但是IIRC修订图的底层数据结构仍然与旧的Half-Life mod相同,后者以类似的方式显示了分支历史。这将是起点(我向所有阅读此代码的人致歉,这实际上是我有史以来第一个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