He estado usando ramas SVN con Tortoise 1.6. He estado fusionando periódicamente el tronco en la rama para mantenerlo actualizado.
Hoy, pensé en reintegrar la rama. Elegí "Reintegrate a branch" de Tortoise y recibí el siguiente mensaje de error:
La reintegración solo se puede usar si las revisiones 4709 a 5019 se fusionaron previamente http://subversion/svn/saxdev/trunk
con la fuente de reintegración, pero este no es el caso
Luego enumeró alrededor de 50 archivos con descripciones como esta:
Error: branches/qst/kobalt/sax/businessobjects/util/HistoryParent.java
Error: Missing ranges: /trunk/kobalt/sax/businessobjects/util/HistoryParent.java:4709-5018
La revisión 5019 es la revisión principal. La revisión 4737 fue la revisión cuando creé una rama.
Tengo esto del registro para la revisión 4737
Acción: Ruta agregada: / sucursales / qst Copiar de la ruta: / trunk
Para mí, ese mensaje de error dice que la rama no era originalmente del tronco, lo cual no es cierto.
¿Algunas ideas?
fuente
Respuestas:
Si está trabajando en una rama y lo ha mantenido actualizado con el trabajo de otras personas, puede que se sienta desconcertado cuando cree una copia de trabajo de la troncal e intente reintegrar su rama si recibe un mensaje como este:
He visto varias soluciones en Google, pero me pusieron nervioso como 'hacks'. Para abordarlo, decidí hacer exactamente qué subversión está insinuando en el mensaje. Regresé a mi sucursal y fusioné explícitamente las revisiones especificadas:
Una vez que hice esto, pude volver a la copia de trabajo del tronco y reintegrar la rama sin ningún problema.
espero que esto ayude
fuente
svn merge
desde el tronco.[[Aunque mi solución ha funcionado para mí en el pasado, puede conducir a resultados inadecuados con clientes SVN modernos. En nuestro caso, los errores de fusión parecían ser subproductos de automatizaciones que confundían nuestra historia SVN y no una actividad real. Dejo esto aquí para la posteridad, pero considere la respuesta aceptada en su lugar. ]]
La solución para mí fue eliminar cualquier
svn:mergeinfo
propiedad que de alguna manera se adjunte a archivos individuales en la jerarquía.Para encontrar los archivos con información de mergeinfo puede hacer:
Luego puede eliminar las propiedades de mergeinfo:
Después de completar esto, mi fusión se ejecutó bien.
fuente
Si intenta reintegrar su rama al tronco y ve errores como este de TortoiseSVN:
Haga clic en el texto de error y presione CTRL+ A, CTRL+ Cpara copiar todo el texto.
Pegue el texto en la cadena de este script de PowerShell:
El script extrae las rutas relativas de los archivos con mergeinfo problemático y genera una lista de comandos para corregir cada uno.
Puede que tenga que cambiar el
'userdata'
valor para adaptarlo a su estructura de repositorio.Ejecute el script para generar los comandos que necesita para eliminar el problema mergeinfos.
En este ejemplo, el script produciría esta salida:
En el símbolo del sistema, puede navegar a la base de la sucursal (myproject) y ejecutar los comandos para eliminar el problema mergeinfos.
Debería ver una salida como esta:
Como en la respuesta de Gray , ahora debe confirmar los cambios en la rama e intentar reintegrarse nuevamente. ¡Esta vez debería funcionar!
fuente
\s+
para que funcione para ti?+
que se necesitaba para que funcionara para mí. En mi caso, algunas líneas tenían dos espacios y otras tenían tres, por lo que se necesitaba soporte para un número variable de espacios. No estoy seguro de por qué cambié el espacio a a\s
; eso probablemente no era necesario, ¡lo siento por esa parte!+
ya que fue útil para ti.En realidad lo arreglé usando la opción "fusionar dos ramas diferentes" para fusionar el tronco y la rama en mi copia de trabajo. Luego lo comprometí con el maletero.
Maravilloso
fuente
Algo que funcionó para mí en la tortuga SVN: en lugar de fusionar todas las revisiones de la rama, elija un rango específico y seleccione manualmente todas sus revisiones de la rama.
fuente
Solo haz lo que SVN te está diciendo.
fuente
Vea también mi respuesta aquí para mi experiencia con un caso similar. No estoy seguro de si esta es la fuente de su problema, pero parece que la Subversión 1.8 tiene problemas con mergeinfo cuando dos cambios se cancelan entre sí.
fuente
Me encontré con este problema. Hice un registro SVN en mi rama para encontrar dónde había fusionado el tronco con mi rama.
Tomé nota de todas las revisiones.
Luego fusioné mi rama con el tronco especificando las revisiones manualmente. Especifiqué todos los rangos para excluir las revisiones donde fusioné troncal. Me las arreglo para fusionar mi sucursal.
Tuve que hacer algunas reversiones en mergeinfo, pero fusioné mi código.
Inmediatamente borré mi rama.
fuente
Recibí este error después de usar un pago parcial de una rama. Estaba manteniendo la rama actualizada con el tronco, pero las revisiones del tronco para partes de la rama que no se verificaron, por supuesto, no se actualizaron. La solución fue hacer un pago completo de la rama y luego fusionar todos los cambios del tronco. Después de enviarlos a la rama, pude fusionar la rama con el tronco con éxito.
fuente
Tengo este problema en
haga clic derecho en la rama donde desea fusionar (pero recibe este mensaje) y seleccione la opción "actualizar a revisión" y luego en el cuadro de diálogo que se abre (captura de pantalla a continuación) seleccione esas revisiones y haga clic en Aceptar, una vez que se fusionen todas las revisiones anteriores, no recibirías este mensaje
Agregar esto aquí para ayudar a alguien que está usando Tortoise SVN
fuente
Sé que esta es una publicación antigua, pero estaba luchando para resolver este problema también hasta que descubrí que los archivos enumerados en el mensaje de error tienen un problema de propiedad SVN.
Hice clic derecho en los archivos con problemas: TortoiseSVN> Propiedades, y descubrí que el archivo tenía dos svn: mergeinfo, y uno de ellos no se había heredado de los datos. Así que eliminé esa información de combinación.
Yo uso TortoiseSVN 1.12.2, Build 28653 - 64 Bit.
fuente