subversion son que practicas informatica hacer estructura como buenas branches mercurial branching-and-merging

son - Mercurial: cierre la rama predeterminada y sustitúyala por una rama nombrada como nueva predeterminada



svn branches tags trunk (3)

Creo que es mejor usar un concepto en Tortoisehg para explicar cómo funciona.

  • hg update para desarrollar sucursal.
  • Elija el encabezado de la rama predeterminada y elija fusionar con local.
  • luego elija descartar todos los cambios del objetivo de fusión (otro), por lo tanto, el valor predeterminado se fusiona para desarrollar sin afectar el desarrollo
  • luego bifurcar a predeterminado desde la cabecera de desarrollo, usar hg branch default , reinicio predeterminado nuevamente

En un repositorio comercial, la rama "predeterminada" ha quedado muy desactualizada hasta el punto en que ya no tiene sentido fusionarse con los cambios de "desarrollar", una rama con nombre que tiene la última versión implementada de la aplicación.

En lugar de fusionar el desarrollo con el valor predeterminado, ¿cómo puedo cerrar la rama predeterminada actual y luego crear una nueva rama predeterminada utilizando la cabecera desde el desarrollo?

He visto algunas otras preguntas y respuestas que son similares, quizás las mismas, pero todavía tengo problemas para entender cómo debería funcionar esto.

¡Gracias!


En base a su comentario de que no es un requisito para cerrar la rama, aquí hay una serie de pasos que deben hacer que la rama predeterminada esté en sintonía con la rama de desarrollo:

  1. hg update default
  2. hg merge --tool internal:other - para fusionar mientras privilegia la rama desarrollada
  3. hg diff -r develop - comparar con desarrollar para asegurarse de que tiene una copia exacta
  4. hg commit -m "merge updating default to current develop"

Una vez completado, debe tener un valor por defecto actualizado que refleje la rama de desarrollo, volviéndolos a sincronizar.


Si el default ha desviado un poco del develop y desea que el default sea ​​exactamente el mismo que el develop después de la combinación, necesita un conjunto de comandos ligeramente diferente al que Edward le dio (esto también funcionará cuando develop es un descendiente directo del default ).

hg update -C default hg -y merge --tool internal:fail develop hg revert --all --no-backup -r develop hg resolve --all --mark hg commit -m "merge updating default to current develop"

Esto significa que cualquier conflicto resultará en una fusión sin resolver. Luego, revertir todo para que sea igual que en la rama de develop (sin respaldo para que no quede un montón de archivos .orig).