Tenga en cuenta: No estoy tratando de reiniciar el argumento de si Mercurial o Git es mejor, solo tengo una pregunta técnica que yo, como usuario de Mercurial, no entiendo. Tampoco estoy seguro de si SO es el lugar adecuado para hacer esa pregunta, pero está relacionado con la programación.¿Por qué Git no almacena el nombre de la rama como parte de la confirmación?
Ha habido muchas discusiones acerca de cómo los dos sistemas de control de versiones Git y Mercurial difieren entre sí desde el punto de vista del usuario (por ejemplo, y http://felipec.wordpress.com/2011/01/16/mercurial-vs-git-its-all-in-the-branches/), y la principal diferencia es el manejo de ramas. He leído muchas de estas discusiones, pero me sigo haciendo esta pregunta:
¿Por qué Git no almacena el nombre de la rama como parte de la confirmación?
Realmente no veo una buena razón para no hacer eso; significa que los datos simplemente no pueden desaparecer simplemente porque no hay referencia (etiqueta, rama, lo que sea) que se le atribuye.
Veo el almacenamiento de la rama en el compromiso como una gran ventaja para Mercurial, porque eso hace que sea más difícil perder datos.
El punto principal del grupo de Git a favor del modelo de ramificación de Git, que puede simplemente eliminar ramas, no impide que Git almacene el nombre de la rama como parte de cada confirmación: si se borran las confirmaciones de una rama , así son las referencias a esa rama. Tampoco interferirá con el argumento de la "ramificación barata": las sucursales no serán más caras de administrar. Y no creo que el almacenamiento adicional necesario sea motivo de preocupación: solo se trata de un par de bytes por commit.
Estoy confundido, ¿cuándo pierdes datos en este momento? – Useless
No, pero es posible: Por lo que yo entiendo, una cabeza separada será recogida de basura cuando no apunte una etiqueta o una rama hacia ella. –
@danielkullmann: recogida de basura, sí, pero no antes de al menos dos semanas: http://stackoverflow.com/questions/5772192/git-how-can-i-reconcile-detached-head-with-master-origin – VonC