2010-10-25 8 views
27

Si nos hemos comprometido varias veces, por ejemplo, en nuestro repositorio local, para la revisión 3000, 3001, 3002, 3003. Si presionamos para un repositorio remoto, empujará de 3000 a 3003. ¿Hay alguna forma de presionar solo 3000 y 3001?Para Mercurial, ¿podemos impulsar algunos conjuntos de cambios y no presionar algunos?

+1

posible duplicado de [En Mercurial, ¿hay alguna forma (además de "Cherry picking") de empujar un conjunto de cambios sin también presionar conjuntos de cambios asociados con un cabezal diferente?] (Http://stackoverflow.com/questions/3979122/ in-mercurial-is-there-any-way-aside-from-cherry-picking-to-push-a-changeset) –

Respuesta

38

Sí, puede seleccionar una revisión para enviar. (serán empujados todos los antepasados ​​de la revisión elegido; no es necesario especificar 3000.) hg push -r 3001

+0

genial, gracias, fui y vi los documentos. dice si se usa '-r', entonces ese conjunto de cambios y todos sus antepasados ​​serán empujados. entonces probablemente no sea posible presionar 3002 y 3003 sin 3000 y 3001? –

+0

Estás en lo correcto. No puede enviar 3002 sin enviar 3001 también (a menos que ya tengan 3001, por supuesto). Puede enviar un conjunto de cambios diferente que tenga el mismo cambio pero un hash y un padre diferentes (y por lo tanto un conjunto de cambios totalmente diferente), pero hacerlo demasiado a menudo significa que terminará con trabajo duplicado en sus repositorios. –

+2

Además, si usa tortuga hg: después de hacer clic en 'detectar conjuntos de cambios salientes', haga clic con el botón secundario en la revisión que desea presionar y haga clic en push-> push branch seleccionado – grinch

9

Si tiene que empujar algunos conjuntos de cambios sin todos los antepasados ​​(solución descrita en @Woolble's answer), una buena opción es utilizar Mercurial Extensión de colas (MQ).

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

Esto le permitirá reordenar e incluso combinar conjuntos de cambios para que pueda empujar ellos en cualquier orden que desee. Se necesita un poco de trabajo para comenzar, pero encontrarás que vale la pena el esfuerzo.

I have TortoiseHg hace que trabajar con MQ sea bastante sencillo.

7

Para aquellos que están usando la interfaz de usuario y al igual que las imágenes:

  1. In TortoiseHg clic en el botón Detect outgoing changes to. enter image description here

  2. Haga clic con el botón derecho del mouse en la revisión que desea presionar.

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

Resultado: Va a empujar única revisión seleccionada en lugar de todo. enter image description here

Espero que esto te ahorre algo de tiempo.

Cuestiones relacionadas