砍掉所有 .svn 目錄(使用 find)


產品 Release 時, 真的很懶的話, 就是直接 svn checkout 後, 就讓他上線, 但是 .svn 的目錄怎麼辦~  就用下面這一行來砍一砍:

find PATH -type d -name '.svn' -exec rm -rf {} \;

PATH 再自行換成那個路徑即可. 🙂

感謝 jeffhung 指點, svn 有 export 的參數可以用, 使用 export 就不會有 .svn 的目錄:

svn export http://HOSTNAME/SVN_PATH (跟 checkout 參數類同)

感謝 ihower 提供的 Apache 阻擋設定 (於 Apache 設定下述即可)

<DirectoryMatch "^/.*/\.svn/">
ErrorDocument 403 /404.html
Order allow,deny
Deny from all
Satisfy All
</DirectoryMatch>

其它 Apache 設定擋法

  1. <Directory ~ "\.svn">
    Order allow,deny
    Deny from all
    </Directory>

  2. RewriteRule ^(.*/)?\\.svn/ - [F,L]

  3. RedirectMatch 404 /\\.svn(/|$)

相關網頁


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix。將永久鏈結加入書籤。

砍掉所有 .svn 目錄(使用 find) 有 15 則回應

  1. jeffhung 說道:

    那為什麼不直接用 svn export 就好?

  2. Tsung 說道:

    Mmm.... 主要是不知道有 svn export 的參數可以用, 大感恩. Orz

  3. ihower 說道:

    < DirectoryMatch "^/.*/\.svn/">
    ErrorDocument 403 /404.html
    Order allow,deny
    Deny from all
    Satisfy All

  4. Tsung 說道:

    嗯嗯~ 我現在就是用這個方法解決的.. XD
    只是覺得這樣子似乎還要多過一層 Apache, 所以才想直接把目錄砍了~ 😛

  5. 小海 說道:

    解法在 comments 都出現了
    RoR 的方式好像是用 svn checkout 然後像 ihower 說的方式用 apache 來避開 .svn 目錄
    我在 deploy 的時候也是用 svn export :p

  6. Tsung 說道:

    呵呵, 對呀, 主要是我沒有想到有 svn export 這個可以用, 感謝各位前輩的提醒呀.. Orz..

  7. shelling 說道:

    用 svk 做 checkout 也可以解決 :p

  8. Tsung 說道:

    svk 的 checkout?? 這個我倒是沒研究過, svk 的 checkout 不是一樣嗎?... @.@a...

  9. jeffhung 說道:

    若不用 svn export,這是 windows 上的解法:《Shell Command - Remove .svn Folder》。

  10. Tsung 說道:

    Windows 的這招真是太神了, 沒想到可以這樣玩~ Orz...
    我也不知道 LifeType 會濾掉 , 最近 LifeType 問題還不少, 在考慮要不要轉換了... Q.Q

  11. c9s 說道:

    svk 的 checkout 不會有 .svn 資料夾

  12. Tsung 說道:

    原來如此, svk 還真方便 😀
    感謝指點 Orz..

  13. Magento 說道:

    试下, find -type f ! -path '*/.svn/*'

發表迴響