precio - mercurial svn
Mercurial: ¿cómo puedo volver a una revisión en particular? (3)
Estoy trabajando en un servidor en vivo. He actualizado para dar propina y ha causado problemas: debo volver a un conjunto de cambios particular (388) donde las cosas estaban bien
No tengo cambios de ningún valor en el servidor, el conjunto de cambios local no importa en absoluto. De hecho, en realidad quiero eliminar cualquier cambio o fusión local accidental para no confundir las cosas.
¿Cómo vuelvo a un conjunto de cambios particular y mato cualquier cambio local? ¿Es algo que ver con:
hg revert
---- ACTUALIZACIÓN ---
Para aclarar, lo que me gustaría hacer es revertir todo localmente al conjunto de cambios 388, y luego asegurarme de que mi repositorio local esté en un estado tal que cuando lo haga
hg status
No tengo salida. De lo contrario, tengo la desagradable sensación de que la próxima vez que tire de la punta, habrá conflictos con los que lidiar, algo que quiero evitar, porque los cambios locales no tienen ningún valor.
---- ACTUALIZACIÓN ---
Para alguien más en esta situación, lo que finalmente me lo arregló fue:
rm -rf <repo_dir>
hg clone http://repository
hg update -r 388
Eso matará todos los cambios locales, así que proceda con precaución (pero eso es lo que quería en este caso).
No creo que esté realmente claro lo que quiere, pero mi interpretación sería hg update -C -rev 388
pero igualmente podría estar después de revertir, o posiblemente (improbable) incluso revertir. Mi respuesta a esta pregunta da una buena diferencia entre actualizar y revertir
realmente necesita averiguar lo que quiere ver en la copia de trabajo Y lo que quiere que sea el estado de la historia para elegir entre ellos
Simplemente use el comando a continuación, para llegar a una revisión.
hg revert -r REV
Está en conflicto con --todos.
Para matar todos los cambios locales, --todo debería funcionar.
hg revert --all
No utilice la rollback
. Es un procedimiento irreversible, por lo que debe utilizarse con cuidado.
EDITAR
Puedes actualizar con la opción --clean. Eso descartará cualquier cambio no comprometido. Y luego actualizar a algún conjunto de cambios.
server:
- ..
- rev 386
- rev 387
- rev 388
- rev 389
clone to production
-- testing stuff, it doesn''t work!
-- panic!
-- rev 390 (in panic)
-- rev 391 (in panic)
-- cool down, thinking, need to go back to 388
-- one way: hg update -C -rev 388 (to keep 390, 391)
-- other way: rm -rf dir (to discard 390, 391)
-- hg clone http://server/hg
-- cd dir
-- hg update 388
-- testing, now works
También hay una maravillosa extensión de purga . Muy sólido, elimina todos los archivos sin seguimiento del directorio de trabajo.