bash – 设置svn:递归忽略目录结构

我已经将一个庞大的maven项目层次结构导入IntelliJ想法,现在想法已经创建了所有不同层次的.iml项目.我想svn:忽略这些文件.

有几个类似的问题,例如这一个:svn (subversion) ignore specific file types in all sub-directories, configured on root?

但是:答案始终是使用–recursive标志应用svn:ignore.这不是我想要的,我只是想忽略我创建的文件,而不是在下面的数百个目录上设置属性.

基本上,我所拥有的是输出

svn status | grep .iml

看起来像这样:

?       foo/bar/bar.iml
?       foo/baz/phleem.iml
?       flapp/flapp.iml

等等

我想做的是为每个条目dir / project.iml添加svn:ignore * .iml到dir.我猜我必须将上面的grep传输到sed或awk并从那里传递给svn,但我完全失去了一方面确切的sed或awk命令以及确切的svn命令(我不会另一方面,覆盖现有的svn:ignore values).

更新:我也不想要的是基于find的解决方案,因为可能在这个层次结构中有.iml文件实际上已提交的项目,我不想干涉这些项目,所以我想添加该属性仅适用于我的IDE创建的.iml文件.

您可以将客户端设置为全局忽略给定的文件扩展名.只需添加

global-ignores = *.iml

进入你的Subversion配置文件.

更新:如果您只想忽略相关目录中的iml文件,可以尝试

svn status | grep '^\?.*\.iml' | sed 's=^? *=./=;s=/[^/]*$==' | xargs svn propset svn:ignore '*.iml'
相关文章
相关标签/搜索