2010-02-03 61 views
6

二进制文件(Linux下)不具有扩展名,所以我不能使用模式排除。因此,当我使用SVN add添加目录,我会得到这样的如何使SVN地址忽略的二进制文件

$ 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 2010-02-03 10:30:25

+0

是的,但那是我可以忍受的事情,因为我通常只检查代码而不是图标。 – fuenfundachtzig 2010-02-03 13:36:15

回答

2

这是一个有点冗长,因为它使用发现:

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

传递目标目录查找,发现将递归的目录打印出的所有内容,除了可执行文件(\(-executable -type f \) -prune)。如果没有-type f发现也将删减目录,因为这些通常执行位或“搜索位”集。

add上的--depth empty选项告诉svn不要递归文件对象,因为find处理递归。

如果你喜欢的结果,你可以在一个shell函数,它会让你在传递参数的[TARGET-DIRECTORY]把这个。

谢谢

扎卡里

1

你能建立一个模式匹配,以排除那些没有在他们.文件名?

+0

最好的办法到目前为止:)当然,它也将火上的文件叫README和类似的,但我没有这些,所以也许我应该用这个去。 – fuenfundachtzig 2010-06-02 09:08:35

+0

@fuenfundachtzig你也可以匹配没有在他们'.',也符合'[A-Z] +'文件名。如果你使用README文件,那么它们可能都是'[A-Z] +'... – masher 2010-07-08 06:35:42