/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/en/user-guide/hooks.txt

  • Committer: Jelmer Vernooij
  • Date: 2017-05-21 12:41:27 UTC
  • mto: This revision was merged to the branch mainline in revision 6623.
  • Revision ID: jelmer@jelmer.uk-20170521124127-iv8etg0vwymyai6y
s/bzr/brz/ in apport config.

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/hooks-help.html>`_ in the User Reference.
 
11
<../user-reference/index.html#hooks>`_ 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
23
23
creating a new command, this plugin will define and install the hook.  Here's
24
24
an example::
25
25
 
26
 
    from bzrlib import branch
 
26
    from brzlib import branch
27
27
 
28
28
 
29
29
    def post_push_hook(push_result):
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 ``brzlib.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 brzlib 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('brzlib.branch', 'Branch.hooks',
 
69
        'post_push', post_push_hook, 'My post_push hook')
 
70
 
57
71
Debugging hooks
58
72
---------------
59
73
 
77
91
  Always conflicts if both branches have changed the file.
78
92
  """
79
93
  
80
 
  from bzrlib.merge import PerFileMerger, Merger
 
94
  from brzlib.merge import PerFileMerger, Merger
81
95
  
82
96
  def merge_xml_files_hook(merger):
83
97
      """Hook to merge *.xml files"""
84
 
      return MergeXMLFiles(merger)
 
98
      return AlwaysConflictXMLMerger(merger)
85
99
  
86
100
  class AlwaysConflictXMLMerger(PerFileMerger):
87
101
  
97
111
 
98
112
``merge_file_content`` hooks are executed for each file to be merged.  For
99
113
a more a complex example look at the ``news_merge`` plugin that's bundled with
100
 
Bazaar in the ``bzrlib/plugins`` directory.
 
114
Bazaar in the ``brzlib/plugins`` directory.
101
115