version-control - 如何将 Perforce 变更列表基于另一个待处理变更列表

标签 version-control perforce

假设我已经完成了作业 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/

相关文章:

windows - Windows 上类似挖掘的功能?

css - 同步网站版主编辑的样式表

diff - Perforce - 创建不同版本的补丁文件

python - 如何使用 "Client name:"从 python 脚本获取 perforce 工作区的 "p4 info"?

version-control - 在 perforce 上集成多个变更列表

perforce - 如何在 Perforce 工作区中显示新文件?

GitHub API v3 : Which base_tree SHA values are accepted when writing a tree

Git 在使用交互式 rebase 压缩时跳过 merge 提交

Git - 裸仓库不能有主分支的工作树 - 为什么?

Git rebase 噪声