Tome un ejemplo simple: estoy trabajando en la rama predeterminada, tengo algunos conjuntos de cambios confirmados localmente, y saqué algunos más del repositorio principal. He estado trabajando durante unos días en mi repositorio local aislado, por lo que hay varios cambios para fusionar antes de que pueda volver a aplicar mis resultados al máster.¿Se fusiona la dirección en Mercurial?
default ---o-o-o-o-o-o-o-o-o-o-o (pulled stuff)
\
o----o------------o (my stuff)
Puedo hacer dos cosas ahora.
Opción # 1:
hg pull
hg merge
Resultado # 1:
default ---o-o-o-o-o-o-o-o-o-o-o
\ \
o----o------------o-O
Opción # 2:
hg pull
hg update
hg merge
Resultado # 2:
default ---o-o-o-o-o-o-o-o-o-o-o-O
\ /
o----o------------o
Estos dos resultados parecen isomorfos para mí, pero en la práctica parece que la opción n. ° 2 da como resultado conjuntos de cambios mucho más pequeños (porque solo aplica mis pocos cambios a la línea principal en lugar de aplicar todos los cambios principales a mis pocos).
Mi pregunta es: ¿esto importa? ¿Debería importarme la dirección de mis fusiones? ¿Estoy ahorrando espacio si hago esto? (Hacer hg log --patch --rev tip
después de la fusión lo sugiere)
Esto es particularmente importante si usa [Hg-Git] (http://hg-git.github.com/), ya que rastrea la posición de las ramas virtuales de Git usando marcadores. Si se fusiona de manera incorrecta, el marcador de rama de Git no se moverá y no tendrá nada que empujar. –
No se garantiza que fusionar 200 en 195 moverá el marcador hacia adelante a 201. Si lo hace 'hg update my-stuff; hg merge 200' lo hará, pero si lo hace 'hg update 195; hg merge 200' no lo hará. La actualización por nombre de marcador lo hace * activo *. –