2013-04-11 12 views
1

我以前(即几个变更集之前)提交了一个相当大的变更集,其中包含我希望保留的良好更改,还有一些我想撤消。是的,无论如何,我不应该将这么多钱包装在一个变更集中,但是现在损失已经完成了。如何轻松退出部分变更集?

AFAIK,Mercurial的退货命令只能对整个变更集进行操作。我当然可以想出如何在几个步骤中手动执行此操作,但是我想知道:是否有一种简单的方法可以将变更集的部分颠倒过来?

(如果它的事项,我想撤消改变文件删除。)

回答

1

我应该在发布前都试过了,但是这可能是对别人有用的:

回退没有按” t自动提交。因此,对我而言,这种方法是运行hg退出,然后简单地还原我不想改回的文件。

1

根据条件(两种情况下的“必须退出”和“必须保留”或文件模式的数量),您可以使用hg backout和-I(包括掩码)或-X(不包括掩码)选项

  • hg backout -r CSET -I FILE退出仅更改 FILE
  • hg backout -r CSET -X FILE退出所有更改,除非 FILE
+0

谢谢,这看起来非常有用。在我的情况下,在TortoiseHg工作台中点击并点击文件更容易,但在某些情况下,模式方法可能非常方便。 – HansMari 2013-04-11 09:34:11

0

如果您想撤消文件删除,那么这将是更好地使用hg revert而不是hg backout

hg status --change CSET --removed -n0 | xargs -0 hg revert --rev CSET^1