我如何在 Mercurial 中恢复单个大块,类似于在 darcs 中完成的方式,即它询问我是否要恢复每个大块和文件?可以使用 TortoiseHg 吗?
谢谢
我如何在 Mercurial 中恢复单个大块,类似于在 darcs 中完成的方式,即它询问我是否要恢复每个大块和文件?可以使用 TortoiseHg 吗?
谢谢
实际上,至少在 Shelve 工具中,mercurial 指的是“块”。这让我想到了最喜欢的方式来恢复它们(以及 TortoiseHg 最喜欢的功能)。
只需将要还原的块移动到您创建的专门用于删除的架子上。只要按照您的需要识别块,这就会非常有效。如果没有,您别无选择,只能手动执行某些操作。
如果您使用 TortoiseHg Workbench 或 VisualHg,很容易使用 Shelve 工具:在 diff 模式切换按钮旁边有一个按钮。如果您不熟悉货架,请帮自己一个忙并开始使用它。当我忘记提早提交或决定从提交中省略实验代码时,它为我节省了很多麻烦。
该record
扩展的灵感来自darcs record
. 它将允许您仅将特定的大块添加到下一次提交,即与您想要的相反。但是你可以添加除了你想要恢复的那个之外的所有大块,然后做一个hg revert
来恢复它。有点倒退,我知道... :-)
你也可以这样做hg diff > patch; hg revert
,编辑patch
以删除大块并hg import --no-commit
重新应用补丁。这可能更快,但需要您手动编辑补丁。我在 Emacs 上取得了巨大的成功diff-mode
,但既然您询问 TortoiseHg,您可能不想使用 Emacs。
要反转单个文件上的变更集,请尝试:
汞差异-c | 补丁-R
这将反转该文件名上该修订引入的变更集。现在,如果可以在其中包含相同的 darcs/git 风格的樱桃采摘行为,我会非常高兴。