假设我已经完成了作业 A 的一些代码,但在代码经过审核之前无法p4 提交
。现在我必须转到工作 B,这取决于我在工作 A 中所做的更改。
如何确保保存作业 A 的更改,以便稍后可以单独提交它们(可能在进一步更改之后),并保存作业 B 的修改(差异 A..B )仅到一个新的变更列表(该列表需要在某个时候可以搁置,以便也可以进行审查)?
最佳答案
这是一个很好的分支用例。尝试用书架做所有事情的问题是,搁置的修订是暂时的,所以你不能拥有基于它们的历史。如果您创建分支,则可以将您的更改与其他人正在处理的文件隔离开来,但仍将它们永久保存在某个地方。
黄金法则是“根据不兼容的提交策略进行分支”。在这种情况下,您需要提交未经审核的工作(以便您可以在其基础上做更多工作),但您所在的分支不允许未经审核的工作 - 因此请创建一个允许的新分支!
在这个例子中,我假设您正在使用流,因为它使一切变得更快;非托管分支的工作流程完全相同,只是需要键入更多命令。
因此,我们假设您当前位于“主”流中,并且有未提交的更改。将您的更改放入新分支(假设您的名字是 Bob,我将其称为“dev-bob”),如下所示:
p4 switch -r -c dev-bob
现在提交:
p4 submit
现在继续进行其他更改。
要将您的更改放入“main”并搁置它们以供审核,请执行以下操作:
p4 switch main
p4 merge --from dev-bob
p4 resolve -am
p4 shelve
为了让所有内容都达到 dev-bob 的特定更改“A”,您需要将“@A”添加到合并命令中。
关于version-control - 如何将 Perforce 变更列表基于另一个待处理变更列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40339950/