SVNでチェックアウトしたくないディレクトリを避ける

比較的大きな規模のソースコードをSVNでバージョン管理していると、
必要なディレクトリのみをチェックアウトして、
その他はローカルストレージを圧迫しないようダウンロードしたくない場合があります。
そんな時私は

$ svn co <リポジトリのURL>/<ディレクトリ>/.../<ディレクトリ>

でチェックアウトします。
もし離れた複数のディレクトリを取得したいなら、
ローカルの別々のディレクトリで上記を繰り返して、
サーバ上のそれぞれのディレクトリをチェックアウトしてきます。
ローカル上の管理がバラバラしてしまいますし、
それら複数にまたがるファイルのまとめてのコミットができないのは欠点ですが、
それでもそう極端に困ったことはなかったため
長年そんなことをしていました。

しかし最近になっていい方法があることに気付きました。
一番最初に

$ svn co --depth immediates <リポジトリのURL>

を実行して第一階層のディレクトリだけを取得し、
その後各ディレクトリにて

$ svn up --set-depth immediates

を実行してそこでの第一階層のディレクトリだけをまた取得していくと、
必要なディレクトリだけが取得・更新できるようになるのです。
必要なディレクトリ下で再帰的にやっていけばいいのですが、
それより下はサブディレクトリ含めて全部欲しい場合

$ svn up --set-depth infinity

を一度実行するだけで済みます。
SVN使いにとっては当たり前のことかもしれませんが、
今まで結構適当に使ってきたので、未開拓の機能はまだまだありそうです。

広告