Ry4*_*ase 13
只有一个级别的回滚,因为回滚从未真正用作功能.回滚存在,并且它的名字很奇怪,因为它源于mercurial的提交/推/拉事务系统.
如果网络推送进入并且它完成99%然后连接丢失,则存储库不应该处于不一致状态.为了确保可以丢弃不完整的更改,在完成任何写入之前创建"事先发生之前"指针,如果更改中止,则所有内容都将重置为该状态 - 回滚.
rollback
在成功完成之后,该命令实际上只是"失败"了上一个操作.在设计必要的事务安全性之后,它就是"免费"的东西.
当使用类似控制钩子的东西时,可以定义必须传递的检查/测试,以便推送或提交成功完成.为了不能成功完成,必须可以撤消正在进行的提交,但这也不需要多个级别.
正如VonC正确地指出回滚可能非常危险.许多人回滚他们已经推动的变化,然后当其他变化在随后的拉动中恢复时会变得非常困惑.这个hg backout
命令几乎总是一个更好的主意.
另请注意,通过执行以下操作,您可以轻松地模拟回滚到任何时间点:
hg clone -r last_revision_I_want repo_with_things_I_do_not_want new_repo_with_only_good_stuff
Run Code Online (Sandbox Code Playgroud)