¿Hay alguna manera de asociar un grupo de conjuntos de cambios de Mercurial con una rama con nombre después de que se hayan comprometido, es decir, retroactivamente?Bifurcación con nombre retroactivo en Mercurial
Respuesta
No, los nombres de las sucursales son parte del conjunto de cambios (es realmente como una etiqueta que agrega a la confirmación), significa que el hash del conjunto de cambios se deja en el nombre de la rama.
De modo que la única forma de cambiarlo retroactivamente es reescribiendo el historial (lo que no funciona bien si realiza los cambios en otro lugar, ya que tendrá que volver a escribir cada repositorio que tenga los cambios).
Para reescribir el historial, puede usar, por ejemplo, mq.
No es una solución completa pero, sin volver a escribir el historial; podría etiquetar el último conjunto de cambios en la rama sin nombre. Si nunca vuelve a cambiar de esta, la etiqueta debería navegar. Si necesita volver a cambiar de dirección, puede pasar a una rama con nombre después del conjunto de cambios etiquetados.
Solo quería hacer esto, y aquí está la solución que encontré. Ha pasado un año desde que se formuló originalmente la pregunta, esto podría explicar por qué ahora puedo encontrar una solución. Tiene la desventaja de que crea una revisión adicional en el proceso, pero esto no fue tan malo para mí.
Primero, vuelve al lugar donde desea crear la rama. En mi caso, en realidad quería comenzar una nueva raíz (porque no era muy sensato cuando comencé el repositorio, pero de todos modos), así que estoy actualizando a nulo. Es probable que desee comenzar en otro lugar, depende de su situación.
$ hg update null
A continuación, cree la rama.
$ hg branch blah
$ hg commit -m "Created blah branch."
Entonces, nos rebase todas las confirmaciones que hemos hecho en nuestra nueva sucursal:
$ hg rebase -s SOURCE -d DEST
El FUENTE aquí debe ser el primer commit que ha hecho en las confirmaciones que desea crear la rama de, y el DEST debe ser el compromiso donde se creó la rama (la que cometimos anteriormente).
- 1. bifurcación SVN con modificaciones locales
- 2. Accidentalmente trabajando en la sucursal con nombre incorrecto en Mercurial
- 3. Bifurcación en PHP en Windows
- 4. Mercurial: Ramas con nombre frente a múltiples repositorios
- 5. Registro mercurial de fusiones entre sucursales con nombre
- 6. Cómo editar el mensaje de compromiso Mercurial después de la bifurcación?
- 7. Ramificación con Mercurial SCM
- 8. GLSL comportamiento de bifurcación
- 9. ¿Cómo puedo cambiar a una etiqueta/bifurcación en hg?
- 10. Mercurial: ¿Cómo cambiar a una rama con nombre si una etiqueta tiene el mismo nombre?
- 11. pila de integración continua en Windows con Mercurial + Mercurial Queues?
- 12. Proyecto de subversión de bifurcación
- 13. Fusionando marcadores en mercurial
- 14. Google Forms - Bifurcación condicional instantánea
- 15. Mysql Backup con Mercurial
- 16. Mercurial, "ramificación con marcadores"
- 17. Mercurial Branch Repositories con SUBREPOS
- 18. Deshacer una acción de mover/cambiar el nombre en mercurial?
- 19. ¿Cómo cambio el nombre de una especificación de bifurcación en forzosa?
- 20. Historial de funciones con Mercurial
- 21. Empujar múltiples cabezas con Mercurial
- 22. Cambiar autor en mercurial
- 23. ¿Un niño con bifurcación asesina mata al padre?
- 24. mercurial: conflictos de rama con la etiqueta
- 25. Mercurial Release Management
- 26. Almacenar ramas con nombre por separado en mercurial sin tener que fusionarlas
- 27. Mercurial - hg actualización a una fecha específica en una rama con nombre
- 28. Usando Mercurial, ¿cómo obtengo los cambios de la configuración predeterminada en una rama con nombre?
- 29. Cómo lidiar con el cambio de nombre de committer en Mercurial
- 30. registro mercurial de cambios en ramas con nombre fusionadas, pero no sin combinar
Gracias, funcionó a la perfección. Esta debería ser la respuesta aceptada. –
Esto funciona (creo), pero tiene el problema potencial de que no funciona bien si has compartido tu repositorio con alguien (como lo señala indirectamente @tonfa). Como señala [extensión de rebase] (http://mercurial.selenic.com/wiki/RebaseExtension), _No debe volver a establecer los conjuntos de cambios que ya se han compartido con otros. Hacerlo obligará a todos los demás a realizar el mismo rebase_ –
Para aquellos que trabajan en mercurial hg, debes habilitar la extensión de rebase en Configuración. – amaidment