Recientemente comencé a trabajar con MQ ya que me gusta la idea de trabajar en parches aislados y comprometer sin afectar el repositorio hasta que el conjunto de cambios sea lo suficientemente refinado. Antes de eso, solía trabajar con la extensión de estantes de Mercurial, pero me pareció un poco inestable. Lo que aún estoy tratando de entender en MQ es cómo mantener los parches separados entre sí y aplicarlos sin un orden particular, y en diferentes ramas. Aquí está mi flujo normal -Mercurial: ¿funciona con colas similares a estantes?
1. empezar a trabajar en un nuevo parche:
hg qnew fix-bug-1234 -m "fix bug 1234"
# do some work
hg qrefresh
2. Obtener una nueva característica/fallo para trabajar en:
hg qpop fix-bug-1234
hg qnew some-feature -m "implement feature X"
# some work on feature X (perhaps in a different branch)
hg qrefresh
En este punto, me gustaría volver a trabajar en corrección de errores y dejar de lado el trabajo de características. Pensé que es tan simple como:
hg qpop some-feature
hg qpush fix-bug-1234
# wrap up bug fix
hg qfinish fix-bug-1234
# get back to work on feature
Sin embargo, MQ parece utilizar siempre el último parche creado en la serie, y aplicarlo independientemente del comando qpop/qpush que estoy usando. Debo señalar que los archivos en los que trabajo también están completamente separados (aunque a veces pueden ser los mismos).
¿Falta algo aquí? ¿Debo usar hg qqueue
para esto? Gracias.