tag - Tortoise SVN fusiona dos ramas
tortoise svn merge branch to trunk (2)
Estoy tratando de fusionar dos ramas con tortuga SVN. Ambas ramas han cambiado desde que se dividieron. Si los fusiono, solo se sobreescribirán los cambios de uno de ellos y los del otro. Pero quiero el último cambio de cada archivo (no hemos estado trabajando en los mismos archivos).
Intenté la opción "Fusionar dos árboles diferentes" e ingresé las dos ramas en "De:" y "A:". Tomé la revisión de la cabeza en ambos. Dejé todo lo demás al valor predeterminado (Combinar profundidad: Copia de trabajo, Comparar espacios en blanco, todo lo demás sin marcar)
La fusión en Subversion siempre se hace localmente . La rama a la que desea fusionarse debe ser desprotegida con un proceso de pago limpio. Es decir, debe estar actualizado sin cambios locales. Luego fusionas la otra rama en ella y comprometes tus cambios.
Una fusión no es un duplicado de una rama en particular. La fusión suele ser una operación de tres vías. Usted tiene la rama en la que se está fusionando (llamada suya ) la rama de la que se está fusionando (llamada suya ) y el último ancestro común (LCA). Ese último es importante.
Si se produjo un cambio en su sucursal, no se toca durante el proceso de fusión. El algoritmo de fusión lo sabe porque hay una diferencia entre el tuyo y el LCA. Si hay una diferencia entre el ACV y el de ellos , se considera un cambio.
Si entiendo que tienes:
-
branch1
fue tomado del tronco. -
branch2
fue tomado debranch1
.
¿Qué estás tratando de fusionar? ¿Desea fusionar tanto branch1
como branch2
en trunk? Esto debería ser posible si copió trunk
en branch1
través de Subversion y copió branch1
en branch2
través de Subversion. De esta manera, Subversion sabe que las dos ramas están relacionadas en su historia.
Si creó la rama, usó Windows para copiar los archivos y agregó los archivos, no tiene historial entre las dos ramas, y la fusión es más difícil.
¿Está bien fusionar los cambios de branch2
en branch1
? Si es así, haría algo como esto:
- Checkout
branch2
-
branch1
enbranch2
y confirma esos cambios.branch2
tendrá todos los cambios enbranch1
. -
trunk
caja - Fusionar
branch2
en eltrunk
. Trunk ahora tendrá todos los cambios tanto enbranch1
como enbranch2
.
En la opción From URL
, debe especificar la rama a la que desea fusionar.
Por ejemplo, supongamos que hay 2 ramas, rama A
y rama B
, y desea fusionar la rama B
con la rama A
En TortoiseSVN, haga clic en la opción Merge
y luego seleccione la opción Merge two different trees
. En la From URL
, mencione la URL de la rama A
y en la To URL
, mencione la URL de la rama B
Esto debería fusionar la rama B
con la rama A
sin perder ningún archivo.