tortoise tag subversion new entre diferencia create crear branches svn tortoisesvn merge branch

tag - new branch tortoisesvn



Usando TortoiseSVN ¿cómo combino los cambios del tronco a una rama y viceversa? (5)

Deberías usar "fusionar un rango de revisión".

Para fusionar los cambios del tronco a una rama, dentro de la copia de trabajo de la rama, seleccione "rango de fusiones de revisiones" e ingrese la URL troncal y las revisiones de inicio y fin para fusionar.

Lo mismo en la forma opuesta para fusionar una rama en el tronco.

Acerca del indicador --reintegrate, consulte el manual aquí: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html#tsvn-dug-merge-reintegrate

He estado leyendo sobre la ramificación / fusión con Subversion 1.5 usando el excelente y libre Control de versiones con el libro de Subversion . Creo que entiendo cómo usar el cliente de línea de comandos de Subversion para realizar las acciones que más a menudo necesito, que son:

Actualizar la sucursal con cambios desde el tronco

Desde el directorio de trabajo de la sucursal, ejecute:

svn merge http://svn.myurl.com/proj/trunk

Merge Branch en Trunk

Desde el directorio de trabajo del trunk run:

svn merge --reintegrate http://svn.myurl.com/proj/branches/mybranch

Sin embargo, estamos utilizando TortoiseSVN 1.5 como nuestra interfaz para Subversion. Me gustaría saber la mejor manera de realizar estas operaciones con TortoiseSVN. El nuevo diálogo proporciona tres opciones diferentes en el menú principal.

  1. Fusionar una variedad de revisiones
  2. Reintegrar una sucursal
  3. Fusionar dos árboles diferentes

Por lo que puedo deducir, TortoiseSVN siempre ejecuta svn con la siguiente sintaxis.

svn merge [--dry-run] --force From_URL @ revN To_URL @ revM PATH

Además, reintegrar una rama a menudo falla con un mensaje que indica que algunos objetivos no se han fusionado y por lo tanto no puede continuar, por lo que tuve que usar la opción n. ° 3.

Mis preguntas son:

  1. ¿Cómo utilizo TortoiseSVN 1.5 para fusionar los cambios del tronco a una rama?
  2. ¿Cómo utilizo TortoiseSVN 1.5 para unir la rama al tronco, con y sin el método de reintegración?
  3. ¿Cuál de las opciones anteriores debo usar para cada una y por qué?

EDITAR

A través de la prueba de "ejecución en seco", he encontrado que la operación de línea de comando de Subversion

svn merge http://svn.myurl.com/proj/trunk

es análogo a la opción n. ° 1 (Fusionar un rango de revisiones) en TortoiseSVN, siempre que deje en blanco el rango de revisión.


Eche un vistazo a svnmerge.py . Es línea de comandos, no puede ser invocado por TortoiseSVN, pero es más poderoso. De las FAQ :

La subversión tradicional le permitirá combinar cambios, pero no "recuerda" lo que ya se ha fusionado. Tampoco proporciona una forma conveniente de excluir un conjunto de cambios de la fusión. svnmerge.py automatiza parte del trabajo y lo simplifica. Svnmerge también crea un mensaje de confirmación con los mensajes de registro de todas las cosas que se fusionaron.


El comportamiento depende de la versión que tenga su repositorio. Subversion 1.5 permite 4 tipos de fusión:

  1. fusionar sourceURL1 [@N] sourceURL2 [@M] [WCPATH]
  2. fusionar sourceWCPATH1 @ N sourceWCPATH2 @ M [WCPATH]
  3. fusionar [-c M [, N ...] | -r N: M ...] FUENTE [@REV] [WCPATH]
  4. fusionar --integrar SOURCE [@REV] [WCPATH]

Subversión anterior a 1.5 solo permitió los primeros 2 formatos.

Técnicamente, puede realizar todas las fusiones con los dos primeros métodos, pero las últimas dos habilitan el seguimiento de fusión de Subversión 1.5.

Las opciones de TortoiseSVN combinan un rango o revisan los mapas con el método 3 cuando su repositorio es 1.5+ o con el método uno cuando su repositorio es más antiguo.

Al fusionar funciones en una rama de liberación / mantenimiento, debe usar el comando "Fusionar un rango de revisiones".

Solo cuando desee fusionar todas las características de una bifurcación con una bifurcación principal (comúnmente la troncal), debe buscar utilizando ''Reintegrar una bifurcación''.

Y el último comando -Merge dos árboles diferentes- solo es útil cuando quieres salir del comportamiento de ramificación normal. (Por ejemplo, comparando diferentes lanzamientos y luego fusionando el differenct a otra rama)


No pude seguir correctamente las otras respuestas, aquí hay más de una guía de tontos ...

Puede hacerlo en cualquier sentido para ir a trunk -> branch o branch -> trunk . Siempre hago primero trunk -> branch arregla cualquier conflicto allí y luego fusiono branch -> trunk .

Fusionar el tronco en una rama / etiqueta

  1. Pagar la rama / etiqueta
  2. Haga clic derecho en la raíz de la rama | Tortuga SVN | Fusionar ...
  3. Tipo de fusión: combine un rango de revisiones | Haga clic en Siguiente''
  4. Rango de revisiones combinadas: seleccione la URL del directorio troncal que copió en la rama / etiqueta. Ingrese las revisiones para fusionar o deje el campo vacío para fusionar todas las revisiones | haga clic en Siguiente''
  5. Opciones de combinación: Acabo de dejar esto como predeterminado | haga clic en ''Combinar''
  6. Esto fusionará las revisiones en la rama / etiqueta desprotegida
  7. A continuación, confirme los cambios fusionados en la rama / etiqueta

Shift-Right Haga clic en la carpeta y seleccione TortoiseSVN -> Merge All