2010-10-25 48 views
27

如果我们多次提交,例如在我们的本地回购中,修订版本为3000,3001,3002,3003。如果我们推送到远程回购,它将推送3000到3003.有没有办法只推送3000和3001?对于Mercurial,我们可以推一些变更集,不要推一些吗?

+1

的可能重复的[在水银,有任何方法(除了“樱桃采摘”)推变更而不推也与不同的头相关联的变更?](http://stackoverflow.com/questions/3979122/在那里 - 任何方式 - 从樱桃 - 采摘到推 - 变换集) – 2010-10-25 16:36:39

回答

38

是的,您可以选择要推送的修订版。 hg push -r 3001(所选修订的所有祖先将被推;你不需要指定3000)

+0

很好,谢谢,去了,看到了文档。它说,如果使用'-r',那么该变更集及其所有祖先将被推送。所以它可能不可能只推3002和3003没有3000和3001? – 2010-10-25 15:33:26

+0

你是对的。不发送3002也不发送3001(当然,除非他们已经有3001)。您可以发送具有相同更改但不同散列和父项(因此是完全不同的更改集)的不同更改集,但这样做通常意味着最终会在您的回购站中进行重复工作。 – 2010-10-25 15:53:25

+2

此外,如果使用tortoise hg:点击'检测外出变更集'后,右键点击您想要推送的修订版本,然后点击推送 - >推送所选分支 – grinch 2013-05-30 13:39:31

9

如果您需要推动一些变更,而不所有祖先(溶液中@Woolble's answer描述),一个很好的选择是使用水银队列扩展(MQ)。

https://www.mercurial-scm.org/wiki/MqExtension

这将让你重新排列顺序,甚至合并的变更,所以你可以在任何你喜欢的顺序把他们。开始工作需要一些工作,但您会发现非常值得努力。

我TortoiseHg使得使用MQ非常简单。

7

对于那些谁正在使用的用户界面和类似图片:

  1. In TortoiseHg点击Detect outgoing changes to按钮。 enter image description here

  2. 在想要推送的版本上单击鼠标右键。

  3. 选择Push -> Push to Hereenter image description here

结果:您将推动唯一入选的,而不是一切修订。 enter image description here

希望这可以节省一些时间。

相关问题