views:

458

answers:

3

Binaries (under Linux) don't have an extension so I cannot exclude them using patterns. Thus when I use SVN add to add a directory I will get something like

$ 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

Here rec_vec is the executable I would like to exclude. SVN obviously recognizes it as binary. Now can I tell Subversion to ignore all binary files?

+1  A: 

This is not exactly what you want (and you might already know this answer)... but anyway :

You can set exclude patterns to ignore some files based on the filenames. More info in the great SVN book :

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

Other than that, it might be possible to do something with commit hooks, but I have no experience with those ...

Good luck !

Guillaume
+1  A: 

Can you set up a pattern match to exclude filenames that don't have a . in them?

masher
The best idea so far :) Of course, it would also fire on files called README and similar, but I don't have those, so maybe I should go with this.
fuenfundachtzig
@fuenfundachtzig you could also match filenames that don't have a `.` in them and also match `[a-z]+`. If you work with README files, then they may all be `[A-Z]+`...
masher
+1  A: 

Hi,

This is a bit verbose because it uses find:

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

Passing the target-directory to find, find will recurse the directory printing out all the contents except for executable files (\( -executable -type f \) -prune). Without -type f find would also prune directories since these usually have the execute bit or "search bit" set.

The --depth empty option on add tells svn not to itself recurse a file object, since find is handling the recursion.

If you like the result, you can put this in a shell function that would allow you to pass in arguments for [TARGET-DIRECTORY].

Thank you,

Zachary

Zachary Young