2009-04-23 18 views
15

Cuando hacemos nuestra bifurcación y fusión con svn, siempre hacemos lo mismo.torty svn siempre fusionando 45 archivos extra

Obtenemos una copia más reciente de la cajuela.

Crea una rama y cambia.

Haga un pequeño cambio en un archivo en la rama.

Merge branch back to trunk.

En este punto, tendremos nuestro único archivo que necesita más los mismos 45 archivos adicionales. Esto sucede en cada rama y combinación, y siempre son los mismos 45 archivos extra. No tengo idea de cómo solucionar el problema, pero es extremadamente molesto.

¿Alguien ha visto esto antes?

ACTUALIZACIÓN: Cuando realizo la confirmación, los archivos que realmente cambié tienen su estado de texto modificado y el estado de su propiedad como en blanco. Los "45 archivos" son todos Estado de texto normal, estado de propiedad modificado.

+0

Sería de gran ayuda si describieras esos 45 archivos adicionales. –

+0

Posible duplicado: http://stackoverflow.com/questions/391864/svn-mergeinfo-properties-on-paths-other-than-the-working-copy-root – MPelletier

Respuesta

11

Probablemente son mergeinfo propiedades. Con la versión 1.5 de SVN, fue bastante agresivo establecer la propiedad mergeinfo y, a medida que se fusiona, esas propiedades se actualizan, lo que requiere una confirmación.

La respuesta es eliminar la propiedad mergeinfo de ellos. También actualice a la versión 1.6 que tiene mejor soporte mergeinfo (es decir, escribe menos de estas propiedades).

Debo decir que estos archivos no tendrán cambios visibles si miran las diferencias. Obviamente, si se modifican sus contenidos, entonces, cuáles son los cambios pueden darle una pista (por ejemplo, es una herramienta automatizada que escribe comentarios adicionales, modifica el diseño o agrega líneas en la parte superior o inferior).


EDITAR: Ver this blog post para más información sobre los temas que se fusionan, SVN y correcciones.

+0

¿Esto es algo que debería hacer regularmente? Estaba preocupado de actualizar a 1.6 después de un siniestro Tweet de CodingHorror. –

+0

He actualizado mi cliente (tortuga) y la memoria caché puede hacer que el explorador se detenga; Me quedaría con 1.5.5 por un tiempo más, y sería más cuidadoso con la fusión: tiendo a fusionarme en un directorio de 'nivel superior' solamente, nunca me subdivoro y nunca he tenido este problema. – gbjbaanb

+0

Acabo de encontrar archivos adicionales en una fusión el otro día y los reconocí como archivos que se habían fusionado anteriormente. ¿Puedes confirmar que la eliminación del atributo svn: mergeinfo de todas las raíces de tu proyecto excepto de la suya es una operación segura? ¿Alguna consecuencia negativa a tener en cuenta? Y ... ¿es esto un error o un comportamiento esperado, crees? –

5

Es muy probable que sean las propiedades de mergeinfo mencionadas. Probablemente desee limpiar las propiedades de mergeinfo en los archivos y carpetas de su troncal. Un archivo por lotes es útil para esto, ya que es posible que deba volver a hacerlo alguna vez en el futuro. Algo como lo siguiente:

echo Removing Nested Merge Information... 

svn propdel svn:mergeinfo subfolder1 --depth=infinity 

svn propdel svn:mergeinfo subfolder2 --depth=infinity 

svn propget svn:mergeinfo --depth=infinity trunk 

A continuación, vuelva a confirmar el troncal después de haber ejecutado el archivo de proceso por lotes en una copia de trabajo del enlace troncal.

Además, cambiar el nombre y mover carpetas es una forma común de generar una propiedad mergeinfo en una carpeta/archivo en un repositorio de subversión. svn1.6 no es tan generoso al agregar la propiedad mergeinfo para varias acciones.

1

Personalmente, creo que mergeinfo causa más problemas de los que soluciona, al menos con el estado actual de las herramientas. Una vez que sea transparente en commits, tal vez valga la pena usarlo.

Puede eliminar de manera segura las propiedades de mergeinfo. Sin embargo, tenga en cuenta que necesitará realizar un seguimiento manual de las revisiones que se fusionarán para las reintegraciones.

3

Leer el artículo detallado en http://www.collab.net/community/subversion/articles/merge-info.html

Es largo, pero vale la pena. Tenga en cuenta en particular las sugerencias en la sección "Pensamientos de despedida" al final, que incluyen consejos para reducir el ruido de mergeinfo.

Además, en lugar de usar svn propdel para limpiar mergeinfo no deseado, considere usar svn merge con la opción --record-only.