Bifurcaciones y cabezas remotas en mercurial.
branch (2)
Además de impulsar el trabajo de fusionarse con otra persona, los jefes remotos también son malos, ya que pueden causar confusión . Las personas que hacen un nuevo clon no sabrán de qué cabeza comenzar si hay varias. Para empeorar las cosas: un nuevo clon se actualizará a la cabecera más nueva en la rama predeterminada, y esta cabecera cambia de un momento a otro cuando la gente empuja los cambios a las distintas cabezas.
El uso de ramas con nombre o clones separados ayuda aquí: un nuevo clon siempre se actualizará al encabezado de la rama predeterminada y las personas podrán actualizar a otra rama según sea necesario.
Creé una nueva rama usando este comando: hg branch new_branch
Después de la primera confirmación de la nueva rama, la rama predeterminada queda inactiva. Si se presiona esto, el repositorio central tendrá solo una cabecera que pertenece a la nueva rama.
Cuando mi colega empuja sus confirmaciones en la rama predeterminada, recibirá este error:
pushing to ssh://...
searching for changes
abort: push creates new remote heads!
(did you forget to merge? use push -f to force)
¿Hay algo malo en forzar el empuje? ¿Por qué son malas las cabezas remotas?
¿Cómo trabaja de forma remota en sucursales separadas y lo empuja a un repositorio?
Las cabezas remotas son malas porque básicamente estás haciendo el esfuerzo de fusionarte con otra persona. Este mensaje está ahí para evitar que las personas introduzcan cabezas remotas accidentalmente, diciéndoles que se fusionen primero antes de empujar.
Sin embargo, en este caso, ha creado una rama con nombre, lo que significa que intencionalmente introduce y comparte un nuevo encabezado, y puede descartar la advertencia como información. Use hg push --new-branch
para forzarlo (o -f
antes de la versión 1.6).