2011-06-16 21 views
36

Digamos que quiero establecer el svn: ignore propiedad para el directorio dir1 con varios valores, archivo1, archivo2 y archivo3. ¿Cómo puedo hacer esto a través de la línea de comandos, sin usar un editor de texto (para establecer el valor de la propiedad)?Cómo configurar svn: ignorar con múltiples valores?

Respuesta

40

Tipo exactamente como aquí con saltos de línea:

svn propset svn:ignore "file1 
file2 
file3" dir1 

Si desea pasar una lista de otro comando, intente xargs. Desafortunadamente, el comando svn no permite leer desde stdin con -F -.

+0

Gracias. Supongo que querías decir "propset" (no "propget") – Snowcore

+0

Sí, claro - Estaba probando mi hipotesis y dejé un error tipográfico;) – gertas

+9

Es por eso que SVN apesta ... (pero gracias por la respuesta) – vahidg

10

Uso:

cat > ignorelist << END 
file1 
file2 
file3 
END 

svn propset svn:ignore -F ignorelist dir1 

o sin un archivo externo, y asumiendo que estás en Linux o un sistema con /dev/fd:

svn propset svn:ignore -F /dev/fd/0 dir1 << END 
file1 
file2 
file3 
END 
+0

Gracias, está claro. Pero, ¿cómo establecer el valor de la propiedad sin usar un archivo externo? – Snowcore

+0

Con respecto a '/ dev/fd': ¿A qué se refiere? ¿Disquetes? [/proc/PID/fd/](https://en.wikipedia.org/wiki/File_descriptor)? ¿O algo mas? –

+0

/dev/fd/0 es una referencia a la entrada estándar; se puede usar en situaciones como aquí donde un comando quiere un nombre de archivo y los datos de entrada no se almacenan en un archivo – chrisdowney

19

Una solución línea:

svn propset svn:ignore "file1"$'\n'"file2"$'\n'"file3" dir1 
+1

Este funcionó bien para mí en presencia del carácter de sustitución '^' utilizado para especificar la raíz del repositorio svn en la propiedad 'svn: externals'. La solución multilínea no funcionaba porque el intérprete de comandos intentaba interpretar el '^' – jplandrain

+0

Esto funciona bien, pero me gustaría saber por qué. ¿Qué hace el personaje $ aquí? Normalmente se usa para iniciar una variable, ¿correcto? También tenga en cuenta que las comillas simples alrededor de '\ n' son obligatorias, y deben ser únicas, mientras que las comillas dobles alrededor de los nombres de archivo solo son necesarias si tienen caracteres especiales como espacios. – trysis

9

Adición de entradas múltiples es mucho más fácil. Use el siguiente comando:

svn propedit svn:ignore . 

Esto abrirá un editor de texto. Ahora puede agregar múltiples entradas fácilmente.

Cuestiones relacionadas