如何使SVN ADD忽略二进制文件

时间:2010-02-03 10:24:13

标签: svn binary directory add ignore

二进制文件(在Linux下)没有扩展名,所以我不能使用模式排除它们。因此,当我使用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忽略所有二进制文件吗?

3 个答案:

答案 0 :(得分:2)

这有点冗长,因为它使用了find:

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

将目标目录传递给find,find将递归目录,打印出除可执行文件(\( -executable -type f \) -prune)之外的所有内容。没有-type f find也会修剪目录,因为它们通常有执行位或“搜索位”设置。

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

如果您喜欢这个结果,可以将它放在一个shell函数中,该函数允许您传入[TARGET-DIRECTORY]的参数。

谢谢,

扎卡里

答案 1 :(得分:1)

您可以设置模式匹配,以排除其中没有.的文件名吗?

答案 2 :(得分:0)

这不完全是你想要的(你可能已经知道这个答案)......但无论如何:

您可以根据文件名设置排除模式以忽略某些文件。更多信息在伟大的SVN书中:

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

除此之外,也许可以使用提交钩子做一些事情,但我对这些没有经验......

祝你好运!