我的目录结构如下所示:
project/
app1/
app2/
settings.py
在project
目录中,我运行svn propedit svn:ignore .
这只忽略项目主管内的文件,不包括其子目录。我可以从每个文件夹中再次运行svn ignore,它会起作用。是否有一个内部的svn命令或选项可以递归地为我执行,或者我应该使用脚本在我的项目的每个子文件夹中执行忽略?
我将我被忽略的文件设置为:
*.pyc
*.swp
但是,每当我执行svn status
时,我仍会看到上述文件。有没有办法告诉svn status
递归隐藏被忽略的文件?
答案 0 :(得分:5)
svn propedit
一次仅适用于一个目标。 TortoiseSVN可以选择以递归方式应用属性,但如果您不使用它或具有该选项的其他GUI,则必须使用脚本执行此操作。
但是,您应该真正做的是将global-ignores
设置为忽略您提到的两种文件模式。根据{{3}},*.pyc
和*.swp
包含在Subversion 1.6的默认忽略中,但如果config
文件没有,则可以添加它们。
config
文件的位置取决于平台;请参阅上面的文档链接。 global-ignores
位于miscellany
部分。
答案 1 :(得分:2)
只有全局忽略的问题是你需要一个文件扩展名。在某些程序中,有没有扩展名的文件(或者只有很多扩展名)。一个例子是CakePHP中的tmp文件。
我通过(在Linux bash shell中)解决了这个问题:
cd app/tmp
for a in `find . -type d |grep -v svn`; do svn propset svn:ignore '*' $a; done