プラグインを利用する
=====================

.. Information on how to use plugins in Bazaar.

プラグインとは？
-----------------

プラグインは主にサードパーティによって作られたBazaarのための外部コンポーネントです。
プラグインは新しい機能を追加することでBazaarを補強する能力があります。
プラグインは現在の機能を置き換えることでBazaarのふるまいを変更することもできます。
プラグインのサンプルのアプリケーションは次のとおりです:

* コマンドをオーバーライドする
* 新しいコマンドを追加する
* 追加のネットワーク転送機能を提供する
* ログの出力をカスタマイズする

プラグインを通してできるカスタマイズの可能性は際限がありません。
実際、開発者が新しい機能を公式のコードベースに含める前にテストするための方法としてプラグインは機能します。
プラグインは機能の引退時でも同様に役立ちます。たとえば廃止されたファイルのフォーマットがある日Bazaarのコアから除外されるかもしれませんが\
代わりにプラグインとして利用できます。

プラグインはユーザーにとって、外部の開発者にとっても、Bazaar自身にもよいものです。

プラグインが見つかる場所
-------------------------

http://wiki.bazaar.canonical.com/BzrPlugins ページで
プラグインのリストが見つかります。

プラグインをインストールする方法
---------------------------------

プラグインのインストール作業はとても簡単です！　まだ作られていなければ、
Bazaarの設定ディレクトリの元で ``plugins`` ディレクトリを作ります。
Unix の場合は ``~/.bazaar/`` でWindowsの場合は
``C:\Documents and Settings\<username>\Application Data\Bazaar\2.0\`` です。
このディレクトリの範囲内では(下記では$BZR_HOMEとして言及される) それぞれのプラグインは独自のサブディレクトリに設置されます。

プラグインはとりわけBazaarのブランチとよく連携します。
たとえば、 GNU/Linux のメインのユーザーアカウント用に bzrtools
プラグインをインストールするためには、次のコマンドを実行します::

    bzr branch http://panoramicfeedback.com/opensource/bzr/bzrtools
    ~/.bazaar/plugins/bzrtools

プラグインをインストールするディレクトリの名前はPythonの有効な識別子でなければなりません。
このことはディレクトリは特定の文字だけを含まなければならないことを意味します。とりわけハイフン (``-``) を含んではなりません。
``bzr-gtk`` を ``$BZR_HOME/plugins/bzr-gtk`` にインストールするよりも、 ``$BZR_HOME/plugins/gtk`` にインストールします。

プラグインの代替用の場所
-------------------------

必要なパーミッションがあれば、プラグインをシステム全体のベースに
インストールすることもできます。

環境変数 ``BZR_PLUGIN_PATH`` をプラグインが含まれるディレクトリに
設定することで個人のプラグインの場所を上書きできます。
(詳細な解説は
`ユーザーリファレンス <../user-reference/configuration-help.html#bzr-plugin-path>`_ 
を参照してください。)


インストールされたプラグインの一覧を表示する
---------------------------------------------

これを行うためには、次のようにpluginsコマンドを使います::

    bzr plugins

それぞれのプラグインの名前、場所とバージョンが表示されます。

プラグインによって追加された新しいコマンドは ``bzr help commands`` を実行することで見ることができます。
プラグインによって提供されたコマンドはブラケットの中のプラグインの名前に従って表示されます。

人気のあるプラグイン
--------------------

次の表は人気のあるプラグインのサンプルです。

  ================ ================= ==================================
  カテゴリ         名前              説明
  ================ ================= ==================================
  GUI              QBzr              QtベースのGUIツール
  GUI              bzr-gtk           GTKベースのGUIツール
  GUI              bzr-eclipse       Eclipseとの統合
  General          bzrtools          その他。shelfを含めた機能の強化
  General          difftools         外部の差分ツールヘルパー
  General          extmerge          外部のマージツールヘルパー
  Integration      bzr-svn           Subversionをリポジトリとして利用する
  Migration        cvsps             CVSパッチセットを移行させる
  ================ ================= ==================================

あなた独自のプラグインを書きたい場合、難しいことではありません。
始めるためには付録の `プラグインを書く <writing_a_plugin.html>`_
の項目をご覧ください。
