バージョンの情報をエクスポートする

最新のリビジョン番号を得る

ビルドスクリプトの中で最新のリビジョン番号だけが必要な場合、 revno コマンドを使用できます:

$ bzr revno
3104

詳細なバージョン情報を得る

最新バージョンに関する詳細な情報を出力するには version-info コマンドを使用できます:

$ bzr version-info
revision-id: pqm@pqm.ubuntu.com-20071211175118-s94sizduj201hrs5
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 でエントリを設定します。