2012-10-03 76 views
15

Tengo dos ramas (secundarios de tronco) que deben fusionarse en una rama para probarlas, pero no pueden entrar en el tronco. Ambas ramas están actualizadas con trunk @ HEAD. Así que quiero ir de esto:Combinación de SVN entre dos ramas: "ruta de acceso no encontrada"

__________________trunk 
    \___duck \ 
       \___beaver 

a esto:

__________________________trunk 
    \ 
    \______________platypus 

creé el ornitorrinco rama de la última versión del tronco, y estoy tratando de fusionar el pato y el castor en esta nueva copia de tronco:

svn copy ^/trunk ^/branches/platypus; 
svn switch ^/branches/platypus; 
svn merge --reintegrate ^/branches/duck; 
svn merge --reintegrate ^/branches/beaver; 

pero las operaciones de combinación fallan

svn: '/blah/!svn/bc/12047/repo/branches/duck' path not found 

Si intento --reintegrar pato (o castor) en el maletero, funciona bien. ¿Que me estoy perdiendo aqui?

+0

pato, castor, plutypus - muy divertido – Konstantin

Respuesta

15

Tuve el mismo error y pude resolverlo por especificando manualmente todos los números de revisión que quería fusionar en lugar de dejar que SVN decidiera. Esto permitió que la fusión continuara y me motivó para conflictos de fusión, como se esperaba.

que estaba usando TortoiseSVN para recoger las revisiones por la mano, pero supongo usando la línea de comandos SVN sería algo así como:

svn log --stop-on-copy https://svn.blah/svn/proj1/branches/xyz 

Entonces anotar todos los números de revisión y unirlos todos en una sola vez, p.ej:

svn merge -c123,124,156,159 https://svn.blah/svn/proj1/branches/xyz 
-1

Intente utilizar la opción --ignore-ancestry al hacer la combinación. Podría ser que el historial de fusión está incompleto (posiblemente debido a una tortuga o cualquier cliente por ese hecho) y algo que se hizo en la rama está tratando de aplicarse a la copia de trabajo cuando haces una fusión 'normal'.

+1

Gracias, pero eso no funciona. No puede usar --reintegrate and --ignore-ancestry al mismo tiempo y una fusión sin --reintegrate solo crea una tonelada de conflictos porque ambas ramas tienen el mismo tronco – Mathew

1

Tuve un problema similar reintegrando una rama que se había fusionado de otra rama (ahora reintegrada). De esta manera:

-----------------------------r7------------------ 
    \      /   /ERROR !svn/bc/4/repo/branches/duck' path not found 
    r1----dinosaur--r5-------   /
        \---duck------------r9 

No parece ser posible reintegrar pato, error de la ruta no se encuentra quejó de R4 - pero podría fusionar las revisiones específicas (R5-R9) de pato nuevo en el tronco.

0

que resuelven de la siguiente manera:

  1. Fusionado las ramas problemáticas en el tronco

  2. nueva rama Creado "consolidado" de tronco

  3. tronco vuelto a su estado antes del paso 1 y cometió la reversión

  4. registro combinado sólo desde el paso 3 en la rama

  5. Probado por la fusión de nueva rama consolidada nuevo en el tronco, pero no lo cometió, por supuesto

resultado final es una rama nueva que contiene los cambios de la característica ramas y tronco sin cambios (pero por desgracia con algunas nuevas entradas en el registro).

Cuestiones relacionadas