履歴を閲覧する

bzr log

bzr log コマンドは以前のリビジョンの一覧を表示します。

bzr diff と同じように, bzr log-r の引数をサポートします:

% bzr log -r 1000..          # リビジョン1000とその後のすべて
% bzr log -r ..1000          # r1000とそれまでのすべて
% bzr log -r 1000..1100      # 1000から1100までの変更
% bzr log -r 1000            # リビジョン1000のみの変更

マージされたリビジョンを見る

Bazaarのような分散型のVCSは集中型のVCSツールよりもマージが非常に簡単なので、 ブランチの履歴は、メインラインから分離してその後メインラインにマージされるようなラインを含むことがあります。 技術的には、無数のリビジョンノード間の関係は無閉路有向グラフ(Directed Acyclic Graph: DAG)として知られます。

多くの場合、まずはメインラインを見てそのあとに別のラインを見たいものです。 そのため、log のデフォルトの動作はメインラインを表示して、マージされたリビジョンがあるある場所を指示します。:

bzr log -n0 -rX

全てのリビジョンと全てのマージされたリビジョンを見る場合は:

bzr log -n0

-n オプションは表示するレベルを意味し、0の場合は全てを意味することに注意してください。 もしそれがゴミゴミしているなら、値を変更して調整することが容易にできます。 たとえば、もしあなたのプロジェクトがトップレベルのgatekeeperがチームレベルのgatekeeperからマージするように構成されている場合、bzr log はトップレベルgatekeeperの履歴だけを表示し、 bzr log -n2 はチームのgatekeeperの履歴を表示します。 しかし、ほとんどの場合においては -n0 で十分でしょう。

出力をチューニングする

log コマンドは出力を調整するために便利ないくつかのオプションを持ちます。次のものが含まれます:

  • --forward はログを年代順で表します。
    すなわち最新のリビジョンが最後に表示されます。
  • --limit オプションは表示されるリビジョンの最大数を制御します。

出力の調整方法の詳しい情報に関してはユーザーリファレンスのlogコマンドのオンラインヘルプを参照してください。

ファイルの履歴を閲覧する

特定のファイルのみに適用されるように履歴をフィルタリングすることが便利であることがよくあります。 これを行うためには、ファイルの名前を log コマンドに提供します:

bzr log foo.py

古いバージョンのファイルを閲覧する

指定されたバージョンでファイルの内容を取得するには、次のように cat コマンドを使います:

bzr cat -r X file

X はリビジョンの識別子で file はファイルの名前です。 これは出力を標準出力ストリームに送信しますので、次のように閲覧ツール( lessmore など)に出力をパイプで渡すかリダイレクトするといいでしょう:

bzr cat -r -2 foo.py | less
bzr cat -r 1 foo.py > /tmp/foo-1st-version.py

グラフィカルな履歴ビューワ

履歴のブラウジングはGUIツールが人生を本当に楽にしてくれる領域です。 QBzrとbzr-gtkを含めてこの機能を提供するBazaarのプラグインがたくさんあります。 これらがまだインストールされていなければ プラグインを利用する で詳細なインストール方法をご覧ください。

QBzrからグラフィカルビューワを使うには:

bzr qlog

bzr-gtkからグラフィカルビューワを使うためには:

bzr viz

viz は実際には visualize の組み込みのエイリアスなので望むのであれば長い方のコマンド名を使います。