¿Qué sucede si una rama tiene dos cabezas? Llegué a esta situación hace semanas por alguna razón que no los fusioné en ese momento y simplemente continué desarrollando en una sola cabeza. Ahora quiero deshacerme de la otra cabeza. ¿Que debería hacer? ¿Debo fusionarlos después de tantos conjuntos de cambios?Mercurial: Cómo lidiar con una rama que tiene dos cabezas
Respuesta
Así que tienes esto:
o--o--o--A--B <- older unnecessary head
\
1--2--3--4--5--6 <- newer ‘good’ head
... y que no es necesario A
y B
, absolutamente, 100% seguro. Si no está seguro de, y hay cosas posiblemente rescatables en A
y B
, combine mejor los cabezales para combinar los cambios. Como dijo Aaron, Mercurial es bueno en eso.
Ahora usted tiene dos opciones:
- deshacerse de la vieja cabeza, o
- hacer una fusión de relleno de dos cabezas que ignora la cabeza
B
.
Si conjuntos de cambios A
y B
están presentes en otros repositorios que no controlas, por ejemplo, si otras personas extrajeron A
y B
en sus repositorios, o presionó A
y B
en un repositorio público (digamos, Bitbucket), entonces ha liberado A
y B
en la naturaleza, y no puede deshacerse de ellos. Usted debe hacer un dummy merge:
$ hg up 6
$ hg --config ui.merge=internal:local merge
Esto hará caso omiso de cualquier cambio de A
y B
cuando la fusión.
Si, por el contrario, A
y B
son privadas, puede strip ellos:
$ hg strip A
(Rev. A
y descendientes despojados; habilitar la extensión MQ para hacer strip
disponible)
O, haga una nueva copia de su repositorio sin conjuntos de cambios A
y B
:
$ hg clone myrepo myrepo2-clone -r 6
(Sólo rev 6
y antepasados añaden al clon.)
Fusión simulada resolvió mi problema, ¡gracias! – nrodic
Si necesita conservar los cambios en la rama anterior, debe fusionarlos, y no debería ser un problema.
¿Qué pasa si no necesito esos cambios? – thoslin
Se crea un encabezado si realiza algunos cambios (agregue un conjunto de cambios a un conjunto de cambios existente). Si eso ocurre varias veces para el mismo conjunto de cambios, se crean varias cabezas. Esto no es nada inusual o malo.
La solución habitual es unirlos. Mercurial es muy bueno para fusionarse. Lo más probable es que el resultado se compile y ejecute sin ningún trabajo manual.
Simplemente ejecute hg merge
y luego hg status
y hg diff
para ver qué cambió entre los dos. Si te gusta el resultado, confírmalo. Si no te gusta, llama al update
para limpiar tu espacio de trabajo.
Para deshacerse de una cabeza, el docs explain how to do that.
Usando MQ, también puede convertir la segunda cabeza en una rama independiente (para que pueda mantenerla pero no le molestará). Ver esta respuesta: How can I create a branch for a non-tip revision in Mercurial?
- 1. ¿Mostrar cabezas de una rama?
- 2. Empujar múltiples cabezas con Mercurial
- 3. ramificación y remotas cabezas en Mercurial
- 4. Mercurial: ¿Cómo cambiar a una rama con nombre si una etiqueta tiene el mismo nombre?
- 5. ¿Cómo eliminar una rama en bitbucket con mercurial hg?
- 6. Mercurial: fusiona dos ramas en una tercera rama nueva
- 7. Mercurial: ¿cómo presionar a la rama predeterminada?
- 8. mercurial: conflictos de rama con la etiqueta
- 9. mercurial estableció una rama como la nueva rama predeterminada
- 10. mercurial: prueba si una rama contiene un conjunto de cambios
- 11. Renombrar una rama comprometida en Mercurial
- 12. ¿Cómo cerrar correctamente una rama de función en Mercurial?
- 13. Cómo fusionar automáticamente 2 cabezales con mercurial
- 14. ¿Puede Mercurial fusionar una rama con nombre que no es una cabeza?
- 15. ¿Cómo presionar solo una rama en Hg?
- 16. Atascado con dos ramas predeterminadas en Mercurial después de confirmaciones de rama quebradas
- 17. Empuje la rama fusionada mercurial sin historial
- 18. fusionando revisiones seleccionadas de una rama en otra en Mercurial
- 19. ¿Cómo puedo retroceder una fusión en Mercurial y luego volver a fusionarme con esa rama?
- 20. Mercurial: mantener la rama predeterminada "activa"
- 21. ¿Cómo lidiar con bloqueos (JPA)?
- 22. Rama pequeña y temporal en Mercurial
- 23. ¿Cómo lidiar con esas personas que rompen con TDD?
- 24. ¿Cómo puedo "cambiar" con Mercurial
- 25. Mercurial - hg actualización a una fecha específica en una rama con nombre
- 26. ¿Cómo cambiar la rama predeterminada para insertar mercurial?
- 27. ¿Cómo combinar dos proyectos en Mercurial?
- 28. Usando Mercurial, ¿cómo obtengo los cambios de la configuración predeterminada en una rama con nombre?
- 29. Mercurial, "ramificación con marcadores"
- 30. Cómo eliminar la rama Mercurial después de fusionar
posible duplicado de [¿Hay otra manera de eliminar múltiples cabezas?] (Http://stackoverflow.com/questions/6867054/is-there -otro-modo-de-eliminar-múltiples-cabezas) –