¿Cuál es la desventaja de administrar un repository con varias cabezas?

Tengo un proyecto con una sola twig, por defecto. He estado iterando en esta única twig con nombre desde hace un time y he estado usando tags para marcar los hitos del número de versión.

El código fuente del proyecto cambió bastante entre las tags 1.0.7 y 1.1.0 (actual). Sin embargo, hay algunos usuarios en 1.0.7 que necesitan una corrección de errores. Así que revisé la fuente, actualicé a la label 1.0.7, implementé una solución y me comprometí. Eso fue labeldo 1.0.8, y probablemente será el último commit en la línea 1.0.x.

Ahora tengo dos cabezas en la twig pnetworkingeterminada. Yo esperaba que. Pero cuando traté de ingresar a nuestra count de BitBucket, recibí una advertencia de hg: "push crea una nueva cabeza remota". Al leer este post, recibo muchas respuestas que explican por qué el post está ahí y, para la mayoría de las personas, la respuesta es simplemente fusionar. Sin embargo, no creo que quiera eso en este caso. Las dos twigs no son compatibles.

Parece que puedo usar la opción -f para forzar el empuje del nuevo cabezal hacia el repository remoto, sin embargo, esto parece desanimado tanto por la ayuda de hg como por varias publicaciones en la web sin mucha explicación de por qué. Entonces, ¿cuál es la desventaja de hacer esto? Parece que todavía puedo actualizar las tags / revisiones en las que quiero seguir trabajando. Si empujo esa cabeza hacia la count de BitBucket, ¿me dispararé en el pie de alguna manera?

Tener múltiples cabezas está perfectamente bien.

Si hay varias cabezas y hay pocas indicaciones sobre su propósito, puede ser difícil para otros ver dónde deben continuar y cuál es la cabeza que contiene los desarrollos más nuevos, por ejemplo, que obtiene nuevas características.

Sin embargo, al usar las tags en la twig con versiones claras como tú, ese problema tampoco existe.

Sin embargo, hay una pequeña captura: Mercurial, al clonar, actualizará a la nueva confirmación en la twig pnetworkingeterminada, por ejemplo, la cabeza que recibió la última confirmación. Si ese es el 1.0.x cabeza tuya, eso podría ser desafortunado. Sin embargo, puede solucionarlo adjuntando el marcador especial '@' a la línea principal o al encabezado de desarrollo. Mercurial siempre se actualizará a la cabecera que lleva ese marcador, si está presente, independientemente de qué cabeza tiene el compromiso más reciente.