バグトラッカー
===============

Bazaarにはコミットをプロジェクトのバグトラッカーのバグに関連づけできる機能があります。
コミットとバグの間のハイパーリンクを生成する、もしくはコミットを含むブランチで閉じた\
バグを自動的にマークするために、他のツール (もしくはフック) はこの情報を使うことができます。

コミットとバグを関連付ける
---------------------------

コミットを行うとき、 ``commit`` の ``--fixes`` オプションを利用することでバグと関連付けることができます。例です::

    $ bzr commit --fixes lp:12345 -m "Properly close the connection"

このコマンドの実行によってコミットとLaunchpdのバグ12345とリンクするBazaarのメタデータが記録されます。
異なるバグトラッカーを使う場合、( ``lp`` の代わりに) 独自のトラッカーコードを渡して代わりに使うことができます。
Bugzilla、Trac、Roundupとその他のバグ/問題トラッカーに対してこれを設定する方法の詳細に関しては、
Bazaarユーザーリファレンスの `バグトラッカーの設定`_ を参照してください。

.. _バグトラッカーの設定: ../user-reference/index.html#bug-tracker-settings

メタデータの記録 vs バグトラッカーの更新
------------------------------------------

コミット時に修正されたバグに関するメタデータの記録は完全なバグトラッカーの統合機能の中で唯一必要なものです。
Bazaarは分散型VCSなので、ユーザーがオフラインでコミットしているためバグトラッカー自身へのアクセスが不可能な場合があります。
代わりに、プロジェクトのワークフローに適切な中心位置に変更をpushするとき、\
バグトラッカーを更新するためにフックをインストールすることが推奨されます。

注: この2番目の処理段階はLaunchpadの外部もしくはホストされているブランチがスキャンされるときに
Launchpadによって提供される統合機能の一部です。

訂正をする
-----------

リビジョンとバグを関連付けるこの方法にはいくつかの制限があります。
最初のものは関連づけはコミット時のみにしかできないことです。
このことは、コミットするもしくは修正した後でバグが報告することを忘れた場合、
一般的に後から差し戻してリンクを追加できないことを意味します。

これに関連したことは関連づけは不変であるという事実です。
バグがあるコミットによって修正されたものとしてマークされたが、リビジョンがバグを十分に解決しない、
もしくは後で回帰がある場合、差し戻してリンクを削除できません。

もちろん、正しいオプションで行うために最新コミットをアンドゥする ``bzr uncommit`` が常に使われます。
これは正しくないコミットメッセージを訂正するためによく行われ、(たとえば ``--fixes`` を通した)最新コミットに
記録されたメタデータを訂正するために等しく当てはまります。

注: 正しくないリビジョンが公開される前に ``uncommit`` を行うのがベストです。
