バージョンの情報をエクスポートする
最新のリビジョン番号を得る
ビルドスクリプトの中で最新のリビジョン番号だけが必要な場合、 revno コマンドを使用できます:
$ bzr revno 3104
詳細なバージョン情報を得る
最新バージョンに関する詳細な情報を出力するには version-info コマンドを使用できます:
$ bzr version-info revision-id: [email protected] date: 2007-12-11 17:51:18 +0000 build-date: 2007-12-13 13:14:51 +1000 revno: 3104 branch-nick: bzr.dev
オペレーティングシステムツールもしくはスクリプトを使用して出力を簡単にフィルタリングできます。 例です(Linux/Unix):
$ bzr version-info | grep ^date date: 2007-12-11 17:51:18 +0000
より高度な後処理のためにすべてのリビジョンに関するバージョン情報が必要であれば、 --all オプションはその情報を実際にダンプします。
Pythonのプロジェクト
プロジェクトファイルをビルドするためにMakefileを使う場合、 次のようにバージョン情報用のファイルを簡単に生成できます:
library/_version.py: bzr version-info --format python > library/_version.py
これは3つのディレクトリを含むファイルを生成します:
- version_info: 現在の状態に関する基本情報を含むディレクトリ。
- revisions: コミット時間とコミットメッセージと一緒に、 ツリーの履歴の中のすべてのリビジョンのリストを表示するディクショナリ。 --all もしくは --include-history が提供されない限り、デフォルトではこれは空です。 リリースバージョンに含まれる、バグ修正などを追跡したい場合に便利です。 しかし多くのプロジェクトに対してこれは必要以上の情報です。
- file_revisions: プロジェクトのすべてのファイルに対する最終修正のリビジョンのリストを示すディクショナリ。 これは $Id$ キーワードがCVSで管理されたファイルと同じように使われます。 最終修正の日付は revisions マップで探すことで決定されます。 デフォルトではこれは空で、 --all もしくは --include-file-revisions によってのみ有効になります
別のフォーマットでバージョン情報を得る
任意のフォーマットのバージョン情報を取得するためにBazaarはテンプレートベースの方法をサポートします。 version-info への --custom オプションは作業ツリーのステータスに基づいて拡張された変数を含む --template 引数を提供することで使用できます。
たとえば、現在のリビジョン番号を含むフォーマットされた文字列を伴うCヘッダーファイルを生成するには:
bzr version-info --custom \ --template="#define VERSION_INFO \"Project 1.2.3 (r{revno})\"\n" \ > version_info.h
{revno} は作業ツリーのリビジョン番号に置き換えされます。 (上記の例があなたのOSで動作しない場合、一行ですべてのコマンドを入力してみてください) テンプレートの中で利用できる変数の詳細な情報に関しては、 Bazaarのユーザーリファレンスの Version Info を参照してください。
特定の言語でバージョン情報をダンプするために予め定義されるフォーマットはは現在開発段階にあります。 この領域の要求に関してはメーリングリストで私達開発者に連絡して下さるようお願いします。
チェッククリーン
プロジェクトの内容に関する大抵の情報はリビジョンエントリを読むだけで簡単に決定できます。 しかしながら、作業ツリーがパッケージされたときにそれが最新であったこと、 もしくはローカルな修正があったことを知るためには便利です。 --all もしくは --check-clean のどちらかを提供することで bzr は作業ツリーを検査して、 version_info clean を設定します。 同様に modified が適切である場合に file_revisions でエントリを設定します。