tortoise tag lock entre diferencia create crear svn merge tortoisesvn branch

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 de branch1 .

¿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 en branch2 y confirma esos cambios. branch2 tendrá todos los cambios en branch1 .
  • trunk caja
  • Fusionar branch2 en el trunk . Trunk ahora tendrá todos los cambios tanto en branch1 como en branch2 .

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.