¿Cuál es la diferencia entre rollback, backout y strip en el plugin de Mercurial Eclipse?
(1)
Todos estos comandos provienen de Mercurial, y hay muchos buenos puestos de comparación / contraste para ellos. Sin embargo, aquí están en breve:
-
rollback
:rollback
un nivel. Deshace la última extracción o compromiso ( puede ser peligroso ) -
backout
: crea un nuevo compromiso que es el inverso de un compromiso determinado. El efecto neto es deshacer, pero el cambio permanece en tu historial. -
strip
: elimina ( destruye ) los cambios del historial. La eliminación de un conjunto de cambios también elimina todos sus elementos secundarios, por lo que solo se puede utilizar para truncar el historial, no para eliminar un segmento.
Los tres están muy bien descritos aquí: http://www.selenic.com/mercurial/hg.1.html
A su pregunta 2, podría usar strip
para eliminar la confirmación más reciente y no lo alterará.
A su pregunta 3, puede hacer cambios fácilmente en otra parte de este proyecto:
hg commit -m ''commit your half done work''
hg update OLDERCHANGESET # your working directory now is without the half-done-work
.. do that quickfix ...
hg commit -m ''quickfix''
hg push tip # this pushes the tip revision (latest) and its ancestors, but the half-don''t work isn''t an ancestor so it doesn''t get pushed
hg update HALFDONEWORK # you can find the right revision number using "hg heads"
Eso se llama una "sucursal anónima" y es una forma muy común de trabajar. Terminas cometiendo la función a medio completar, pero puedes reanudarla más tarde y no tienes que presionarla.
Esto tiene una gran explicación de las sucursales anónimas: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/#branching-anonymously
¿Cuál es la diferencia entre la reversión, el retroceso y la tirada de elementos del menú en el complemento Mercurial Eclipse?
¿Puedo eliminar la confirmación en el repositorio local sin modificar los archivos en mi espacio de trabajo con uno de estos 3 comandos?
¿O hay otra solución sobre cómo puedo comprometer y aplicar una solución en otra parte del proyecto? Mi trabajo actual no está terminado y no puedo presionarlo. Pero debo registrar una solución rápida para otra parte del proyecto.
La única solución que veo es crear un segundo espacio de trabajo. Pero esto parece una exageración para mí.