¿Cómo evito gran número de SVN: mergeinfo cuando la fusión de tronco a una función de la rama en SVN

StackOverflow https://stackoverflow.com/questions/3785743

  •  05-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de mantener una rama de la característica hasta la fecha mediante la fusión de tronco en la rama. El problema es que alrededor de 2.000 archivos que estaba allí cuando se creó la rama, y ??que se ha dejado intacto tanto en la rama y el tronco es tener actualizada con nada más que svn: info de fusión. El proyecto es bastante grande en escala, y el impacto en nuestra historia SVN es tan grande, que hace que la combinación de cometer la historia inutilizable ya que está marcando literalmente miles de archivos modificados, a pesar de que el único cambio a estos archivos, se realiza mediante SVN sí mismo.

He tratado

  • Uso de la misma versión de cliente como el Repo (1.5.2)
  • Uso de mi versión actual del cliente 1.6.10
  • La fusión de un rango de revisiones, de rama comienza hasta la cabeza

Me debería mencionar que he estado mirando detenidamente la documentación de SVN cuando se trata de esto. Así que no hay reglas deben romperse (por ejemplo. Sin sub árboles cambiados, copia local limpio, etc.).

¿Fue útil?

Solución

Bascially para limpiar el depósito tiene que ejecutar lo siguiente en su rama de integración para que los seguidores de cambio fuera de allí: -

C:> svn propdel svn: mergeinfo -R

es decir. lo hace en el tronco de manera que las ramas de liberación futuro y de características no están contaminadas. Cuando la fusión de las ramas existentes puede ignorar todas SVN:. Merginfo cambios por debajo de la "raíz de combinación", ya que se heredarán todos modos

Me escribió un blog sobre este tema hace un tiempo que la cubre con más detalle: -

Limpieza SVN: mergeinfo Los excrementos http://chrisoldwood.blogspot.com/2010/03/cleaning -up-svnmergeinfo-droppings.html

Otros consejos

SVN añadirá mergeinfo propiedades a archivos individuales si se piensa que sus difiere historia de combinación de la de su directorio padre. Una vez que ha ocurrido, todos de fusión posterior, sin importar lo inofensivo, hará que esas propiedades mergeinfo ser actualizado. He encontrado la primera mitad del este artículo útil para entender por qué sucede esto.

Si se quiere evitar estos cambios constantes mergeinfo, que tendrá que "hasta ordenada" mergeinfo las propiedades existentes en su rama. La más segura, pero más laboriosa, forma de hacerlo es ejecutar svn propget -R svn:mergeinfo en la rama, y ??luego estudiar las diferencias entre el mergeinfo en archivos individuales y la info de fusión de su directorio padre. Es posible que las diferencias son pequeñas, y que "svn merge" ing un pequeño número de revisiones individuales será suficiente para elisión mergeinfo gatillo, haciendo que todas las propiedades individuales mergeinfo a desaparecer.

Si está seguro de que entiende cómo funciona mergeinfo, también puede simplemente caminar y editar o eliminar manualmente la info de fusión de los archivos involucrados.

Si usted tiene tal mergeinfo en ficheros que no son realmente cambiado o que otra persona hace fusiones no desde la raíz copia de trabajo ... La única solución es eliminado del SVN: info de fusión de los archivos, la causa es la única localización en la raíz copia de trabajo en ninguna otra parte. Y otro punto que debe actualizar el repositorio para 1.6.x ..

Como no soy confiado con eliminación propiedad svn:merge-info ciego, he implementado una herramienta para analizar la situación actual en una copia de trabajo y eliminar como revisiones de combinación de lo posible de no root propiedades de fusión-info. Después de comprobaciones y controles humanos adicionales, los cambios en la copia de trabajo se pueden cometer.

Aquí está: SVN-limpia-mergeinfo

No dude en informar de cualquier problema acerca de su uso conseguirlo mejorado.

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