/breezy/unstable

To get this branch, use:
bzr branch https://code.breezy-vcs.org/breezy/unstable

« back to all changes in this revision

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

  • Committer: Jelmer Vernooij
  • Date: 2017-05-24 01:39:33 UTC
  • mfrom: (3815.3776.6)
  • Revision ID: jelmer@jelmer.uk-20170524013933-ir4y4tqtrsiz2ka2
New upstream snapshot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
What is a hook?
5
5
---------------
6
6
 
7
 
One way to customize Bazaar's behaviour is with *hooks*.  Hooks allow you to
8
 
perform actions before or after certain Bazaar operations.  The operations
 
7
One way to customize Breezy's behaviour is with *hooks*.  Hooks allow you to
 
8
perform actions before or after certain Breezy 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
11
<../user-reference/index.html#hooks>`_ in the User Reference.
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 breezy 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 ``bzrlib.hooks.install_lazy_named_hook`` function. This removes the need
 
57
To reduce the start-up time of Breezy it is also possible to "lazily" install hooks,
 
58
using the ``breezy.hooks.install_lazy_named_hook`` function. This removes the need
59
59
to load the module that contains the hook point just to install the hook. Here's lazy
60
60
version of the example above::
61
61
 
62
 
    from bzrlib import hooks
 
62
    from breezy import hooks
63
63
 
64
64
    def post_push_hook(push_result):
65
65
        print "The new revno is %d" % push_result.new_revno
66
66
 
67
67
 
68
 
    hooks.install_lazy_named_hook('bzrlib.branch', 'Branch.hooks',
 
68
    hooks.install_lazy_named_hook('breezy.branch', 'Branch.hooks',
69
69
        'post_push', post_push_hook, 'My post_push hook')
70
70
 
71
71
Debugging hooks
74
74
To get a list of installed hooks (and available hook points), use the hidden
75
75
``hooks`` command::
76
76
 
77
 
    bzr hooks
 
77
    brz hooks
78
78
 
79
79
 
80
80
Example: a merge plugin
82
82
 
83
83
Here's a complete plugin that demonstrates the ``Merger.merge_file_content``
84
84
hook.  It installs a hook that forces any merge of a file named ``*.xml``
85
 
to be a conflict, even if Bazaar thinks it can merge it cleanly.
 
85
to be a conflict, even if Breezy thinks it can merge it cleanly.
86
86
 
87
87
``merge_xml.py``::
88
88
 
91
91
  Always conflicts if both branches have changed the file.
92
92
  """
93
93
  
94
 
  from bzrlib.merge import PerFileMerger, Merger
 
94
  from breezy.merge import PerFileMerger, Merger
95
95
  
96
96
  def merge_xml_files_hook(merger):
97
97
      """Hook to merge *.xml files"""
111
111
 
112
112
``merge_file_content`` hooks are executed for each file to be merged.  For
113
113
a more a complex example look at the ``news_merge`` plugin that's bundled with
114
 
Bazaar in the ``bzrlib/plugins`` directory.
 
114
Breezy in the ``breezy/plugins`` directory.
115
115