2010-02-03 14 views
6

Los binarios (en Linux) no tienen una extensión así que no puedo excluirlos usando patrones. Por lo tanto cuando uso SVN add añadir un directorio voy a conseguir algo comoCómo hacer que SVN ADD ignore los binarios

$ svn add recursion_vector/ 
A   recursion_vector 
A   recursion_vector/rec_vec.cxx 
A   recursion_vector/rec_vec.h 
A (bin) recursion_vector/rec_vec 

Aquí rec_vec es el ejecutable me gustaría excluir. SVN obviamente lo reconoce como binario. ¿Ahora puedo decirle a Subversion que ignore todos los archivos binarios?

+0

Sólo una observación: Haciendo caso omiso de todos los binarios ignoraría otros binarios, también. Como, por ejemplo, íconos, que es posible que desee incluir en el repositorio. – Sam

+0

Sí, pero eso es algo con lo que podría vivir, porque normalmente solo controlo el código y nunca los íconos. – fuenfundachtzig

Respuesta

2

Esto es un poco prolijo, ya que utiliza encontrar:

find [TARGET-DIRECTORY] \(-executable -type f \) -prune -o -print | xargs svn add --depth empty

Pasando el directorio-objetivo de encontrar, find recursiva el directorio de imprimir todos los contenidos, excepto los archivos ejecutables (\(-executable -type f \) -prune). Sin -type f encontrar también podar directorios ya que estos generalmente tienen el bit de ejecución o "bit de búsqueda" establecido.

La opción --depth empty en add le dice a svn que no recurse a un objeto de archivo, ya que find está manejando la recursión.

Si te gusta el resultado, puedes poner esto en una función de shell que te permita pasar argumentos para [TARGET-DIRECTORY].

Gracias,

Zachary

0

Esto no es exactamente lo que quiere (y probablemente ya saben esta respuesta) ... pero de todos modos:

Puede establecer excluir patrones de ignorar algunos archivos basándose en los nombres de archivo. Más información en el gran libro de SVN:

http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.3.3

Aparte de eso, podría ser posible hacer algo con cometer ganchos, pero no tengo ninguna experiencia con los ...

Buena suerte!

1

¿Puede configurar una coincidencia de patrón para excluir nombres de archivo que no tengan un . en ellos?

+0

La mejor idea hasta ahora :) Por supuesto, también abriría archivos llamados README y similares, pero no los tengo, así que tal vez debería ir con esto. – fuenfundachtzig

+0

@fuenfundachtzig también podría coincidir con los nombres de archivo que no tienen '.' en ellos y también con' [a-z] + '. Si trabajas con archivos README, entonces todos pueden ser '[A-Z] +' ... – masher

Cuestiones relacionadas