117 votos

Quitar propiedades svn:mergeinfo innecesario

Cuando me combinación de cosas en mi repositorio de Subversion quiere agregar o cambiar un montón de svn:la información de mezclado propiedades a los archivos que son totalmente ajenos a las cosas que quiero combinar.

Preguntas sobre este comportamiento han preguntado aquí en stackoverflow:

Por lo que entiendo de los temas mencionados anteriormente se parece a un montón de archivos en mi repositorio explícitos svn:la información de mezclado propiedades en ellos, cuando no deberían. El consejo es reducir la cantidad y solamente poner esas propiedades relevantes de los archivos/carpetas.

Ahora mi pregunta: ¿cómo puedo quitar fácilmente los innecesarios propiedades? Estoy utilizando TortoiseSVN, pero soy reacio a comprobar manualmente/fix cientos de archivos. ¿Hay una manera más fácil para eliminar los innecesarios svn:la información de mezclado propiedades?

P.S. estoy no mirando para C++ SVN código de la API.

115voto

Vincent Puntos 1428

Aquí es otra forma de eliminar todas las propiedades svn:mergeinfo del árbol de submarino, pero no en la carpeta raíz (esto es necesario para la ramificación para funcionar correctamente).

De la raíz del proyecto do:

svn propdel svn:mergeinfo -R
svn revert .
svn ci -m "Removed mergeinfo"

12voto

Kelvin Puntos 450

Aquí es una manera de borrar todas las propiedades svn:mergeinfo de subárbol. Ejecutarlo dentro de la raíz del repositorio:

svn propget svn:mergeinfo --depth=infinity 
    | grep -v "^/"
    | grep -v "^\."   
    | cut -d- -f1 
    | xargs svn propdel svn:mergeinfo

Todo en una sola línea para fácil copiar/pegar:

svn propget svn:mergeinfo --depth=infinity | grep -v "^/" | grep -v "^\." | cut -d- -f1 | xargs svn propdel svn:mergeinfo

Para previsualizar los archivos que esto tendrá efectos antes de ejecutarlo, cambiar el último "propdel" a "propget" o eliminar completamente la última pipa xargs.

11voto

VonC Puntos 414372

Como se ha mencionado en este hilo:

  • La mayoría de los vacíos de información de mezclado ("blanco") puede ser causado por la copia de trabajo para el trabajo de copia/mueve, donde el elemento de origen no tiene explícita la información de mezclado. un propdel puede ser la solución a menos que usted está utilizando un 1.6 SVN: desde 1.5.5 estas WC-WC copias no crear vacíos de información de mezclado en el destino
  • anterior svn move (cambiar el nombre) en la operación de reestructuración también se puede propagar esos información de mezclado (en lugar de dejarlas en el directorio raíz)
  • existe un potencial problema de memoria, seguidos por el caso 3393 y que será corregido en la próxima versión 1.6.2 (y portado en 1.5)

3voto

Chase Seibert Puntos 7609

Si está seguro de que quiere a la masa-eliminar la información de mezclado propiedades, puede utilizar el siguiente script de BASH.

FILES=`svn status |grep "^ M      " |sed s/" M      "// |tr '\n', ' '`
svn revert $FILES

Se obtiene una lista de los archivos que han cambiado, filtros a la información de mezclado sólo los cambios, tiras todo, pero la ruta de acceso del archivo, se convierte en uno-por-línea de trazos en un espacio delimitado, la lista de llamadas revertir en esa lista.

2voto

HackedByChinese Puntos 18294

Sé que ha sido un tiempo, pero me encontré con un problema similar. Estoy utilizando TortoiseSVN 1.6.7. Dio la casualidad de que la propiedad estaba en la raíz de mi copia de trabajo. Cuando he visto las propiedades de la raíz y hacer clic en Eliminar en svn:la información de mezclado, se preguntó si me quiero quitar de forma recursiva. Este deshice de todos mis svn:la información de mezclado cockups.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X