Guardar el cambio parcialmente completado para trabajar en otro cambio

Estoy en medio de un gran cambio (digamos ProjectA ), y tengo que cambiar de marcha a un proyecto diferente en los mismos files ( ProjectB ). No quiero que mi trabajo entre en el trunk todavía, y pueden pasar algunos días antes de que regrese a ProjectA .

¿Cuál es la forma correcta de configurar esto? ¿Debo crear una twig ProjectA y verificar el trabajo parcialmente completado en ella, entonces cambiar mi copy de trabajo a la línea trunk y trabajar en ProjectB allí?

Cuando termine, ¿qué debo hacer para fusionar ProjectA nuevamente en el trunk ?

Me siento cómodo con la resolved de conflictos, solo necesito saber los commands para bifurcar, cambiar y fusionar … Si estoy en el path correcto.

Actualmente solo hacemos todo nuestro trabajo en el trunk . Si eso es parte del problema, házmelo saber.

Lo siento si esto es una tontería, pero he estado tratando de resolver esto por un time.

Suponiendo que hacer todo tu trabajo en el trunk es una buena idea, y suponiendo que no necesitas cambiar de un lado a otro (es decir, completas el trabajo en ProjectB antes de regresar a ProjectA ), yo haría lo siguiente:

  • Grabar mi trabajo en ProjectA con

     svn diff > ProjectA-WIP.diff 
  • Trabajar en ProjectB y luego comprometer

  • Aplique los cambios en progreso de ProjectA con

     patch -Np0 -i ProjectA-WIP.diff 
  • Asegúrate de que todo esté bien

  • Continuar trabajando en ProjectA

A menudo sigo este mismo procedimiento. Digamos que el Project A es una característica nueva, y el Project B es una corrección de errores; claramente no puedo mezclarlos en el mismo compromiso, y debo arreglar el error antes de reanudar el trabajo en la nueva function.

Cómo resolver conflictos

Cuando los conflictos no son triviales, y el patch no te ayuda en absoluto, puedes hacer que svn resuelva tus conflictos con un poco de engaño.

Después de haber comprometido su trabajo en ProjectB :

  • En su copy de trabajo, regrese a la revisión en la que produjo el diff ; está registrado en ProjectA-WIP.diff :

     Index: some/src/file.c =================================================================== --- some/src/file.c (revision NNNN) +++ some/src/file.c (working copy) 
    • Si su revisión anterior era NNNN , solo use

       svn up -r NNNN 
  • Aplique el parche; no habrá conflictos esta vez

  • Actualizar

     svn up 
  • Resuelva cualquier conflicto con la ayuda de las herramientas habituales de event handling conflictos de Subversion