2010-10-25 4 views
27

Wenn wir mehrmals begangen, zum Beispiel auf unserem lokalen Repo, für die Revision 3000, 3001, 3002, 3003. Wenn wir zu einer Remote-Repo schieben, es 3000 bis 3003. Gibt es eine Möglichkeit nur 3000 schieben schieben werden und 3001? JaKönnen wir für Mercurial einige Changesets pushen und einige nicht pushen?

+1

möglich Duplikat [In Mercurial, ist es eine Möglichkeit (abgesehen von „Cherry Picking“) eine changeset ohne auch schieben Changesets mit einem anderen Kopf verbunden zu schieben?] (Http://stackoverflow.com/questions/3979122/ in-mercurial-ist-es-any-way-aside-from-Rosinenpickerei-to-Push-a-changeset) –

Antwort

38

, können Sie eine Revision wählen zu drücken. hg push -r 3001 (alle Vorfahren der gewählten Revision geschoben wird, man nicht 3000. angeben müssen)

+0

toll, danke, ging hin und sah die docs. es sagt, wenn '-r' verwendet wird, dann werden das Changeset und all seine Vorfahren geschoben. also ist es wahrscheinlich nicht möglich, nur 3002 und 3003 ohne 3000 und 3001 zu drücken? –

+0

Sie haben Recht. Sie können 3002 auch ohne 3001 senden (außer sie haben natürlich schon 3001). Sie können ein anderes Changeset senden, das die gleiche Änderung, aber einen anderen Hash und Parent hat (und somit ein völlig anderes Changeset ist), aber das zu oft bedeutet, dass Sie in Ihren Repos doppelte Arbeit haben. –

+2

Auch Tortoisehg bei Verwendung: Nach dem Anklicken von ‚erkennen scheidenden Changesets‘, rechts klicken Sie auf die Revision, die Sie drücken möchten, und klicken Push-> drücken ausgewählten Zweig – grinch

9

Wenn Sie ohne alle Vorfahren einige Changesets zu schieben brauchen (Lösung in @Woolble's answer beschrieben), ist eine gute Option Mercurial verwenden Warteschlangenerweiterung (MQ).

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

So können Sie wieder Ordnung und sogar kombinieren Changesets, damit Sie sie in beliebiger Reihenfolge Sie schieben kann. Es braucht ein wenig Arbeit, um loszulegen, aber Sie werden es die Mühe wert finden.

Ich habe TortoiseHg macht mit MQ ziemlich einfach arbeiten.

7

Für diejenigen, die Benutzeroberfläche und wie Bilder verwenden:

  1. In TortoiseHg Klick auf Detect outgoing changes to Taste. enter image description here

  2. Klicken Sie mit der rechten Maustaste auf die Revision, die Sie drücken möchten.

  3. Wählen Sie Push -> Push to Here. enter image description here

Ergebnis: Sie werden nur Revision schieben ausgewählt, anstatt alles.

Hoffe das spart Ihnen etwas Zeit.

Verwandte Themen