暂时将工作副本切换到 Mercurial 中的先前版本?

sda*_*aau 1 mercurial

这与暂时将工作副本切换到特定的 Git 提交基本上是相同的问题,但适用于 Mercurial

假设修订版 500 是我在 Mercurial 中提交的最后一个修订版。我又做了一些工作,并意识到早期版本中出了问题。所以,我已经“git stashed”,也就是说,hg shelved 我当前的更改,所以我处于干净的修订版 500。

现在我想做的是检查版本499,重建软件,看看是否仍然有错误;如果是,检查版本498,重建软件,看看是否仍然有错误;如果是,修订497,重建软件,看看是否还有错误;等等,直到我弄清楚哪个版本引入了错误。

完成此操作后,我想返回到修订版 500(unshelve我之前的工作),添加修复,然后进行新的提交(这将是修订版 501)。这意味着当我回顾历史时,我不想重置任何东西,也不想从那里上演任何东西。

在 git 中,我可以git checkout HASH回顾历史,一旦完成,git checkout master就回到提示。我应该在 Mercurial 中使用哪些命令?

Cra*_*aig 5

您可以使用 hg update 转到旧版本:

hg update 499  # The short id number or the full hash
Run Code Online (Sandbox Code Playgroud)

或者,如果您想在不需要知道 id 的情况下跳转到父变更集,您可以使用 Mercurial revset:

hg update .~1
Run Code Online (Sandbox Code Playgroud)

确定问题后,您可以简单地:

hg update tip
Run Code Online (Sandbox Code Playgroud)

并取消搁置您的更改,添加您的修复并提交。

我建议您阅读 Mercurial:权威指南。您的问题非常基本/入门级水银用法。

编辑:Mercurial:权威指南的链接是:

http://hgbook.red-bean.com/read/

或本书的1.9版本:

https://book.mercurial-scm.org/read/index.html