Boost の Release 版のみを Git リポジトリから持ってくる

Boost のバージョンが上がる度に,毎回 手動でファイルをダウンロードするのは,少し面倒ですよね.
そういう場合には, Git リポジトリを使うのが便利ですが,単に

git clone git://github.com/ryppl/boost-svn.git

とした場合,開発版も全部一緒にダウンロードしてしまいます.


まぁ,それでも普通は困らないですが,リリースだけあればいい,という場合には,少しばかりオーバーに感じてしまうもの.

そういう場合は, git fetch --tags で,タグの付いた版(つまりリリース版)のみをダウンロードできます.


以下,具体的な手順です.


まず,リポジトリの中身を格納するためのディレクトリを作ります.

mkdir boost && cd boost

次に,とりあえず空の Git リポジトリを作ります.

git init .

リポジトリは作るだけで十分です. commit する必要はありません.

そしたら,対象のリポジトリを remote に追加し, git fetch --tags します.

git remote add origin git://github.com/ryppl/boost-svn.git
git fetch --tags

remote の名前は origin にしましたが,これは何でもいいです.


後は git tag で 無事にダウンロードできていることを確認したら,

git checkout Boost_1_47_0

等で,必要なバージョンを checkout すれば,無事にファイルを入手できるはずです.


Boost のバージョンが上がった場合には,

git fetch --tags

でタグを持ってきて,

git checkout Boost_1_XX_Y

で最新のバージョンを checkout すれば,最新のバージョンに更新できます.

なお, --tags を付けずに

git fetch

と入力してしまうと,開発版を含めた全てのデータがダウンロードされてしまうため,そこは注意です.


さて,こうやってリリースのみをダウンロードした場合, Git を使うことによるオーバーヘッド(つまり .git ディレクトリの大きさ)は,おおよそ 166 MB ほどになります.
真面目に clone した場合にはオーバーヘッドは 231 MB ほどになるので, --tags を使うことで 60 〜 70 MB ほどディスク容量を節約できる,ということです.


もちろん, Git を使わなければ,これらのオーバーヘッドは そもそも かからないわけですが,
何らかの事情で過去のバージョンに戻したりする場合や,ビルド後の後片付けを git clean で行いたい場合など,
Git があると便利な局面は意外と多いので,これを機に Git でのバージョン管理を初めてみるといいんじゃないでしょうか.