Mercurial如何回滚到某个标签?

JD *_*cks 5 mercurial dvcs

我对如何回滚到 Mercurial 中的标签有点困惑。(我对此很陌生)

假设我有一个名为“Version-1.0”的标签,该标签是多次修订前的。假设我们现在处于 r400

现在,如果我的经理告诉我,他们不喜欢事情的发展方向,并且基本上想放弃自该标签以来的所有内容并返回到版本 1.0。

好吧,我可以通过以下方式检查该标签:

hg update -r 版本-1.0

好的,现在我回到了 1.0 版本标签,如果我永远不需要进行更改,那就没问题了。然而,一旦我做出更改并提交,我现在就有了 2 个头(我对 Version-1.0 和 r400 的新更改是经理想要放弃的东西)。

所以现在我需要与r400合并。我不想。(我真的不想把所有这些变化从地球上抹去,我希望它们保留在我的历史中,这样如果管理层再次改变主意,我可以稍后再回到它们)但我目前不想要其中任何一个。

我该怎么办?


更新

一个答案指出:

您可以克隆整个存储库直到标签,然后使用该克隆作为您的“新”中央存储库。

如果我的中央存储库由 bitbucket 托管,我不知道该怎么做。如果当前的存储库位于 URLhttps://jisaacks@bitbucket.org/jisaacks/hgml并且我想将其克隆到标记到名为hgml2(尚不存在)的新存储库,我在我的计算机上本地尝试了此命令:

hg clone -r Version-1.0 https://jisaacks@bitbucket.org/jisaacks/hgml https://jisaacks@bitbucket.org/jisaacks/hgml2
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

中止:无法创建新的 http 存储库

Wim*_*nen 3

登录bitbucket并点击右上角的“分叉”箭头图标。现在您可以打开“高级设置”以从标签中分叉。

然后,您可以将第一个存储库重命名为“myproject-abandoned-foo-changes”之类的名称,并重用分叉存储库的原始名称,您将在其中继续开发。

编辑:您也可以进行无操作合并。链接的维基页面解释说,这可能很糟糕,因为您的历史记录会受到不需要的更改的污染,但我认为在您的情况下,这可能正是您想要的,因为它将保留您的更改,同时避免“将所有内容切换到新的存储库” “您抱怨的问题。