2009-12-16 32 views
14

¿Es posible emular el comportamiento de 'git stash' cuando se usa fósil/bzr?¿Cómo emular 'git stash' en fósil, bzr?

Básicamente estoy interesado en el manejo del flujo de trabajo siguiente:

  • en algún momento el árbol de código fuente ha estado X, se obliga
  • procedo a escribir nuevo código, lo escribo para una tiempo y veo la oportunidad de un refactorización
  • no puedo comprometerme en este punto, porque el cambio que he empezado a hacer no es completado, no es sin embargo atómica
  • en este punto me gustaría hacer 'git stash', sería s ave del trabajo actual y se volver al estado X
  • que haría la refactorización y comprometerse, código fuente tiene ahora el Estado Y
  • Me gustaría combinar el código fuente en el Estado Y con el código en el escondite, completar el cambio a que sea atómica, a continuación, confirmar, una vez más, empujando el código fuente para el estado Z

Creo que por lo general es posible emular este escenario cuando se utiliza otra SMC ramificando el código en el estado X en lugar de hacer 'git stash ', haciendo la refactorización en esa rama, luego fusionando la rama nuevamente en el principal. Pero soy consciente de que la bifurcación no siempre es una operación barata. ¿Tan son hay mejores enfoques particulares que finalmente se basan en las características específicas de de fósil/bzr?

Respuesta

26

Utilice bzr shelve y bzr unshelve comandos.

11

Puede usar el comando patch de su sistema.

  • En primer lugar, hacer un "escondite" mediante el almacenamiento de un diff generado como .patch archivo:

    $scmtool diff > working.patch

  • luego restaura el directorio de trabajo.

  • después, aplicar el parche con:

    patch -p1 --dry-run < working.patch

  • y entonces funciona, retire la --dry-run aplicar el parche de verdad.

+0

La pregunta era sobre bzr, no git! –

+5

@Randal - Te estás perdiendo el punto. vdboor ha reducido los requisitos de necesitar una característica de ocultación/archivado para necesitar una característica de diferencia en el SCM. Esto funcionará con cualquier cosa, y ahora la parte 'fósil' del OP ha sido respondida. – teepark

+0

@teepark gracias por su apoyo, he actualizado la publicación para hacer esto más obvio – vdboor

8

El comando stash se implementó recientemente en fósiles. Debes revisar el último ejecutable fósil, verás stash en la lista de comandos disponible.

Aquí está el enlace al web help on its syntax.

+1

Utilizo 'fósil de alijo 'bastante extensamente. Sin quejas, ninguna en absoluto. –