【问题标题】:How to delete a feature branch (or any branch) in Perforce?如何在 Perforce 中删除功能分支(或任何分支)?
【发布时间】:2023-03-26 19:46:01
【问题描述】:

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

您可以在 perforce 中删除分支还是永久保留在 Perforce 中?

【问题讨论】:

    标签: perforce


    【解决方案1】:

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

    p4 unload -s //depot/task_stream
    

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

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

    p4 obliterate -y //depot/your_stream/...
    p4 stream -d //depot/your_stream
    

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

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

    【讨论】:

    • 因此,只有在 Perforce 中使用 Streams 时,任务流才有效。我们目前没有在我们的 repo 中使用 Streams。我得调查一下。从这个描述看来,我只需要保留我的 feature 分支。这是一个非常有用的答案。
    • @SamStafford:我要补充一点,我的团队目前每月生成大约 100 个功能分支,而且我使用 perforce 的次数越多,我就越想清除旧功能分支以保持理智浏览存储库或打开修订图时。即使有缺点,我认为这是保持仓库相对清洁和可用的唯一方法。
    • 使用任务流绝对是可行的方法,因为除了该任务流的客户端之外,未修改的文件(绝大多数)不可见,并且在卸载流时它们会消失。
    猜你喜欢
    • 2020-12-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 2022-07-08
    • 2021-12-11
    • 2023-03-31
    相关资源
    最近更新 更多