如何在 Perforce 中删除功能分支(或任何分支)?

Ice*_*Man 5 perforce

我是 Perforce 新手,我刚刚开始熟悉 Perforce 的分支功能。我不明白的一件事是,在使用完功能分支并且更改已合并回主线分支后,如何删除它,就像在 Git 中处理功能分支一样。

您可以删除 Perforce 中的分支还是将它们永久保留在 Perforce 中?

Sam*_*ord 3

如果它是一个任务流(这是我建议的短期“功能分支”类型流),您可能想要“卸载”它:

p4 unload -s //depot/task_stream
Run Code Online (Sandbox Code Playgroud)

这基本上就像使用“p4stream -d”删除流一样,只不过如果您愿意的话可以稍后将其恢复。与“p4 stream -d”一样,它也不会删除流中的所有文件;您修改的文件保留在仓库中(以便您可以根据需要将合并记录返回到原始提交),但所有未修改的文件都将被卸载(而使用“stream -d”时它们会消失并在那里没有任何方便的记录它们在父级中匹配的确切版本 - 您可以在事后重建它,但这更难)。使用“p4 reload”使任务流恢复活力。

如果它是普通流和/或您想永远摆脱它,包括其仓库路径中的原始更改,您需要成为管理员(Perforce 中提交的更改通常被认为非常重要且不可变,除非您是管理员)并使用“obliterate”命令,然后删除流规范:

p4 obliterate -y //depot/your_stream/...
p4 stream -d //depot/your_stream
Run Code Online (Sandbox Code Playgroud)

根据您的描述,我绝对建议使用任务流来获取功能,并在完成后“卸载”它们。

如果您根本不使用流,那么分支的标准做法是要么在完成它们后保留它们,要么重用它们(即有一个正在进行的开发分支,当您完成每个分支时将其合并到主线中)特征)。您可以删除一个分支(如上面的流示例中所述),但由于这需要管理员权限,因此并不典型。