/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/ja/user-guide/hooks.txt

  • Committer: John Arbash Meinel
  • Date: 2009-06-12 18:05:15 UTC
  • mto: (4371.4.5 vila-better-heads)
  • mto: This revision was merged to the branch mainline in revision 4449.
  • Revision ID: john@arbash-meinel.com-20090612180515-t0cwbjsnve094oik
Add a failing test for handling nodes that are in the same linear chain.

It fails because the ancestry skipping causes us to miss the fact that the two nodes
are actually directly related. We could check at the beginning, as the 
code used to do, but I think that will be incomplete for the more-than-two
heads cases.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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