1

我以前(即之前的几个变更集)提交了一个相当大的变更集,其中包含我想保留的好更改和一些我想撤消的更改。是的,无论如何我都不应该在一个变更集中打包这么多,但现在损害已经造成。

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

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

4

3 回答 3

1

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

退出不会自动提交。所以对我有用的方法是运行 hg backout,然后简单地恢复我不想被改回来的文件。

于 2013-04-11T08:05:36.387 回答
1

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

  • hg backout -r CSET -I FILE仅对FILE进行回退更改
  • hg backout -r CSET -X FILE撤消FILE之外的所有更改
于 2013-04-11T08:21:29.747 回答
0

如果要撤消文件删除,那么最好使用hg revert而不是hg backout

hg status --change CSET --removed -n0 | xargs -0 hg revert --rev CSET^1
于 2013-04-13T10:24:09.180 回答