De forma recursiva ignorar los archivos en todo el árbol de código fuente de subversion

Yo no soy nuevo en la Subversión, pero me lo han hecho hasta ahora utilizado Tortuga y nunca la commadn línea. Mi pregunta es, ¿cómo puedo ignorar todos los archivos como *.o de la TOTALIDAD de la fuente no sólo de la raíz.

Por ejemplo, si tengo los siguientes archivos:
/miarchivo.o
/carpeta1/con miarch2.o
/carpeta1/carpeta1.1/myfile3.o
/carpeta2/myfile4.o

Si svn propedit svn:ignore «.» en el directorio raíz, y agregar *.o, es que se ignora la miarchivo.oh, pero no ignorar /carpeta1/con miarch2.o, /carpeta1/carpeta1.1/myfile3.o, /carpeta2/myfile4.o. Es allí una manera de agregar *.o para todo el proyecto (no puedo hacerlo por todo el repositorio, que sé que se puede hacer, porque este proyecto está en un repositorio con muchos otros proyectos)?

Por favor, hágamelo saber si tengo que aclarar. Gracias!

InformationsquelleAutor alanquillin | 2009-08-05

3 Kommentare

  1. 70

    Editar

    El original de la respuesta que se proporciona a continuación fue dada antes de la Subversión v1.8, en el que introdujo una manera de configurar el repositorio predeterminado nivel de ignorar (llamado svn:global-ignores) sin necesidad de reemplazar o sustituir el svn:ignore de la propiedad en el directorio raíz y cada subdirectorio. Desde 1.8, la mejor manera de lograr lo que desea es invocar el comando siguiente (crédito va a TManhente):

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

    En versiones anteriores (y versiones posteriores), usted todavía puede usar el enfoque indicado en la respuesta original a continuación; sin embargo, ser conscientes de que esto se supone que está de acuerdo con la sustitución de/sobrescribir la svn:ignore de propiedad sobre todas y cada subdirectorio… esto puede estar bien para una pequeña/bastante nuevo repositorio, pero no es probablemente lo que usted desea si usted tiene un gran viejas/repositorio en el que algunos subdirectorios puede haber independiente svn:ignore propiedades que usted no desea sobrescribir.

    respuesta Original

    Puede usar la opción «-R» o «–recursive» con la opción «svn conjunto de propiedades», como en el siguiente comando:

    conjunto de propiedades svn svn:ignore '*.o' . --recursive 
    

    Más info

    Para ambos casos, se puede utilizar el siguiente comando para obtener más información acerca de svn conjunto de propiedades:

    svn help conjunto de propiedades 
    
    • Gracias, que gran trabajo! Todavía estoy recibiendo la caída de su documentación. Como he dicho, tengo, hasta ahora, únicamente se utiliza la tortuga y que le da buen cuadros de diálogo y explicaciones :).
    • usted tiene también la opción –force svn propset svn:ignore "*.pdb *.db" c:\portal\ --recursive --force
    • El aceptó respuesta va a acabar con todos sus otros svn:ignore la configuración si los tenía. a continuación, puede querer stackoverflow.com/questions/3086418/…
    • Yo quería a la segunda advertencia por hackmaster, y le agradezco las vinculadas solución. Para su INFORMACIÓN, he optado en cambio por la global config solución ubicado en ~/.subversion/config
    • El comentario de hackmaster debe ser fijado en la parte superior de este hilo. Un «aceptado respuesta», que contiene las instrucciones para arruinar su repositorio (al menos en algunas partes de ella) no es una buena cosa 😉
    • gracias por traer esto. Esta respuesta inicialmente había sido presentada antes de la disponibilidad de la alternativa, pero tienes razón… debería haber aclarado mi suposición de que ya no tiene las propiedades svn:ignore en subdirectorios que desea conservar. He actualizado la respuesta más arriba-a-fecha y explícito.
    • Esto es horrible en comparación con el .gitignore manera, pero me las arreglé para hacerlo. Gracias. Yo realmente no quería manualmente ignorar las carpetas y los archivos de cada PC con TortoiseSVN.

  2. 39

    Sólo una actualización: la Subversión 1.8.0 introducido Propiedades Heredadas y Repositorio Dictado de Configuración (Para auto-props y omite), que también puede ser utilizado en este caso.

    Puede establecer la nueva svn:global-ignores de la propiedad en la ruta de acceso raíz. Es «sólo el efecto de los subárboles que nace en la ruta en la que se establece la propiedad».

    Esta nueva propiedad se establece como svn:ignore:

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

    Más información está disponible en la Subversion Notas De La Versión 1.8.0.

    • Realmente me gustaría saber cómo establecer el uso de auto-props?
    • He de añadir bin debug obj a svn:global-ignores pero después de eso, cuando me svn propget svn:global-ignores sólo volver obj (el último), ¿cómo puedo ignorar varios archivos/carpetas? Imgur
    • La razón es que están llamando a la svn propset comando varias veces. Cada vez propset se llama, se reemplaza el valor anterior de la propiedad con el nuevo valor que está pasando. Lo que usted necesita hacer es agregar todas las reglas existentes en una sola propset llamada, svn propedit en lugar de propset. Compruebe el comando de la documentación para más información.
  3. 3

    Tal y como señala en @hackmaster.una en un comentario, el ejemplo dado en el aceptado la respuesta tiene el efecto secundario de la aniquilación de todos los anteriores svn:ignore configuración. El uso de propedit en lugar de propset no funciona ninguno de los dos.

    La forma correcta de agregar varios archivos de forma recursiva está poniendo sus nombres en una lista separada por líneas nuevas en el svn:ignore conjunto de propiedades con svn propset svn:ignore "[LIST]" .

    Por ejemplo:

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

    De curso de la >‘s son sólo la cáscara de los mensajes.

    Este comando cambiará la svn:ignore propiedades de la . directorio actual y de cada uno de sus sub-carpetas de forma recursiva.

    • Utilizando 1.7.4 whipes todos los svn:ignore

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea