2009-11-18 11 views
31

En subversión hice una rama ahora quiero fusionarla de nuevo en el tronco. ¿Qué opción debería usar?Reintegrar una rama vs fusión un rango de revisión

reintegrar a una rama

o

combinar un intervalo de revisión

que estaba usando Fusionar un rango de revisiones, pero que estaba recibiendo todo tipo de errores de conflicto de árbol. ¿Alguna idea de cuál es la diferencia entre estos dos?

+0

posible duplicado de [SVN Fusiona un rango de revisiones frente a la reintegración] (http://stackoverflow.com/questions/6575325/svn-merge-a-range-of-revisions-vs-reintegrate) – parvus

Respuesta

35

Cuando se trabaja con una rama, se debe fusionar periódicamente los rangos de revisiones desde el tronco en la rama de keep the branch in sync. si no pasa ningún número de versión a svn merge y su versión del servidor svn es 1.5 o posterior, rastreará las fusiones que ha realizado anteriormente y fusionará automáticamente solo las revisiones más recientes.

Cuando la bifurcación está terminada, debe fusionar los cambios en ella una última vez, luego reintegrate de nuevo en la cajuela.

4

Tortoise SVN Combinar vs Reintegración explicación:

TortoiseSVN Documentation

+1

zachary nunca mencionado usando Tortoise, así que no necesariamente consideraría esto "directamente de la fuente". – Powerlord

+0

Editaré mi publicación; pero estás siendo un poco pedante, ¿verdad? Tortoise es un cliente SVN. ¿En qué se diferenciarían Merge vs. Reintegrate si utilizara la línea de comandos SVN, Tortoise, SVNCOM o WebSVN? –

+2

Seré brutalmente honesto: la opción Combinar una gama de revisiones de Tortoise es mucho más estúpida que la fusión del cliente de línea de comandos svn, debido al comportamiento que ocurre cuando se deja en blanco la lista de revisiones. – Powerlord

6

Estos son los pasos que generalmente sigo para las fusiones.

1.

svn log -v --stop-on-copy http://mysvnrepo/mybranch

Esto le dará la revisión de recompra cuando creó la rama. Diga que es AAAA.

2.

svn log -v -rAAAA: CABEZA http://myrepo/trunk

Esto le dará los cambios realizados en el maletero después de que sacó la rama. Esto no es esencial, pero lo uso para tener una idea de lo que debería esperar fusionar en el presente.

3.

En caso de paso2. los cambios del tronco reportados, van al espacio de trabajo de la rama y se ejecutan

svn merge---dry ejecutar -rAAAA: CABEZA http://myrepo/trunk.

Esto reportará todos los cambios realizados en el tronco desde que se ramificó en MyBranch - mirar a través y volver a ejecutar el comando sin la opción---dry ejecutar para realizar la combinación real.

4.

cometer el espacio de trabajo de la rama posterior a fusionarse con un comentario relevante. (por ejemplo, "Cambios combinados desde la versión troncal AAAA hasta XXXX" - donde XXXX es la versión HEAD actual) Esto hace que aparezca HEAD para decir la versión YYYY.

5.

A continuación en el espacio de trabajo del tronco, el tipo

svn merge---dry ejecutar -rAAAA: CABEZA http://myrepo/branch.

Esto debe informar sobre los cambios realizados en la rama después de que se creó hasta ahora. Mire a través del informe para verificar qué se está fusionando/entrando en conflicto, etc., y luego ejecute el comando sin la opción --dry-run, para realmente realizar la combinación.

6.

Resolver los conflictos en su caso con la mano, SVN ejecutar resuelto decir la cesión temporal que sus conflictos se resuelven todos ahora, y luego realizar el commit con un mensaje relevante, por ejemplo "La fusión de MyBranch al tronco - cambios incluidos desde la revisión AAAA hasta YYYY ". Esto ayuda la próxima vez que ejecuta un registro y luego simplemente puede hacer la siguiente fusión de YYYY a HEAD en ese punto.

Cuestiones relacionadas