svn - two - Mensaje de error de rangos faltantes al reintegrar una rama en un tronco en Subversion 1.5
tortoise svn branch to trunk (5)
Estoy tratando de reintegrar una rama de desarrollo en el tronco en mi repositorio Subversion 1.5. Antes de esta operación, fusioné todos los cambios del troncal a la rama de desarrollo. Ahora, cuando intento reintegrar los cambios de la rama, aparece el siguiente mensaje de error:
Command: Reintegrate merge https://dev/svn/branches/devel into C:/trunk
Error: Reintegrate can only be used if revisions 280 through 325 were previously
Error: merged from https://dev/svn/trunk to the reintegrate
Error: source, but this is not the case:
Error: branches/devel/images/test
Error: Missing ranges: /trunk/images/test:280-324
...
El mensaje luego continúa quejándose de algunas carpetas en mi proyecto. Pero cuando trato de fusionar los cambios del tronco a la rama de desarrollo nuevamente, TortoiseSVN me dice que no hay nada que fusionar (como ya he fusionado todos los cambios antes):
Command: Merging revisions 1-HEAD of https://dev/svn/trunk into C:/devel, respecting ancestry
Completed: C:/devel
Estoy tratando de seguir las instrucciones desde aquí: http://svnbook.red-bean.com/en/1.5/svn.branchmerge.basicmerging.html , pero no hay nada sobre cómo resolver este problema.
¿Algunas ideas? ¿Quizás debería simplemente eliminar el tronco y luego hacer una copia de mi sucursal? Pero no estoy realmente seguro de si es seguro.
Ver también
svn fusionarse con --reintegrate se queja de los rangos faltantes, pero mergeinfo parece correcto
Acabo de tener este problema y lo que funcionó para mí fue, en primer lugar, sincronizar la rama con el troncal, para que la rama pueda tener las últimas actualizaciones del tronco. Después de esto, traté de reintegrar la rama al tronco y funcioné bien.
Dejé de tener estos problemas cuando comencé a usar la opción -r para el comando svn merge y no intenté hacer el --reintegrate hasta después de que me hubiera fusionado sin él. Estoy usando svn 1.6.1.
Esto es lo que hago:
1. Cuando me fusiono de rama a tronco o de tronco a rama, uso la opción -r de esta manera:
cd branchWorkArea/topDir
svn merge -r<branchPoint>:HEAD [otheroptions] svn://svn/project/trunk/topDir
cuando he resuelto cualquier conflicto y pruebo mi código, confío la combinación a la rama y luego la fusiono a la troncal usando las mismas opciones básicas (especialmente -rBranchPoint: HEAD)
cuando el tronco ha sido probado y comprometido, luego uso la opción --reintegrar para cerrar la rama. Asegúrese de usar la opción -rbranchPoint: HEAD en él también.
Para otras opciones, siempre uso
--de infinito infinito (por defecto es infinito en 1.6.2 pero no antes)
-x -b -x -w --ignore-eol-style
Tal vez, he tenido suerte, pero las cosas parecen funcionar mejor.
Para encontrar el punto de ramificación de una rama, haga un registro svn --stop-on-copy y luego observe la última versión - será la copia svn la que haya creado la rama.
Para hacer esto en Linux, hago algo como esto:
svn log --stop-on-copy svn: // svn / project / trunk / topDir |
grep ''^ r'' | cola -1 | sed -e ''s / ^ r // 1''-e'' s /. * // g ''
Esto debería imprimir el número de revisión del punto de bifurcación.
Buena suerte
Luchamos con este problema durante algunas semanas y finalmente lo resolvimos.
En nuestro caso, trabajamos en una sucursal que se fusionó con todas las revisiones de troncales diariamente. Cuando intentamos reintegrarlo (fusionar de nuevo al tronco) obtuvimos este error. Cuando intentamos combinar los rangos faltantes en nuestra sucursal, recibimos el mensaje de que no hay nada que fusionar. Ocurrió en varias ramas no relacionadas y con diferentes archivos y carpetas.
La solución fue agregar los rangos faltantes a la propiedad svn: mergeinfo del archivo o carpeta en nuestra sucursal.
Para cada línea de "Rangos que faltan: ruta: rango de revisión" en el mensaje que recibió:
- Edite la propiedad svn: mergeinfo en el archivo / carpeta mencionado en la rama combinada
- Agregue lo siguiente: cadena al final del valor de la propiedad (por ejemplo, / trunk / images / test: 280-324)
- Guardar la propiedad SVN
Compromete todos los cambios y reintegrate de nuevo.
Primero debe combinar las revisiones r280 a r324 desde el tronco a su rama.
Parece que ya ha fusionado r325 en su sucursal, sin embargo, reintegrar debe obtener todas las revisiones hasta su última revisión fusionada. No debe haber brecha. Así que aquí un poco Diag:
+----------------------> /branches/devel
/ / /<--merge not working!
--------/-------+--+---+-----+---------> trunk
| / | / |
280 / V / 325
V
missing sync merges from trunk to branch
Creo que esta es la estructura de su rama, por lo que necesita sincronizar todos los cambios del tronco a su rama. Solo fusionaste r325, así que simplemente fusiona r280-r324 y después de hacer esto deberías usar --reintegrate
Tuve este problema, y fue causado en última instancia por las propiedades SVN erróneas contra una carpeta en mi sucursal.
La solución fue fácil: fusioné desde el troncal a mi sucursal utilizando el número de revisión específico que se había reportado como faltante, por ejemplo
Y luego especificando solo grabar la fusión por ejemplo
Esta acción hizo que mi rama se alineara correctamente con el tronco y mi posterior reintegración de rama en el tronco funcionó correctamente, sin el mensaje de error de rangos faltantes.
Esta técnica evitó cualquier edición manual de cualquier propiedad svn: mergeinfo contra cualquier archivo / carpeta.