2010-10-25 21 views
27

Se ci siamo impegnati più volte, ad esempio, sul nostro repository locale, per la revisione 3000, 3001, 3002, 3003. Se si preme su un repository remoto, si spingeranno da 3000 a 3003. C'è un modo per spingere solo 3000 e 3001?Per Mercurial, possiamo spingere alcuni changeset e non spingerli?

+1

possibile duplicato di [In Mercurial, esiste un modo (a parte "Cherry picking") per spingere un changeset senza anche spingere i changeset associati a un altro head?] (Http://stackoverflow.com/questions/3979122/ in-mercurial-is-there-any-way-aside-from-cherry-picking-to-push-a-changeset) –

risposta

38

Sì, è possibile selezionare una revisione da premere. (saranno spinti tutti gli antenati della revisione prescelta; non è necessario specificare 3000.) hg push -r 3001

+0

grande, grazie, andato e ho visto i documenti. dice che se viene usato '-r', allora quel changeset e tutti i suoi antenati saranno spinti. quindi probabilmente non è possibile premere solo 3002 e 3003 senza 3000 e 3001? –

+0

Hai ragione. Non è possibile inviare 3002 senza inviare 3001 (a meno che non abbiano già 3001, ovviamente). Puoi inviare un changeset diverso che ha lo stesso cambiamento ma un diverso hash e genitore (ed è quindi un changeset totalmente diverso), ma farlo troppo spesso significa che finirai con un lavoro duplicato nei tuoi repository. –

+2

Inoltre, se si utilizza la tartaruga hg: dopo aver fatto clic su "rileva i changeset in uscita", fare clic con il pulsante destro sulla revisione che si desidera premere e fare clic su push-> push ramo selezionato – grinch

9

Se è necessario spingere alcuni gruppi di modifiche senza tutti gli antenati (soluzione descritta in @Woolble's answer), una buona opzione è quella di utilizzare Mercurial Estensione code (MQ).

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

Questo vi permetterà di ri-ordine e anche combinare gruppi di modifiche in modo da poterli spingere in qualsiasi ordine che ti piace. Ci vuole un po 'di lavoro per iniziare, ma lo troverai vale la pena.

I TortoiseHg rende il lavoro con MQ piuttosto semplice.

7

Per coloro che utilizzano interfaccia utente e come le immagini:

  1. In TortoiseHg clic sul pulsante Detect outgoing changes to. enter image description here

  2. Fare clic con il pulsante destro del mouse sulla revisione che si desidera premere.

  3. Scegliere Push -> Push to Here. enter image description here

Risultato: Sarà solo spingere revisione selezionata, piuttosto che tutto. enter image description here

Spero che questo ti consenta di risparmiare tempo.

Problemi correlati