/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
4634.99.1 by Naoki INADA
import doc-ja rev90
1
フックを利用する
2
================
3
4
フックとは?
5
------------
6
7
Bazaarのふるまいをカスタマイズする1つの方法は *フック(hook)* です。
8
フックによって特定のBazaarの特定のオペレーションの前後でアクションを実行できます。
9
オペレーションは ``commit`` 、 ``push`` 、 ``pull`` 、と ``uncommit`` を含みます。
10
フックとパラメータの完全なリストに関しては、ユーザーリファレンスの
11
`フック <../user-reference/bzr_man.html#hooks>`_ を参照してください。
12
13
大抵のフックはクライアントで実行されますが、サーバーで実行されるものもわずかにあります。
14
(サーバーサイドのオペレーションの特殊なケースを扱うものは `bzr-push-and-update`_ プラグインも参照。)
15
16
.. _bzr-push-and-update: https://launchpad.net/bzr-push-and-update/
17
18
19
フックを使用する
20
-----------------
21
22
フックを使用するには、 `プラグインを書きます <#writing-a-plugin>`_ 。
23
新しいコマンドを作成する代わりに、このプラグインはフックを定義してインストールします。例です::
24
25
    from bzrlib import branch
26
27
28
    def post_push_hook(push_result):
29
        print "The new revno is %d" % push_result.new_revno
30
31
32
    branch.Branch.hooks.install_named_hook('post_push', post_push_hook,
33
                                     'My post_push hook')
34
35
この例を使用するには、 ``push_hook.py`` という名前のファイルを作り
36
``plugins`` サブディレクトリに設置します。
37
(プラグインをインストールしていなければ、 ``plugins`` ディレクトリを作る必要があります)。
38
39
以上です!次回にpushすると、"The new revno is..."が表示されます。
40
もちろん、Pythonのフルパワーを思いとおりにできるので、フックはこれよりもはるかに手が込んでいます。
41
これでフックの使い方を理解したので、それらで何をするかはあなたしだいです。
42
43
プラグインのコードは2つのことを行います。
44
最初に、これは ``push`` が完了した後に実行する関数を定義します。
45
(代わりにインスタンスメソッドもしくは呼び出し可能なオブジェクトを使用することもできます。)
46
すべてのpushフックは単独の引数 ``push_result`` をとります。
47
48
2番目に、プラグインはフックをインストールします。
49
最初の引数 ``'post_push'`` はフックがインストールされている場所を特定します。
50
2番目の引数はフック自身です。3番目の引数は ``'My post_push hook'`` という名前で、
51
これは進行メッセージとエラーメッセージで使用されます。
52
53
54
フックをデバッグする
55
---------------------
56
57
インストールされたフックの一覧を表示するには、 ``hooks`` コマンドを使います::
58
59
    bzr hooks