2010-06-23 13 views
13

¿Cuándo uso la actualización frente a la fusión? Si hago una extracción desde un repositorio remoto, estoy leyendo que tengo que actualizar para obtener esos cambios en mi directorio de trabajo. Pero otras veces estoy leyendo que tengo que fusionarme.Mercurial: cuándo usar la actualización

¿Es posible que desee siempre hacer una actualización después de una extracción, y luego hacer una fusión solo si hay conflictos?

¿Qué no entiendo aquí?

Respuesta

16

Si tiene confirmaciones locales: fusionar. Si tiene modificaciones locales no confirmadas: actualización (que se fusionará).

Por lo general, cuando se realiza una confirmación localmente, se bifurca el árbol cuando se tira. En este caso, siempre debe fusionar (o rebasear con la extensión rebase). Si tiene modificaciones locales no confirmadas, cuando extrae, puede actualizar y fusionar los cambios en su espacio de trabajo.

+2

Si bien esto es correcto en el sentido técnico, comprenda que extraer y actualizar en un directorio de trabajo no comprometido (sucio) está perdiendo una gran parte del beneficio de mercurial. Si tiene cambios significativos, compromételos primero para no corromper el contexto y potencialmente perder trabajo en la fusión. – codekaizen

14
  • hg update se trata de hacer su directorio de trabajo el mismo que una revisión dada
  • fusión hg no se restablecerá a su directorio de trabajo a una revisión dada (que todavía se refiere el mismo), sino que fusionar los cambios de otra revisión en su directorio de trabajo actual.

Así que después de un tirón, una actualización hg será cambio su directorio de trabajo para reflejar lo que se han retirado en su repositorio.
Pero hg merge no restablecerá su directorio de trabajo, solo fusionará los cambios entre su directorio de trabajo y lo que ha extraído.

hg pull -u se extraerá y actualizará, se rehusará a combinar o sobrescribir los cambios locales.

  • Si el tirón añadir un nuevo jefe en tu repositorio, tendrá que combinar
 
added 1 changesets with 1 changes to 1 files (+1 heads) 
(run 'hg heads' to see heads, 'hg merge' to merge) 
  • Si el tirón añadir ninguna nueva HEAD en tu repositorio, una simple actualización es lo suficientemente
Cuestiones relacionadas