如何获取已集成的更改列表列表?

How to get the list of changelist already integrated?

perforce 中有一个 interchanges 命令,它列出了两个分支之间的更改列表,这些更改列表尚未通过 branchspec.

的便利性进行集成

是否有显示已集成更改列表的内容,例如 interchanges 的相反内容,并且还可以与 branchspec 一起使用?

比起 p4v,对终端 perforce 更感兴趣。

谢谢

我推荐的方法是在源上执行 p4 changes,在源和目标之间执行 运行 p4 interchanges 以获得尚未集成的源更改,并比较两个找到已经集成的。

我还将介绍另外两种我不推荐的方法,因为它们有点难(但您可能会发现其中的一些内容很有用):

  • 运行 p4 changes -i 在目标上,然后 运行 大量 p4 files 命令将其过滤到源自源的更改。
  • 运行 p4 integrated -b branch, 运行 很多p4 changes命令将集成记录转换为变更列表范围,然后将它们排序到统一列表中。

找出变更列表是否已集成到 perforce 中的另一个分支并不简单。 'p4 interchanges' 可能不会报告所有内容,因为它依赖于元数据,并且可能 'think' 已经集成了一些更改列表。

考虑 CL10 合并到分支 B 的情况,然后通过 'p4 edit' 而不是 B 上的 'p4 undo' 手动恢复更​​改。然后如果你 运行 'p4 integrate' with CL10 perforce returns with 'already integrated' message 即使代码不再存在(但可能需要)。

也许您的问题的解决方案可能涉及结合上面 Sam 的回答中的想法,'p4 interchanges' 以及 运行ning 'p4 integrate [-f]' 在一个循环中以确认一组更改列表确实是融合的。这是一些工作,因为需要考虑 'p4 resolve' 和 'p4 diff/diff2' 的输出。

我的观点是:不要仅仅依靠'p4 interchanges'。