2012-06-29 34 views
4

我已經將一個巨大的Maven項目層次導入IntelliJ想法,現在想法已經在所有不同的層次上創建了.iml項目。我想svn:忽略這些文件。設置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輸入sedawk,然後從那裏輸入svn,但是我完全喪失了對sed或awk命令的準確性以及確切的svn命令(我不會覆蓋現有的svn:忽略值)。

更新:我也不在尋找的是基於find的解決方案,因爲可能有這個層次結構中的項目,其中.iml文件實際上已經提交,我不想幹涉這些項目, m正在爲我的IDE創建的.iml文件添加屬性。

回答

8

您可以將您的客戶端設置爲全局忽略給定的文件擴展名。只需在您的Subversion配置文件中添加

global-ignores = *.iml 

更新:如果你只想忽略有關目錄IML文件,你可以嘗試

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

最後一行的'grep'部分將是一個比較安全問號逃脫,包含在模式中的點:'grep'^ \?。* \。iml''。 –

+0

爲了完整起見:SVN配置生存在'〜/ .subversion/config'中。 –

+0

'svn propset'有一個警告。它會覆蓋而不是添加到現有屬性。 –