Pregunta

Tengo un tronco (A) y dos ramas (B y C).Cuando fusiono A con C está bien, después de fusionar A con B, la C anterior se sobrescribe y mi troncal no tiene los cambios de C.

Lo que quiero es A + B + C en el tronco después de fusionarse.

Editado para más explicaciones:

  1. En el baúl tengo 3 archivos:"ARCHIVO 1", "ARCHIVO 2" y "ARCHIVO 3";
  2. Creo una rama desde el tronco como "Rama 1";
  3. Cambio a "Rama 1", soluciono errores en el archivo "ARCHIVO 1" y comprometo;
  4. Al mismo tiempo, otra persona crea una rama desde el tronco como "Rama 2";
  5. Esta persona corrige otros errores en los archivos "ARCHIVO 2" y "ARCHIVO 3" y confirma;
  6. La "Sucursal 2" está aprobada para su publicación, luego fusiono la "Sucursal 2" con el "troncal" (está bien);
  7. Al día siguiente se aprueba la "Sucursal 1", luego fusiono la "Sucursal 1" con la "troncal" y la "sucursal" pierde los cambios de la "Sucursal 2".
¿Fue útil?

Solución

  1. Haga una copia de trabajo de trunk
  2. svn merge -r W:X svn://branchA workingCopy
  3. svn merge -r Y:Z svn://branchB workingCopy

Creo que esto le dará lo que quiere, que es el tronco, además de los cambios realizados por las dos ramas. Usted tendrá que hacer frente a los conflictos, sin embargo.

Otros consejos

Si se asume que está utilizando Subversion 1.5 o mayor, creo que usted quiere "reintegrar" sus ramas hasta el tronco, consulte http://blog.red-bean.com/sussman/?p=92

Su terminología no está clara.Cuando dices "fusionar A con B", ¿eso significa que fusionas A con B o B con A?¿Puedes explicar exactamente qué hiciste para crear las ramas y cómo intentaste fusionarlas?Además, para fusionar es importante qué versión de SVN estás usando.

Te sugiero que leas atentamente el capítulo sobre ramificación y fusión en el libro SVN.

Básicamente, cuando tienes una rama de características (que es lo que parece tener), fusionas repetidamente la rama en ella.Luego, SVN registra qué revisiones fusionó y no las volverá a fusionar.Cuando hayas terminado con tu rama, la reintegras al tronco y la descartas.

Todo esto se hace en su disco, una rama a la vez, resolviendo posibles conflictos después de cada rama y verificando cada paso.(Si por alguna razón necesita aplicar los cambios al tronco en un solo registro, puede fusionar sus ramas en una nueva rama del tronco y luego fusionar esa rama en el tronco cuando haya terminado).

Se desea aplicar las fusiones a su espacio de trabajo, no el repositorio. Alternativamente, puede utilizar cvs que se ocupa de las ramas de un modo muy superior a SVN hace.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top