【发布时间】:2012-07-12 08:25:59
【问题描述】:
我目前有一个想要添加到 SVN 的项目,但我不想对某些文件类型进行版本控制。 (例如 .png)或文件夹(图片)。
我知道有 svn:ignore,但如果我尝试执行忽略操作的目录中没有 .svn 文件,这将不起作用。我收到以下错误:
property 'svn:ignore' set on '.'
svn: 'common' is not under version control
我正在寻找某人来告诉我如何执行此操作或指导我到正确的地方。
任何时候我尝试这个,就像我必须使用'svn add'将文件/目录添加到svn,然后运行忽略。我有很多目录,我也希望递归地执行此操作。
有没有简单的方法来做到这一点?
【问题讨论】:
-
在 linux 中,您可以轻松地使用 bash 脚本(或任何数量的其他脚本)递归地执行命令,例如通过执行
find . -type d -exec "<command here> {} denotes where to place directory"。关于设置属性失败,您是否尝试过在父目录中设置 svn:ignore? -
嗨,是的。我已将存储库添加到 svn。只是一个空的存储库。我检查一下。所以父目录包含 .svn 文件。我拉入我的项目,如果我运行
svn propset svn:ignore -F ignore_files . --recursive,它只会忽略顶层目录中的文件。它不会过滤到子目录。 -
试试
svn propset -R svn:ignore directory-to-ignore。不过,我不确定您是否需要递归,对吗? -
我想我确实需要递归是的。我需要忽略来过滤子目录。如果我从顶层目录运行
svn propset svn:ignore '*.png' .,来自子目录的 png 仍然会被添加并提交。当我运行该命令时,我从上面得到第二个错误svn: 'common' is not under version control -
恐怕我不知道。我从来没有真正关心过 svn:ignore,因为我主要通过 subclipse 处理 svn。