bash - 设置 svn :ignore recursively for a directory structure

标签 bash svn sed awk svnignore

我已经将一个巨大的 maven 项目层次结构导入到 IntelliJ idea 中,现在 idea 已经在所有不同层次上创建了 .iml 项目。我想 svn:ignore 这些文件。

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

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

基本上,我所拥有的是

的输出
svn status | grep .iml

看起来像这样:

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

等等

我想做的是为每个条目 dir/project.iml 添加 svn:ignore *.imldir。我猜我必须将上面的 grep 传送到 sedawk 并从那里传送到 svn,但我完全不知道一方面是准确的 sed 或 awk 命令,另一方面是准确的 svn 命令(我不会用它覆盖现有的 svn:ignore 值)。

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

最佳答案

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

global-ignores = *.iml

进入你的 Subversion 配置文件。

更新:如果只想忽略涉及目录下的iml文件,可以试试

svn status | grep '^\?.*\.iml' | sed 's=^? *=./=;s=/[^/]*$==' | xargs svn propset svn:ignore '*.iml'

关于bash - 设置 svn :ignore recursively for a directory structure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11260551/

相关文章:

c - 是否有一个 C 预处理器可以消除 #ifdefs 但也可以评估预处理器宏?

linux - 如何将标准输出写入带有颜色的文件?

bash - 在 'expect' 中使用条件语句

linux - bash 脚本中的 ` 是什么?

linux - 为什么svn :executable work for one script and not the other?

linux - 并行 SVN 更新过程

svn - (405 Method Not Allowed) 在提交谷歌代码期间响应 MKACTIVITY

bash - 如何获得大括号扩展的备用分隔符?

unix - 如何在 sed 中用 `pwd` 的结果替换 token ?

unix - sed/awk : Insert some text in a file after the last pattern found