Mercurial:还原一个大块头

Den*_*gan 16 mercurial tortoisehg revert

如何在Mercurial中恢复单个块,类似于在darc中完成的方式,即它询问我每个块和文件是否我想要还原它?是否有可能使用TortoiseHg?

谢谢

And*_*uus 8

实际上,mercurial指的是"块",至少在Shelve工具中.这让我有了最喜欢的方式来恢复它们(以及TortoiseHg最喜欢的功能).

只需将要恢复的块移动到您创建的仅用于删除的工具架上即可.只要根据您的需要识别块,这种方法就可以正常工作.如果没有,你别无选择,只能手动做一些事情.

如果你使用TortoiseHg Workbench或VisualHg,很容易进入Shelve工具:diff模式切换按钮旁边有一个按钮.如果您不熟悉货架,请帮个忙,并开始使用它.当我提前提交或者决定从提交中遗漏实验代码时,它为我节省了很多时间.


Mar*_*ler 4

record扩展的灵感来自darcs record. 它将允许您仅向下一次提交添加特定的块,即与您想要的相反的块。但是你可以添加除你想要恢复的那个之外的所有帅哥,然后执行 ahg revert来恢复它。有点倒退,我知道......:-)

您还可以执行hg diff > patch; hg revert, editpatch来删除该块,然后执行hg import --no-commit来重新应用补丁。这可能会更快,但需要您手动编辑补丁。我在 Emacs 方面取得了巨大成功diff-mode,但既然您询问了 TortoiseHg,您可能不想使用 Emacs。