对于我们的项目,我们避免global-ignores
在用户的 svn 配置文件中使用 svn,因为这些 svn 设置仅限于客户端,而不是项目的属性。我们想要一种使用类似.gitignore
文件的方式来管理项目子目录中被忽略的文件的方法。我开发了一个简单的方案,将.svnignore
文件与脚本结合使用,该脚本 (1).svnignore
在目录树中查找文件并 (2) 更新找到文件的svn:ignore
每个目录的属性.svnignore
。当有人更新文件时,他们只需要记住运行脚本即可;我们发现这比手动管理svn:ignore
目录上的属性更容易。
这是脚本:
#!/bin/sh
# Syntax of the .svnignore file: like what "svn propset svn:ignore" accepts,
# and in addition, lines in the .svnignore file that begin with a pound sign
# (#) are ignored so that one can put comments in the file.
find $1 -depth -name .svnignore | while read file ; do
dir="`dirname $file`"
egrep -v '^[ ]*#' $file | svn propset svn:ignore -F - $dir
svn update $dir
svn commit --depth=immediates -m"Updated list of ignored files." $dir $dir/.svnignore
done
echo "Done."
.svnignore
以下是此脚本接受的文件示例:
# WARNING: This .svnignore file is not understood by SVN directly.
# WARNING: It is meant to be used in conjunction with our script in
# WARNING: trunk/project/scripts/svn-update-from-svnignore.sh
autom4te.cache
Makefile
config.log
config.status
.deps
include
TAGS
CTAGS
*.o
我的问题是:
- 有没有更好的方法来完成同样的事情?
- 您在此处看到的方法或脚本是否存在任何危险?
感谢您的任何提示。