5

我正在尝试重新调整我在本地机器上所做的一些更改。我收到错误:

abort: can't rebase immutable changeset 110e73ed65a4
(see hg help phases for details)

即使在我改变了我正在重新设置的变更集的阶段之后,我也会得到同样的错误(并且阶段改变似乎是成功的)。使用:

hg phase -f -d REV

我想知道历史记录中是否有一个我丢失并且仍然不可变的变更集,如果是这样,是否有一种方法可以通过一个命令将变更集历史记录中的所有变更集更改为可变。

或者,有没有办法强制变基,即使是不可变的变更集?

4

1 回答 1

6

对公开的更改进行变基被认为是一个非常糟糕的主意。您不应该更改任何已推送的历史记录 -阶段的重点是跟踪尚未推送哪些更改(以便能够修改它们)以及已推送哪些更改(因此它们是不可变的)。从变基文档

您不应该重新设置已经与他人共享的变更集。这样做将迫使其他所有人执行相同的变基,否则在拉入您的变基变更集后,他们将最终得到重复的变更集。

最好是合并您的更改或将它们嫁接。嫁接(也称为樱桃采摘)采用一个或多个更改集并将它们复制到您当前的分支。

于 2012-12-30T06:07:10.097 回答