¿Cuál es la diferencia entre rollback, backout y strip en el plugin Mercurial Eclipse?


¿Cuál es la diferencia entre los elementos de menú rollback, backout y strip 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 cómo puedo confirmar y enviar una corrección a otra parte del proyecto? Mi trabajo actual no está terminado y no puedo empujarlo. Pero debo revisar una solución rápida para otra parte del proyecto.

La única solución lo que veo es crear un segundo espacio de trabajo. Pero esto parece una exageración para mí.

Author: Horcrux7, 2011-03-20

1 answers

Todos estos comandos vienen de Mercurial mismo, y hay un montón de buenos puestos de comparación/contraste para ellos. Sin embargo, aquí están en breve:

  • rollback: deshacer de un nivel. Deshará la última pull o commit (puede ser peligroso)
  • backout: crea una nueva confirmación que sea la inversa de una confirmación dada. El efecto neto es un deshacer, pero el cambio permanece en su historia.
  • strip: eliminar (destruir) cambios de la historia. También se elimina un conjunto de cambios elimina todos sus hijos, por lo que solo se puede usar 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

Para tu pregunta 2, puedes usar strip para eliminar la confirmación más reciente y no alterará tu directorio de trabajo.

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 es llamar a una" rama anónima " y es un muy forma común de trabajar. Terminas confirmando 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 ramas anónimas: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/#branching-anonymously

 56
Author: Ry4an Brase,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-20 20:20:20