subversionリポジトリの部分的な取得

FreeBSDのソース管理システムはsubversionに移行しまして、誰でも閲覧できる状態になっています。下記、URLを指定するとFreeBSDプロジェクトが管理する全てのソースを取得することができます。

svn://svn.freebsd.org/base

しかし、とても巨大なため、その一部分が欲しいことがほとんどと思います。

単純にサブディレクトリを指定して、取ってくることもできますが、後から別なディレクトリも必要だったなどと言う場合に備えて、なるべくbase以下のディレクトリ構造を残したままで一部分だけ取得する方法を考えてみました。

% svn checkout –depth=immediates svn://svn.freebsd.org/base

まずは上記のコマンドでbaseディレクトリ直下のファイルやディレクトリだけを取得します。次にもしheadだけが欲しい場合はbase/headディレクトリにて次のコマンドを実行します。

% svn update –set-depth=infinity

これでサブツリーの残りのファイルを全て取得することができます。–set-depthにimmediatesを渡すと直下のファイルやディレクトリしか取得しませんので、svn lsなどと組み合わせて好きなサブツリーだけを取得できるようになります。