subversion
Subversionの管理用ディレクトリ .svn だけを取り除きたい → tar の exclude オプションを使え
Subversionで管理しているソースコードを配布用にアーカイブするときなど、 .svn というSubversionのレポジトリからcheckoutしたときに生成される管理用ディレクトリだけを 取り除きたいときがあります。
いままでは、以下の方法で .svn を削除するか
$ rm -rf `find ./ -name ".svn"`
レポジトリからexportし直すことで対処してきました。
しかし、tar の exclude オプションを使えばもっとスマートに .svn 取り除くことができることが判明。
Subversion で svn add したときにテキストファイルなのにバイナリとみなされた場合
subversionは非常にすばらしいのですが、 単なるテキストファイルなのに、svn add したときにバイナリとして認識されることが 結構あってそれがいやです。
いつも、そのたびにどうやって解消するかグーグルさまに問い合わせているので、 (もうその必要が無いように)ここにメモ。
Subversion, 更新したファイルだけを列挙する方法
コマンドラインで使用する svn クライアントの場合...
$ svn st | egrep "^M"
※svn st は svn status の省略形
svn status
チェックアウトしてきたローカルのレポジトリのステータス確認コマンド
ファイルごとに、M とか A, ? などマークを出力してくれるため、grep や egrep と 組み合わせることで、簡単に状況がわかります。
深くネストしたディレクトリごとチェックアウトしていても、 (チェックアウトした)ルートディレクトリで これを実行すればすぐに状況がわかるので楽です。
その他、 Subversionレポジトリに関連づけされていない(ローカルにだけ存在している)ファイルだけを 列挙するには、
$ svn st | egrep "^\?"
本当は svn add して Subversion に登録しなければならないファイルだが、忘れている・・・ ということがよくあるので(コマンドラインで作業している場合) このコマンドは結構重宝します。