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?
risposta
Sì, è possibile selezionare una revisione da premere. (saranno spinti tutti gli antenati della revisione prescelta; non è necessario specificare 3000.) hg push -r 3001
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? –
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. –
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
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.
Per coloro che utilizzano interfaccia utente e come le immagini:
In TortoiseHg clic sul pulsante
Detect outgoing changes to
.Fare clic con il pulsante destro del mouse sulla revisione che si desidera premere.
Risultato: Sarà solo spingere revisione selezionata, piuttosto che tutto.
Spero che questo ti consenta di risparmiare tempo.
- 1. Mercurial Fusione solo di alcuni changeset
- 2. Mercurial: tagga un changeset particolare
- 3. In Mercurial, c'è un modo (a parte "Cherry picking") per spingere un changeset senza anche spingere i changeset associati ad una testa diversa?
- 4. Commettere solo alcuni file in Mercurial
- 5. Determinazione del changeset "attivo" con Mercurial?
- 6. Ottenere punta changeset di distanza repository Mercurial
- 7. Mercurial: Rimuovi changeset dal ramo remoto
- 8. Come innestare un changeset fusione con Mercurial
- 9. Come rebase un changeset immutabile con Mercurial?
- 10. Esaminare un singolo changeset in Mercurial
- 11. Come modificare un changeset "pubblico" in Mercurial
- 12. Spingere senza commit in Mercurial o Git
- 13. Modifica dell'autore per specifici changeset
- 14. In Mercurial, c'è un'impostazione per spingere sempre nuovi rami?
- 15. Pushet changeset segreti
- 16. Trovare i changeset in mercurial estraendo la patch
- 17. mercurial: verifica se un ramo contiene un changeset
- 18. Mela MDM spingere errore, ma solo per alcuni dispositivi iOS
- 19. Ramificazione in Mercurial
- 20. Subversion - come spostare alcuni changeset dal trunk a un ramo?
- 21. Mercurial to Mercurial to Subversion Workflow Problem
- 22. Mercurial mossa segnalibro per vecchi impegnarsi
- 23. Elimina tutti i changeset locali e ripristina l'albero
- 24. Esaminare un changeset in HG
- 25. Impossibile spingere alcuni arbitri quando si spinge caratteristica ramo
- 26. non può più spingere per BitBucket
- 27. Ajax - spingere e tirare?
- 28. DVCS (Mercurial) non fa per me?
- 29. Mercurial - processo di base per tornare una fusione e riprovare
- 30. Cosa fare quando una patch per l'importazione Mercurial fallisce?
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) –