~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Andrew Bennetts
  • Date: 2010-07-29 11:17:57 UTC
  • mfrom: (5050.3.17 2.2)
  • mto: This revision was merged to the branch mainline in revision 5365.
  • Revision ID: andrew.bennetts@canonical.com-20100729111757-018h3pcefo7z0dnq
Merge lp:bzr/2.2 into lp:bzr.

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
perform actions before or after certain Bazaar operations.  The operations
9
9
include ``commit``, ``push``, ``pull``, and ``uncommit``.
10
10
For a complete list of hooks and their parameters, see `Hooks
11
 
<../user-reference/index.html#hooks>`_ in the User Reference.
 
11
<../user-reference/hooks-help.html>`_ in the User Reference.
12
12
 
13
13
Most hooks are run on the client, but a few are run on the server.  (Also
14
14
see the `push-and-update plugin`_ that handles one special case of
54
54
itself.  The third argument is a name ``'My post_push hook'``, which can be
55
55
used in progress messages and error messages.
56
56
 
57
 
To reduce the start-up time of Bazaar it is also possible to "lazily" install hooks,
58
 
using the ``bzrlib.hooks.install_lazy_named_hook`` function. This removes the need
59
 
to load the module that contains the hook point just to install the hook. Here's lazy
60
 
version of the example above::
61
 
 
62
 
    from bzrlib import hooks
63
 
 
64
 
    def post_push_hook(push_result):
65
 
        print "The new revno is %d" % push_result.new_revno
66
 
 
67
 
 
68
 
    hooks.install_lazy_named_hook('bzrlib.branch', 'Branch.hooks',
69
 
        'post_push', post_push_hook, 'My post_push hook')
70
 
 
71
57
Debugging hooks
72
58
---------------
73
59
 
95
81
  
96
82
  def merge_xml_files_hook(merger):
97
83
      """Hook to merge *.xml files"""
98
 
      return AlwaysConflictXMLMerger(merger)
 
84
      return MergeXMLFiles(merger)
99
85
  
100
86
  class AlwaysConflictXMLMerger(PerFileMerger):
101
87