二进制文件(在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忽略所有二进制文件吗?
答案 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
除此之外,也许可以使用提交钩子做一些事情,但我对这些没有经验......
祝你好运!