version control - Fusión de Mercurial completamente manual.
version-control merge (4)
Desactiva la "fusión previa" en tu configuración de combinación. Entonces todo cuenta como un conflicto y puede seleccionar "izquierda" o "derecha" para cada cambio de archivo.
[merge-tools]
mymergetool.premerge = False
¿Hay alguna manera de tomar el control manual completo sobre el proceso de fusión en Mercurial?
Quiero poder elegir la dirección de fusión de archivos, incluso para archivos sin conflictos. ¿Es eso posible?
Edite su archivo de configuración de esta manera:
[ui]
merge = kdiff3
[merge-tools]
kdiff3.premerge = false
kdiff3.args=--L1 base --L2 local --L3 other $base $local $other -o $output
Por defecto, coloca el argumento --auto
en kdiff3, por lo que kdiff3 se fusiona automáticamente.
En el caso de KDiff3, es vital agregar la opción --qall
(consulte http://kdiff3.sourceforge.net/doc/documentation.html ). Habrá una fusión automática de algunos conflictos sin esta clave (como " Resolver automáticamente conflictos simples " en el menú " Combinar "). Así, la línea de comando más adecuada es:
[ui]
merge = kdiff3
[merge-tools]
kdiff3.premerge = False
kdiff3.args=$base $local $other -o $output --L1 base --L2 local --L3 other --qall
Una fusión siempre se realiza entre la revisión principal del directorio de trabajo y otra revisión, de forma predeterminada, la otra cabecera en su repositorio.
Si desea fusionarse en la otra "dirección", puede cambiar qué rama está en su directorio de trabajo revisando una revisión específica:
hg update -r [rev]
Para ver qué cabezas tiene en su repositorio, ejecute el siguiente comando:
hg heads
Alternativamente, si está utilizando fetch
, puede usar la opción --switch-parent
para fusionar en la otra dirección:
hg fetch --switch-parent
No puede cambiar la dirección de la fusión en una base de archivo por archivo, ya que Mercurial trabaja con los conjuntos de cambios que afectan a todo el repositorio, no mediante el seguimiento de los cambios en archivos individuales como CVS.