gpt4 book ai didi

mercurial - 为什么 Mercurial 只有一级回滚?

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

我了解回滚的限制和 care required in its use ,但我只是想知道为什么只有一个级别的回滚。

我猜这是一个设计决策,存储多个先前的事务状态来处理多个级别的回滚的麻烦比它的值(value)更麻烦。

最佳答案

只有一个级别的回滚,因为回滚从来都不是真正的功能。回滚存在,并且有一个奇怪的名字,因为它源自 Mercurial 的提交/推/拉事务系统。

如果网络推送进入并且完成了 99%,然后连接丢失,则存储库不应处于不一致的状态。为了确保可以丢弃不完整的更改,在完成任何写入之前创建“在发生任何事情之前”指针,并且如果更改中止,则所有内容都会重置为该状态 - 回滚。

rollback 命令实际上只是在成功完成后使上一个操作“失败”。这只是在设计了必要的交易安全性之后“免费”的东西。

当使用像 controlling hook 这样的东西时人们可以定义必须通过的检查/测试,以便推送或提交成功完成。为了不成功完成,必须可以撤消正在进行的提交,但这也不需要多个级别。

正如 VonC 正确指出的那样,回滚可能非常危险。许多人会回滚他们已经推送的更改,然后当其他更改在后续拉取中返回时会感到非常困惑。 hg backout 命令几乎总是一个更好的主意。

另请注意,您可以通过执行以下操作轻松模拟回滚到任何时间点:

hg clone -r last_revision_I_want repo_with_things_I_do_not_want new_repo_with_only_good_stuff

关于mercurial - 为什么 Mercurial 只有一级回滚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3069256/

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