2010-02-03 6 views
6

Бинарники (под Linux) не имеют расширения, поэтому я не могу исключить их с помощью шаблонов. Таким образом, когда я использую SVN add добавить каталог я получить что-то вродеКак сделать SVN ADD игнорировать двоичные файлы

$ 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 

Здесь rec_vec является исполняемым Я хотел бы исключить. SVN, очевидно, распознает его как двоичный. Теперь я могу сказать Subversion игнорировать все двоичные файлы?

+0

Просто замечание: Не обращая внимания на все двоичные файлы будут игнорировать другие исполняемые файлы тоже. Как, например, значки, которые вы можете захотеть включить в репозиторий. – Sam

+0

Да, но это то, с чем я мог бы жить, потому что я обычно проверяю код и никогда не значки. – fuenfundachtzig

ответ

2

Это немного многословным, поскольку он использует найти:

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

Передачу целевого каталог-найти, найти будет рекурсия каталога печати всего содержимого для исполняемых файлов (\(-executable -type f \) -prune), за исключением. Без -type f find также будет обрезать каталоги, так как они обычно имеют бит выполнения или бит поиска.

Опция --depth empty на add сообщает svn не для себя рекурсивного файлового объекта, так как find обрабатывает рекурсию.

Если вам нравится результат, вы можете поместить его в функцию оболочки, которая позволит вам передать аргументы для [TARGET-DIRECTORY].

Спасибо,

Захари

0

Это не совсем то, что вы хотите (и вы уже знаете, этот ответ) ... но в любом случае:

Вы можете установить шаблоны исключаемых игнорировать некоторые файлы, основанные на именах файлов. Более подробная информация в большой SVN книге:

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

Кроме этого, можно было бы сделать что-то с совершением крючков, но у меня нет опыта работы с теми ...

удачи!

1

Можете ли вы установить совпадение шаблонов, чтобы исключить имена файлов, в которых нет .?

+0

Лучшая идея до сих пор :) Конечно, она также срабатывала бы над файлами под названием README и аналогичными, но у меня их нет, поэтому, возможно, мне стоит пойти с этим. – fuenfundachtzig

+0

@fuenfundachtzig вы также можете сопоставить имена файлов, которые не имеют в них '.', А также соответствуют '[a-z] +'. Если вы работаете с файлами README, все они могут быть '[A-Z] +' ... – masher