【问题标题】:In P4, how do i check if a change submitted to one branch is also submitted to another branch using command在 P4 中,我如何使用命令检查提交到一个分支的更改是否也提交到另一个分支
【发布时间】:2020-10-13 20:37:02
【问题描述】:
我想知道有一个 p4 命令可以从另一个 depot 分支中提交的 cl 中找到在一个 depot 分支中提交的 cl。
喜欢-
如果 CL 123 已提交到分支 //code/v1.0/files/...
同样的代码更改也提交到另一个分支 //code/v5.0/files/...
我可以从 cl 123 的第二个分支中找出 cl 吗?
【问题讨论】:
标签:
python-3.x
perforce
changelist
p4python
perforce-integrate
【解决方案1】:
有几种不同的方法;哪一个最简单取决于您所做工作的确切上下文/要求。
如果您对特定代码行而不是元数据感兴趣,p4 annotate 是最好的方法。使用p4 describe 123 查看在 123 中更改的代码行,然后使用p4 annotate -c v5.0/(file) 在 v5.0 中找到相同的代码行,并查看哪些更改列表将它们引入该分支。即使手动复制更改而不是使用 Perforce 的合并命令,此方法也可以工作。
如果您想跟踪集成历史记录(即元数据)而不是确切的代码行(可能在代码行之间合并的过程中被编辑,使得annotate 方法不起作用),最简单的方法是使用 P4V 中的 Revision Graph 工具,它可以让您直观地检查文件的分支历史;您可以从更改 123 中选择修订,并使用“突出显示祖先和后代”工具来查看它在其他代码行中连接到哪些修订/更改列表。这样可以轻松查看涉及多少集成步骤、谁执行这些步骤、何时发生、中间是否有编辑等的上下文。
如果您想使用元数据但您正在尝试更自动化的解决方案,changes -i 是一个很好的工具。这将向您显示哪些更改列表通过集成包含在另一个更改列表中,因此您可以执行 p4 changes -i @123,123 以查看促成更改 123 的所有更改的列表。另一方面(在 v5.0 中查找 123 贡献的更改列表),您可以迭代地执行此操作;为 v5.0 代码行中的每个更改列表 N 运行 p4 changes -i @N,N,并查看其中哪些在输出中包含 123(可能不止一个)。