Ignorando recursivamente archivos en todo el árbol de fuentes en subversion


No soy nuevo en Subversion, pero hasta ahora he usado Tortoise y nunca la línea commadn. Mi pregunta es, ¿cómo ignoro todos los archivos como *.o de TODA la fuente no solo de la raíz.

Por ejemplo, si tengo los siguientes archivos: / myfile.o / folder1 / myfile2.o / folder1 / folder1. 1 / myfile3.o / folder2 / myfile4.o

If svn propedit svn:ignore "."en el directorio raíz, y añadir *.o, ignorará el myfile.o, pero no ignora /folder1 / myfile2.o, / folder1 / folder1. 1 / myfile3.o, / folder2 / myfile4.o. Hay una manera de agregar *.o para un proyecto completo (no puedo hacerlo para todo el repositorio, lo que sé que se puede hacer, porque este proyecto está en un repositorio con muchos otros proyectos)?

Por favor, hágamelo saber si necesito aclarar. ¡Gracias!

Author: Dana the Sane, 2009-08-05

3 answers

Editar

La respuesta original proporcionada a continuación se dio antes de Subversion v1.8 que introdujo una forma de establecer el nivel de repositorio predeterminado ignore (llamado svn:global-ignores) sin sobrescribir/reemplazar la propiedad svn:ignore en el directorio raíz y cada subdirectorio. Desde 1.8, la mejor manera de lograr lo que le gustaría es invocar el siguiente comando (el crédito va a TManhente):

svn propset svn:global-ignores '*.o' .

En versiones anteriores (y en versiones posteriores), aún puede usar el enfoque se indica en la respuesta original a continuación; sin embargo, tenga en cuenta que esto asume que está de acuerdo con reemplazar/sobrescribir la propiedad svn:ignore en todos y cada uno de los subdirectorios... esto puede estar bien para un repositorio smallish/newish, pero probablemente no es lo que desea si tiene un repositorio grande/antiguo en el que algunos subdirectorios pueden tener propiedades svn:ignore independientes que no desea sobrescribir.

Respuesta original

Puede usar la opción"- R "o" rec recursive " con "svn propset"como en el siguiente comando:

svn propset svn:ignore '*.o' . --recursive

Más información

Para ambos casos, puede usar el siguiente comando para obtener más información sobre svn propset:

svn help propset
 65
Author: Michael Aaron Safyan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-09 05:21:31

Solo una actualización: Subversion 1.8.0 introdujo Propiedades heredadas y Configuración Dictada por el Repositorio (Para auto-props e ignores), que también se puede usar en este caso.

Puede establecer la nueva propiedad svn:global-ignores en la ruta raíz. "Solo afectará a los subárboles arraigados en la ruta en la que se establece la propiedad".

Esta nueva propiedad se establece igual que svn:ignore:

    svn propset svn:global-ignores '*.o' .

Hay más información disponible en la versión de Subversion 1.8.0 Notas.

 39
Author: TManhente,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-22 19:15:28

Como señaló @hackmaster.a en un comentario, el ejemplo dado en la respuesta aceptada tiene el efecto secundario de borrar todas las configuraciones anteriores svn:ignore. Usar propedit en lugar de propset tampoco funciona.

La forma correcta de agregar varios archivos recursivamente es poner sus nombres en una lista separada por nuevas líneas en la propiedad svn:ignore establecida con svn propset svn:ignore "[LIST]" .

Por ejemplo:

    svn propset svn:ignore -R "*.pkl
    > *.class
    > Thumbs.db
    > data.tmp" .

Por supuesto, los > son solo las indicaciones del shell.

Este comando cambiará el svn:ignore propiedades del directorio . actual y de cada una de sus subcarpetas recursivamente.

 3
Author: Saul Berardo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-04 15:26:04