two tortoise tag subversion entre diferencia create crear branches svn merge merge-tracking

svn - tag - tortoise merge



¿Cómo uso el nuevo SVN Merge-Tracking? (3)

Creo que la reintegración en realidad no hace las dos operaciones, sino que se utiliza para fusionar de nuevo en el tronco desde una rama actualizada. Aún necesitará hacer el primer conjunto de operaciones de fusión / confirmación para actualizar primero la rama.

Aquí hay un enlace al libro de Subversion . Es posible obtener este libro en formato de árbol muerto.

Desde el enlace, suena como usar --reintegrate maneja algunos casos extraños, probablemente como fusiona generalmente lo hace en comparación con el solo uso de parches rectos (lea la sección "¿Por qué no utilizar parches en su lugar?").

En mi estrategia de fusión existente (anterior al SVN 1.5), creamos una copia del Troncal (llamada BasePoint) en el momento de la creación de la rama para hacer referencia más tarde durante la fusión.

Cuando necesitamos fusionar una rama nuevamente en el tronco, realizamos 2 operaciones.

  1. Combina desde BasePoint hasta LatestTrunk (Trunk probablemente se haya movido desde la rama original) en Copia de trabajo de Branch y luego commit.

    En este punto, normalmente verificamos que la fusión en la rama no haya dañado nada

  2. Combina de LatestTrunk a LatestBranch de nuevo en Copia de trabajo de trunk y luego commit.

La documentación sugiere que utilizo la nueva fusión de reintegración en el tronco y la fusión de la sucursal.

¿Debo fusionarme primero desde el tronco a la rama de desarrollo o esto está incluido en la nueva opción de reintegración?

Para decirlo de otra manera, ¿la nueva merge --reintegrate funcionalidad de merge --reintegrate representa ''cada una de mis fusiones anteriores'' o ''la operación completa''?

(FWIW estoy usando TortoiseSVN 1.5.1)


La respuesta corta es : todavía tienes que hacer ambos pasos.

El libro de SVN explica el proceso de fusión como:

  1. svn fusionar http: // trunk / path mientras está en una copia de trabajo de rama
  2. svn merge --reintegrar http: // branch / path mientras está en una copia de trabajo de tronco

Observe la falta de números de revisión. Esto probablemente no se siente como una gran victoria. La nueva frescura es la capacidad de volver a ejecutar la fusión mientras codifica en su sucursal, lo que le permite mantener la sucursal actualizada con los cambios en el enlace troncal (¡sin registrar números de revisión a mano!). SVN realiza un seguimiento de lo que debe combinarse desde el tronco y qué cambios son exclusivos de la rama. Cuando haya terminado con la bifurcación, --reintegrate utiliza esa información para fusionar automáticamente solo los cambios de bifurcación en el enlace troncal.


Una buena publicación en el blog sobre la fusión de problemas en svn (y lo que hace la reintegración) está aquí .