当多个可用时,在Mercurial中推送单个变更集

ear*_*ing 6 mercurial

我有5个外发变更集可以从我当地的Mercurial仓库中推送,而我现在只想推送其中一个.这一变化集在于所有可用的中间.

例如,我有以下修订:

  • 6639
  • 6546
  • 6545
  • 6544
  • 6543

我只想推6545.任何简单的方法吗?

zer*_*kms 15

您只能将连续的变更集列表推送到所需的变量集.

所以

hg push -r 6545
Run Code Online (Sandbox Code Playgroud)

会推6543..6545.

而且你不能仅仅6545因为没有先前的变更集而改变它没有任何意义.


ale*_*xis 1

你想要的东西是不可能的。修订必须将存储库置于确定的状态,但如果您可以推送 6545 并将远程存储库更新到它,则它将不包括早期(未推送)修订集的更改。这违背了 Mercurial 的核心设计。你能做的是:

a) 分发包含与 rev 6545 相同更改的 diff(补丁)。您可以通过hg diff或以其他方式执行此操作,但应用补丁并不与您的 rev 6545 本质上相关:它是一个单独的修订版,“发生”进行相同的更改。如果幸运的话,它们将来可以毫无问题地合并。或者

b) 暂时(使用 mq 扩展)或永久(使用 helprebase或其他扩展)重写您的历史记录,以便 6545 立即放置在已提交的修订之后。然后,您可以像任何其他其祖先已被推送的修订版一样推送它。