2013-06-20 30 views
1

.settings文件夾和.project文件當前處於版本控制之下。我需要在它們上添加svn:ignore屬性。這裏是我怎麼一直在做它時,我們只是少數開發商:在已經受控制的文件上添加svn:ignore屬性

  1. 備份他們臨時本地
  2. 本地刪除,並提交(或遠程刪除和更新)
  3. 本地重新添加從備份(步驟#1)
  4. 添加了svn:ignore屬性,並承諾

的問題是,其他開發商將不得不備份自己的文件也更新前,因爲他們的本地文件時就會刪除更新。任何其他限制性較少的解決方案,還是我必須發送「請在更新前備份!」電子郵件?

回答

2

您應該改用svn rm --keep-local

如果你是在Unix上,你可以測試:

find . -name .project -exec sh -c 'svn info "{}"' \; -a \ 
     -execdir bash -c 'svn -q propset svn:ignore -F <((svn propget svn:ignore;\ 
        echo .project) | sort -u) .' \; -a \ 
     -execdir svn delete --keep-local {} \; 
  1. 搜索.project文件,並檢查它是否版本。
  2. 檢索屬性並在本地目錄中添加.project。從重複sort -u防止
  3. 如果你想請求確認,使用--okdir代替

注意:你只能在最後提交因爲它是相同的操作(即「清潔性」)。

FWIW不失去希望,SVN 1.8包含繼承屬性(http://subversion.apache.org/docs/release-notes/1.8.html#iprops

+0

非常感謝,我不知道這'--keep-local'選項。實際上,我忘了說我正在使用Subclipse(Eclipse的SVN擴展)。感謝你的回答,我可以找到[這一個](http://stackoverflow.com/a/8067815/1225328),這說明,不幸的是,Subclipse不管理'--keep-local'(還有嗎?) 。不管怎麼說,還是要謝謝你 :) – sp00m