2009-11-19 14 views
21

Estoy intentando recursivamente agregar propiedades a todos los archivos con un comodín.svn propset recursivo

estructura de archivos de la siguiente manera

D:>dir *.bob /s/b 
D:\Source\key-test\test.bob 
D:\Source\key-test\test2.bob 
D:\Source\key-test\sub\test3.bob 

propiedades hasta el momento (ninguno)

D:>svn propget svn:keywords -R *.bob 

probar un conjunto recursivo (nota test3.bob falta)

D:>svn propset svn:keywords "Author HeadURL Id Revision" -R *.bob 
property 'svn:keywords' set on 'test.bob' 
property 'svn:keywords' set on 'test2.bob' 

cambio en sub y asegúrese de que podemos configurar el prop (ok)

D:>cd sub 
D:>svn propset svn:keywords "Author HeadURL Id Revision" -R *.bob 
property 'svn:keywords' set on 'test3.bob' 

Alguien sabe qué pasa con -R, También he intentado --recursive?

Saludos,

adam

D:>svn --version 
svn, version 1.6.6 (SlikSvn:tag/[email protected]) WIN32 
    compiled Nov 3 2009, 15:31:43 

Respuesta

7

Dado que no existe ambigüedad con respecto a la documentación para lo -R hace (o no hace) como señala Gonzalo He utilizado este archivo por lotes en lugar de tratar de obtener SVN para hacer lo que quiero

D:>type applyProps.cmd 
@echo off 
for /r . %%X in (*.bob) do (
svn propset svn:keywords "Author Id HeadURL Revision" "%%X" 
) 
11

De svn help propset:

El SVN: palabras clave, SVN: ejecutable, svn: eol-style, svn: mime-type y
svn: las propiedades de bloqueo de necesidades no pueden ser establecidas en un directorio. Un intento no recursivo
fallará, y un intento recursivo establecerá la propiedad solo en el archivo hijos del directorio.

+0

¿Quiere decir que a pesar de la ayuda -R lista como una opción válida, el párrafo anterior _a intento recursivo se establezca la propiedad sólo en los archivos hijos del directory_ prevalece sobre esto y es -R por lo tanto o no válido? –

+5

Sí, eso es lo que deduzco de la ayuda. En * nix puedes usar 'find. -name \ *. bob | xargs svn propset .... 'para lograr lo que quiere, pero no tiene idea de cómo hacerlo en Windows sin cygwin. – Gonzalo

19

En realidad -R es recursivo. Por ejemplo:

svn propset svn:eol-style 'LF' -R * 

Esto funcionará en todas las subcarpetas también. Sin embargo:

svn propset svn:eol-style 'LF' -R *.php 

... solo funcionará en los archivos php dentro de la carpeta actual, independientemente de la -R. Agregar:

svn propset svn:eol-style 'LF' -R */*.php 

Funciona en las subcarpetas de un nivel hacia abajo. Agregar extra/-s irá a otro nivel y así sucesivamente ...

No estoy seguro de cómo especificar (o si es posible hacerlo) que se debe filtrar según el nombre de archivo Y recursivo . De todos modos, la experimentación no puede doler, ya que las modificaciones son locales y siempre pueden descartarse invirtiendo ...

1

Si su directorio de trabajo está bajo UNIX, también puede probar este comando.Funciona para mí:

svn propset svn:keywords "Id" `du -a | cut -f 2 | grep -v "\.svn" | grep "\.bob$" | sed "s/ /[[:space:]]/g"`