如何轻松退出变更集的一部分?

时间:2013-04-11 07:56:31

标签: mercurial

我以前(即之前的几个变更集)提交了一个相当大的变更集,其中包含我想要保留的良好变更,还有一些我想撤消。是的,无论如何,我不应该在一个变更集中包装太多,但现在损坏已经完成。

AFAIK,Mercurial的退出命令只能用于整个变更集。我当然可以通过几个步骤弄清楚如何手动执行此操作,但我想知道:是否有一种简单的方法只能将变更集的部分反转?

(如果重要的话,我想撤消的更改是文件删除。)

3 个答案:

答案 0 :(得分:1)

我应该在发布前尝试过,但这对其他人也有用:

退出不会自动提交。因此,对我有用的方法是运行hg退出,然后简单地还原我不想更改的文件。

答案 1 :(得分:1)

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

  • hg backout -r CSET -I FILE撤消仅更改文件
  • hg backout -r CSET -X FILE退出 FILE
  • 以外的所有更改

答案 2 :(得分:0)

如果您要撤消文件删除,那么最好使用hg revert代替hg backout

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