バージョン管理システムBazaarがよさげ

Bazaar Explorer の差分表示

前回書いたとおり、このブログは「Twenty Twelve」というテーマをカスタマイズしています。その際、Bazaar というバージョン管理システムを使ってみました。
なお、本ブログでは特に断りがない場合は、OSとしてUbuntu Linuxを前提にしています。Windows環境でも Bazaar および Bazaar Explorer は利用できますが、状況は若干異なるかも知れません。

バージョン管理って何

バージョン管理とは、簡単にいうとソフトウェア開発時にソースコードの変更を段階的に記録していくものです。

バージョン管理を行うといつ、どのソースファイルのどの部分を変更したかの記録が残ります。するとうっかり間違った変更を行なってもある時点まで巻き戻したり、簡単に戻せるため、うまく行くかどうか分からないけれど、テスト的に大掛かりな変更をしたい場合でも心置き無く試せます。
また、別のプロジェクトで同様の変更を行いたい時にあの時どうしたっけ、という時には履歴を見れば変更内容が一目瞭然です。

というように色々メリットはあるのですが、使い慣れないと折角変更したソースを誤操作で失ったり、集中型と呼ばれるタイプではサーバーが必要で気軽に運用できない等デメリットもあるのです。

バージョン管理システムの種類

バージョン管理システムには集中型と分散型に大きく分けられます。集中型はサーバーに変更履歴を蓄積します。対して、分散型はローカルにも変更履歴を置くことができます。つまり、中央にサーバーが無くても運用できる訳です。

集中型としては CVS とか Subversion が有名です。Subversion は以前使っていたことがありますが、やはりサーバーが面倒でした。

Bazaar は分散型バージョン管理システムになります。分散型の有名ドコロでは Git とか、Mercurial が有名ですが、残念ながら Bazaar は少々マイナーなツールです。

Bazaar を使った理由

今後のプログラムの開発に分散型のバージョン管理システムを導入しようと目論んでおり、以前から下調べをしていました。そこで気になった Bazaar を今回のテーマカスタマイズに使用してみました。

使ってみると下記の点でポイントが高いと感じました。

  • 使いやすいGUIのツール「Bazaar Explorer」がある。
  • ファイルマネージャーの Nautilus では Bazaar で管理されているとその旨が表示され、ファイルには変更状態がオーバーレイ表示される。
  • バイナリファイルも扱えるので画像ファイルも一緒に管理できる。
  • リポジトリ形式に単一ディレクトリで管理できるタイプがある。

Bazaar はコマンドラインで操作しますが、私は職業プログラマーではないので利用頻度も少なくコマンドを忘れがちです。なので使いやすいGUIツールは大歓迎です。
また、ファイルマネージャーで普通のディレクトリと区別が付くのはありがたいです。Bazaar は隠しディレクリ内に管理情報を格納するため、一見すると単に圧縮ファイルを展開したものと同じように見えます。ファイルマネージャーに Bazaar の管理ディレクトリであると表示されるとうっかり勘違いして捨てたり、触ったりする危険が少なくなります。

今回のように WordPress のテーマのカスタマイズやプラグイン開発の場合はビルドを必要としないため、直接アプリ内に組み込んで開発できます。そのような場合、バージョン管理ツールの都合で特殊なディレクトリ構造になる場合は組込みが難しくなります。幸い Bazaar ではリポジトリの形式の一つに単一ディレクトリで管理できるものがあるため、問題なく組み込んだ状態でカスタマイズが行えました。

あと一般的な Bazaar の特徴としては日本語ファイル名が問題なく使えることが挙げられます。普通はソースファイルに日本語は使いませんが、開発環境のパスに含まれていたり、「最初にお読みください.txt」みたいなファイルがあるかもしれないので日本語環境では結構重要だと思います。

という事で、バージョン管理を必要とする場合は Bazaar をしばらく使おうかなと思います。

Bazaar の入手

Ubuntu の場合はリポジトリに含まれているため、下記のコマンドでインストールできます。Bazaar 本体は依存関係で勝手にインストールしてくれます。

Windows版はBazaarの本家からダウンロードして、インストールを行ってください。

$ sudo apt-get install bzr-explorer nautilus-bzr

Bazaar本家 http://bazaar.canonical.com/en/

スクリーンショット等

Bazaar Explorer のスクリーンショットをいくつか載せておきます。

起動直後のBazaar Explorer

起動直後のBazaar Explorer

起動直後のBazaar Explorer

リポジトリを開いた状態

リポジトリを開いた状態

リポジトリを開いた状態

Bazaar Explorer の履歴表示です。公開していないメールアドレスや名前が出ていたので一部画像処理しています。

Bazaar Explorer の履歴表示

Bazaar Explorer の履歴表示

組み込みの差分表示です。左側が古いリビジョン23で右側が新しいリビジョン24のソースファイルです。青が変更、緑が追加、赤が削除を表しており、変更内容が一目でわかります。

Bazaar Explorer の差分表示

Bazaar Explorer の差分表示

ファイルが変更されるとこうなります。分かりやすいです。

Bazaar Explorer の変更時の表示

Bazaar Explorer の変更時の表示

Nautilus の表示。変更されていないファイルは青いマークが付きます。また、右クリックで表示されるメニューに少ないですが関連コマンドが追加されています。

Nautilus の表示

Nautilus の表示