SVN: no se puede fusionar la twig de nuevo en el tronco: numerosos conflictos de árbol

Tengo lo que pensé que era un escenario simple: usar TortoiseSVN:

1) Hice una twig (B2) de una aplicación (para trabajar en la implementación de sprites de imagen y JAWR).

2) Las pruebas y el desarrollo continuaron normalmente en el maletero.

3) He vuelto a basar la sucursal un par de veces en los últimos días:

3.1) Tronco fusionado (por rango de revisiones) a mi copia de trabajo branch-b2, resolviendo conflictos durante la fusión.

3.2) (después de probar la bifurcación-b2), confirmo la bifurcación basada en la re-b2.

Todo esto funcionó como esperaba. Pero fusionar la twig de nuevo en el tronco está teniendo su camino conmigo:

4) Después de todas las actualizaciones confirmadas en branch-b2; Me aseguro de hacer una actualización de SVN en trunk y branch-b2.

5) Luego, bash fusionar (rango de revisiones) de branch-b2 en el tronco. Sin embargo, para cualquier archivo nuevo que se haya agregado al tronco, y luego se haya agregado a branch-b2 cuando lo volví a configurar, recibo un conflicto de árbol. No estoy seguro de cuál es la forma correcta de resolver estos conflictos.

El consejo más típico que he visto es eliminar los archivos de conflicto de árbol del tronco, luego fusionar la twig; o elimine todo el enlace troncal, copie los archivos de bifurcación y luego confírmelos como una nueva versión en el enlace troncal. Ninguna de esas opciones parece una buena idea: la primera es un problema, y ​​parece que ambas perderían el historial de revisión de archivos.

¿Qué hice mal y cómo lo soluciono?

Parece que estás usando el estilo de fusión anterior a la 1.5 e intentando reinsertar la twig en el tronco. En ese caso, lo que desea hacer es primero asegurarse de que todos los cambios de troncales se hayan fusionado en la bifurcación y, en lugar de fusionar en rangos de la bifurcación a una copia de trabajo que apunta al troncal, desea fusionar “FROM trunk” @ HEAD TO branch @ HEAD “con la copia de trabajo apuntando al tronco. En esencia:

“Dame todos los cambios que necesitaría para hacer que el tronco sea idéntico a la twig”.

Esto funciona si ya ha fusionado todos los cambios del tronco en la twig, porque entonces la única diferencia entre el tronco y la twig son los cambios realizados en la twig.

¿Tener sentido? 🙂

Investigué el mismo problema. Es “característica” en Tortoise SVN 1.6.5. TortoiseSVN 1.5 funciona bien con nuestro repositoty (SVN 1.5). TortoiseSVN 1.6.5 cuando la rebase agrega archivos de la línea principal como NUEVO (sin guardar el historial de fusión).
Y la sucursal de reintegración resuelve tratar esos archivos como conflictivos con la línea principal.

Resolví el problema usando la función de TortoiseSVN 1.6 “reintegrate branch”. Está específicamente diseñado para twigs de características.

– Alexey Korsun

Realmente no pude entender cómo iba a funcionar la solución anterior, así que mi trabajo es diferente. Primero me aseguré de que la twig contuviera todos los cambios del tronco.

1) Recibí una copia nueva del maletero. 2) Exporté la twig a una ubicación temporal usando la tortuga svn exportación. 3) Utilicé el explorador de Windows para copiar todo el árbol de la twig al tronco y sobrescribí todos los archivos 4) Utilicé el comando de verificación de cambios en tortuga e incluí todos los archivos no revisados. 5) Seleccioné todos los archivos y hice clic en Agregar.

Debe usar soluciones que no se hayan creado para que los archivos no revisados ​​no incluyan la salida.

No puedo esperar hasta actualizar a 1.5+

Seleccione las revisiones para combinar al seleccionar la opción “Fusionar un rango de rivisiones” usando TortoiseSVN. Esto evitará que los conflictos de árbol para los mismos archivos vuelvan a aparecer para cada operación de fusión.

Aquí hay un poco más de información para contribuir a la respuesta @Rytmis que me ayuda a mantener esto en línea.

Pasos de alto nivel para hacer que el tronco sea exactamente como una twig o etiqueta:

  1. Salida del maletero
  2. Utilizando la copia de trabajo del enlace troncal, combínelo de enlace a sucursal / etiqueta.
  3. Cometer.

Ejemplo de comandos de línea de comando ‘svn’:

svn checkout  cd trunk svn merge   svn commit -m "" 

Creo que resolví ese problema. 1. Haga clic con el botón derecho en “branch” que se fusionó. 2. Haga clic en Tortoise SVN >> Fusionar 3. “Fusionar un rango de revisiones” y Siguiente 4. ¡¡¡CHECK “Reverse Merge” !!! , URL para fusionar desde “twig”, rango específico “revisión fusionada recientemente” y Siguiente 5. Siguiente 6. Comité SVN

Después de eso, puedo fusionarme de twig en tronco.

    Intereting Posts