skipped - SVN: no se puede fusionar la rama de nuevo en el tronco: numerosos conflictos de árbol
svn tortoise tree conflict (6)
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 rama o etiqueta:
- Salida del maletero
- Utilizando la copia de trabajo del enlace troncal, combínelo de enlace a sucursal / etiqueta.
- Cometer.
Ejemplo de comandos de línea de comando ''svn'':
svn checkout <trunk url>
cd trunk
svn merge <trunk url> <branch/tag url>
svn commit -m "<message>"
Tengo lo que pensé que era un escenario simple: usar TortoiseSVN:
1) Hice una rama (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 rama 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, intento 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 rama; 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?
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 "rama", rango específico "revisión fusionada recientemente" y Siguiente 5. Siguiente 6. Comité SVN
Después de eso, puedo fusionarme de rama en tronco.
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 ramas de características.
- Alexey Korsun
Parece que estás usando el estilo de fusión anterior a la 1.5 e intentando reinsertar la rama 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 rama".
Esto funciona si ya ha fusionado todos los cambios del tronco en la rama, porque entonces la única diferencia entre el tronco y la rama son los cambios realizados en la rama.
¿Tener sentido? :)
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 rama contuviera todos los cambios del tronco.
1) Recibí una copia nueva del maletero. 2) Exporté la rama a una ubicación temporal usando la tortuga svn exportación. 3) Utilicé el explorador de Windows para copiar todo el árbol de la rama 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.