.svn の削除方法

なんてのがあちこちで「紹介」されるのは何故?

「参考文献」なんてわざわざリンク紹介してまでご丁寧に説明しとるとこもあるし。

Subversion には良い印象なんか一つもなく、苦しめられたことしかないので、個人的にリビジョン管理が必要なら二度と使わないのだけど、チームでやる場合は、選択肢ない場合多いでしょ。なんで、いまでも渋々 Subversion と付き合っている。で、今ちょっと別件で .svn の仕様を調べようと思ったんだけど、まぁ出るわ出るわ。「.svnの削除方法」。んなこと知りてぇんじゃねー。

これ、「特定の名前を持ったディレクトリの削除方法」の間違いでねーの? あたしならソラで以下:

1 me@host: ~$ find . -type d -name '.svn' -exec rm -frv '{}' \;

今5秒で打ち込んだ。xargs 使うなり別解はいくらでもあろうけれどもな、find でやるなら -type d 入れときゃぁいいし、わざわざ -exec echo なんて付けるなら rm を verbose にする、あたしなら。

そもそも export すりゃいいね、ふつー。

「svn管理下にあったツリー」を .svn を除いて Subversion に頼らずにコピー、なら、tar と find の組み合わせでやることもあるね(※4-8追記 ここはアタシがアホでした。こっちみて。):

1 me@host: ~$ mkdir hoge
2 me@host: ~$ tar cf - `find origtree -type f '!' -path '*/.svn/*'` | tar xvf - -C hoge

ただこれ、ファイル名やフォルダ名に空白入ってちゃダメ。どういうときに使うかって、「パスに空白なんか入れてない行儀の良いプロジェクト」で、「コピーしてから削除」よりは速い、という場合に限り。.svn が大きく育ってしまってる場合とかよね。

どーでもいいが「出るわ出るわ」の仲間入りしてしまうのか、これで。あーぁ。