He estado haciendo algunos cambios en mi directorio de trabajo, y he notado que accidentalmente he estado trabajando en la sucursal incorrecta. Aún no he comprometido nada, y me gustaría que mi próximo compromiso vaya en contra de otra rama. ¿Cuál es la mejor manera de hacer esto?Accidentalmente trabajando en la sucursal con nombre incorrecto en Mercurial
Respuesta
La extensión Shelve puede causarle dolor, y esto se puede hacer completamente con comandos de Mercurial. Krtek casi lo tenía pero usó export
en lugar de diff
. Pruebe esto:
hg diff --git > ~/saved-work.patch
hg update --clean desiredbranch
hg import --no-commit ~/saved-work.patch
No sé si es la mejor solución, pero puede seguir estos pasos:
1 ° hg diff --git > modifications.patch
2 ° hg update -C the_right_branch
3 ° hg patch modifications.patch
tal vez es mejor copiar las modificaciones. enviar un parche a un lugar seguro, por si acaso.
editar: actualizar con diff en lugar de exportar. Gracias a los comentaristas.
¿este parche solo incluirá los cambios no confirmados? La sucursal en la que estoy trabajando tiene muchas diferencias que ya se han cometido en el pasado de la sucursal en la que quería estar. –
Eso no debería exportarse, debería ser diff. –
Sí, la exportación es para una revisión determinada, no una modificación actual del directorio de trabajo, actualizaré mi publicación. – krtek
Debería poder solo hg up otherbranch
. Es importante que no use la opción --clean a hg up
, ya sea directamente o mediante un alias, ya que eso descartará los cambios no confirmados.
Otra opción es usar una de las extensiones que proporciona hg shelve
. El proceso sería entonces:
$ hg shelve --all
$ hg up otherbranch
$ hg unshelve
que va a crear un parche de los cambios en el directorio .hg, volviendo su directorio de trabajo a un estado limpio, cambiar a la 'otherbranch', y luego aplicar el parche salvado.
No conocía esta extensión, gracias, es más fácil que mi propia respuesta :) – krtek
Krtek, su respuesta fue mejor. Shelve no se envía con Mercurial por una razón. Tiene dificultades con los archivos agregados, no es compatible con las funciones más nuevas y tiene un flujo de trabajo horrible si el estante no se aplica limpiamente a la nueva ubicación. –
@ Ry4an Gracias por la información. He experimentado el horrible flujo de trabajo de shelve cuando tampoco se puede aplicar limpiamente. Parece que debería haber una extensión que ofrezca un comportamiento similar a un archivador, pero que simplemente haga tus comandos de diferencia/importación detrás de escena, incluso podría ser posible con solo alias. –
- 1. Mercurial: ¿Puedo cambiar el nombre de una sucursal?
- 2. Movimiento mercurial cambia a una nueva sucursal
- 3. Bifurcación con nombre retroactivo en Mercurial
- 4. ¿Es posible reabrir una sucursal cerrada en Mercurial?
- 5. rama accidentalmente creado con el nombre origin/master
- 6. error Mercurial "El nombre de archivo, nombre de directorio o etiqueta del volumen es incorrecto"
- 7. puso accidentalmente en git
- 8. Trabajando con dropdownlistbox en html
- 9. Mostrar el nombre de la sucursal actual en Eclipse/Subclipse
- 10. Perdí mi compromiso en GIT. ¿Puedes eliminar accidentalmente commits?
- 11. NoClassDefFoundError: nombre incorrecto
- 12. nombre de archivo incorrecto en la WWW :: Mecanizar presentación
- 13. Trabajando con la clase EnumSet en GWT
- 14. Trabajando con chartSeries en quantmod
- 15. Cambiar autor en mercurial
- 16. Deshacer una acción de mover/cambiar el nombre en mercurial?
- 17. Trabajando con cadenas en C++
- 18. Trabajando con README.md en github.com
- 19. Trabajando con SQLite en codeigniter
- 20. Nombre de sucursal de IntelliJ y Git
- 21. Trabajando con parámetros "Out" en JavaScript
- 22. git fusionando cambios en la sucursal local
- 23. Viendo git nombre de la sucursal en el símbolo no funciona en la pantalla
- 24. Renombrar una rama comprometida en Mercurial
- 25. SVN: ¿sincronizar la sucursal con el tronco en Eclipse?
- 26. Cómo evitar accidentalmente 'hg push' en lugar de 'hg qpush'?
- 27. Subversion - Sucursal de una sucursal
- 28. Sobrescritura de mi sucursal local con una sucursal remota
- 29. Accidentalmente cometido el directorio .svn
- 30. Trabajando con zonas horarias en SSRS
Sí, 'hg selve', patch-queues et al. no están funcionando y te dan dolor!Esta solución anterior es de hecho una buena práctica. – math