gpt4 book ai didi

Mercurial:改变阶段会产生什么后果?

转载 作者:行者123 更新时间:2023-12-02 22:02:58 24 4
gpt4 key购买 nike

在 Mercurial 中,修订的阶段可以任意更改。相变对于所有可能的转换(公开、草案、 secret )x(公开、草案、 secret )会产生什么后果?哪些相变是安全的?哪些可能会带来麻烦,哪些类型的麻烦?哪些或多或少是无操作的?

最佳答案

提交的默认阶段是草稿,这就是阶段不存在时的处理方式。当推送草稿变更集时,mercurial会自动将其阶段更改为public。您可以使用它来了解您已经发布或尚未发布哪些变更集。

但真正的问题是,当变更集处于 public 阶段时,mercurial 不会让您使用历史编辑扩展(例如 mq rebase 等)。这非常重要,因为历史记录编辑发生在本地存储库中,它们不会通过pull/push操作进行传播。因此,一旦发布变更集,它就会失去控制,更改它是危险的。

您可以从任何阶段更改为任何其他阶段。 “正常流程”是移动到更高的阶段( secret ->草稿->公共(public)),但 Mercurial 允许使用 --force 选项更改到较低的阶段。单独的相变是无害的。例如,从 public 移动到 draftsecret 时唯一发生的事情是历史编辑的保护被删除,没有别的, pull 和push 仍将正常工作,Mercurial 永远不会对变更集感到困惑,因为它们具有唯一的标识符。在像这样的阶段变化之后发生的历史编辑操作可能会导致问题。这就是为什么 Mercurial 在相变中发出警告并需要 --force 选项,以确认这就是您真正想要的。

一般来说,发布的提交不应被修改,这是阶段试图确保的。但也许您确实可以控制所有存储库。或者也许你推了一些东西,但你知道还没有其他人拉它。无论原因是什么,您都可以选择强制变更集的阶段返回草稿并编辑它们。但此版本必须在每个具有变更集的存储库中完成。

关于Mercurial:改变阶段会产生什么后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com