Mercurial > hgbook
annotate en/ch09-hook.xml @ 682:28b5a5befb08
Fold preface and intro into one
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Thu, 19 Mar 2009 20:54:12 -0700 |
parents | en/ch10-hook.xml@8366882f67f2 |
children | c838b3975bc6 |
rev | line source |
---|---|
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
3 <chapter id="chap:hook"> |
671
13513d2a128d
Add sensible names to chapters.
Bryan O'Sullivan <bos@serpentine.com>
parents:
666
diff
changeset
|
4 <?dbhtml filename="handling-repository-events-with-hooks.html"?> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
5 <title>Handling repository events with hooks</title> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
6 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
7 <para>Mercurial offers a powerful mechanism to let you perform |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
8 automated actions in response to events that occur in a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
9 repository. In some cases, you can even control Mercurial's |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
10 response to those events.</para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
11 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
12 <para>The name Mercurial uses for one of these actions is a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
13 <emphasis>hook</emphasis>. Hooks are called |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
14 <quote>triggers</quote> in some revision control systems, but the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
15 two names refer to the same idea.</para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
16 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
17 <sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
18 <title>An overview of hooks in Mercurial</title> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
19 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
20 <para>Here is a brief list of the hooks that Mercurial supports. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
21 We will revisit each of these hooks in more detail later, in |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
22 section <xref linkend="sec:hook:ref"/>.</para> |
41 | 23 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
24 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
25 <listitem><para><literal role="hook">changegroup</literal>: This |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
26 is run after a group of changesets has been brought into the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
27 repository from elsewhere.</para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
28 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
29 <listitem><para><literal role="hook">commit</literal>: This is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
30 run after a new changeset has been created in the local |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
31 repository.</para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
32 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
33 <listitem><para><literal role="hook">incoming</literal>: This is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
34 run once for each new changeset that is brought into the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
35 repository from elsewhere. Notice the difference from |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
36 <literal role="hook">changegroup</literal>, which is run |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
37 once per <emphasis>group</emphasis> of changesets brought |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
38 in.</para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
39 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
40 <listitem><para><literal role="hook">outgoing</literal>: This is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
41 run after a group of changesets has been transmitted from |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
42 this repository.</para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
43 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
44 <listitem><para><literal role="hook">prechangegroup</literal>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
45 This is run before starting to bring a group of changesets |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
46 into the repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
47 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
48 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
49 <listitem><para><literal role="hook">precommit</literal>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
50 Controlling. This is run before starting a commit. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
51 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
52 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
53 <listitem><para><literal role="hook">preoutgoing</literal>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
54 Controlling. This is run before starting to transmit a group |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
55 of changesets from this repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
56 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
57 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
58 <listitem><para><literal role="hook">pretag</literal>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
59 Controlling. This is run before creating a tag. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
60 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
61 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
62 <listitem><para><literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
63 role="hook">pretxnchangegroup</literal>: Controlling. This |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
64 is run after a group of changesets has been brought into the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
65 local repository from another, but before the transaction |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
66 completes that will make the changes permanent in the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
67 repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
68 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
69 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
70 <listitem><para><literal role="hook">pretxncommit</literal>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
71 Controlling. This is run after a new changeset has been |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
72 created in the local repository, but before the transaction |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
73 completes that will make it permanent. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
74 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
75 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
76 <listitem><para><literal role="hook">preupdate</literal>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
77 Controlling. This is run before starting an update or merge |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
78 of the working directory. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
79 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
80 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
81 <listitem><para><literal role="hook">tag</literal>: This is run |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
82 after a tag is created. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
83 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
84 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
85 <listitem><para><literal role="hook">update</literal>: This is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
86 run after an update or merge of the working directory has |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
87 finished. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
88 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
89 </listitem></itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
90 <para>Each of the hooks whose description begins with the word |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
91 <quote>Controlling</quote> has the ability to determine whether |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
92 an activity can proceed. If the hook succeeds, the activity may |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
93 proceed; if it fails, the activity is either not permitted or |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
94 undone, depending on the hook. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
95 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
96 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
97 </sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
98 <sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
99 <title>Hooks and security</title> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
100 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
101 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
102 <title>Hooks are run with your privileges</title> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
103 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
104 <para>When you run a Mercurial command in a repository, and the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
105 command causes a hook to run, that hook runs on |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
106 <emphasis>your</emphasis> system, under |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
107 <emphasis>your</emphasis> user account, with |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
108 <emphasis>your</emphasis> privilege level. Since hooks are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
109 arbitrary pieces of executable code, you should treat them |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
110 with an appropriate level of suspicion. Do not install a hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
111 unless you are confident that you know who created it and what |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
112 it does. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
113 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
114 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
115 <para>In some cases, you may be exposed to hooks that you did |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
116 not install yourself. If you work with Mercurial on an |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
117 unfamiliar system, Mercurial will run hooks defined in that |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
118 system's global <filename role="special">~/.hgrc</filename> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
119 file. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
120 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
121 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
122 <para>If you are working with a repository owned by another |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
123 user, Mercurial can run hooks defined in that user's |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
124 repository, but it will still run them as <quote>you</quote>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
125 For example, if you <command role="hg-cmd">hg pull</command> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
126 from that repository, and its <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
127 role="special">.hg/hgrc</filename> defines a local <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
128 role="hook">outgoing</literal> hook, that hook will run |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
129 under your user account, even though you don't own that |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
130 repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
131 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
132 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
133 <note> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
134 <para> This only applies if you are pulling from a repository |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
135 on a local or network filesystem. If you're pulling over |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
136 http or ssh, any <literal role="hook">outgoing</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
137 hook will run under whatever account is executing the server |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
138 process, on the server. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
139 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
140 </note> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
141 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
142 <para>XXX To see what hooks are defined in a repository, use the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
143 <command role="hg-cmd">hg config hooks</command> command. If |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
144 you are working in one repository, but talking to another that |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
145 you do not own (e.g. using <command role="hg-cmd">hg |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
146 pull</command> or <command role="hg-cmd">hg |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
147 incoming</command>), remember that it is the other |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
148 repository's hooks you should be checking, not your own. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
149 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
150 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
151 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
152 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
153 <title>Hooks do not propagate</title> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
154 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
155 <para>In Mercurial, hooks are not revision controlled, and do |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
156 not propagate when you clone, or pull from, a repository. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
157 reason for this is simple: a hook is a completely arbitrary |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
158 piece of executable code. It runs under your user identity, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
159 with your privilege level, on your machine. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
160 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
161 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
162 <para>It would be extremely reckless for any distributed |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
163 revision control system to implement revision-controlled |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
164 hooks, as this would offer an easily exploitable way to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
165 subvert the accounts of users of the revision control system. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
166 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
167 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
168 <para>Since Mercurial does not propagate hooks, if you are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
169 collaborating with other people on a common project, you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
170 should not assume that they are using the same Mercurial hooks |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
171 as you are, or that theirs are correctly configured. You |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
172 should document the hooks you expect people to use. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
173 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
174 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
175 <para>In a corporate intranet, this is somewhat easier to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
176 control, as you can for example provide a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
177 <quote>standard</quote> installation of Mercurial on an NFS |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
178 filesystem, and use a site-wide <filename role="special">~/.hgrc</filename> file to define hooks that all users will |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
179 see. However, this too has its limits; see below. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
180 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
181 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
182 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
183 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
184 <title>Hooks can be overridden</title> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
185 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
186 <para>Mercurial allows you to override a hook definition by |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
187 redefining the hook. You can disable it by setting its value |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
188 to the empty string, or change its behaviour as you wish. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
189 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
190 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
191 <para>If you deploy a system- or site-wide <filename |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
192 role="special">~/.hgrc</filename> file that defines some |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
193 hooks, you should thus understand that your users can disable |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
194 or override those hooks. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
195 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
196 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
197 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
198 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
199 <title>Ensuring that critical hooks are run</title> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
200 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
201 <para>Sometimes you may want to enforce a policy that you do not |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
202 want others to be able to work around. For example, you may |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
203 have a requirement that every changeset must pass a rigorous |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
204 set of tests. Defining this requirement via a hook in a |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
205 site-wide <filename role="special">~/.hgrc</filename> won't |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
206 work for remote users on laptops, and of course local users |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
207 can subvert it at will by overriding the hook. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
208 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
209 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
210 <para>Instead, you can set up your policies for use of Mercurial |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
211 so that people are expected to propagate changes through a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
212 well-known <quote>canonical</quote> server that you have |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
213 locked down and configured appropriately. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
214 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
215 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
216 <para>One way to do this is via a combination of social |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
217 engineering and technology. Set up a restricted-access |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
218 account; users can push changes over the network to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
219 repositories managed by this account, but they cannot log into |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
220 the account and run normal shell commands. In this scenario, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
221 a user can commit a changeset that contains any old garbage |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
222 they want. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
223 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
224 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
225 <para>When someone pushes a changeset to the server that |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
226 everyone pulls from, the server will test the changeset before |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
227 it accepts it as permanent, and reject it if it fails to pass |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
228 the test suite. If people only pull changes from this |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
229 filtering server, it will serve to ensure that all changes |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
230 that people pull have been automatically vetted. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
231 </para> |
38
b49a7dd4e564
More content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
37
diff
changeset
|
232 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
233 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
234 </sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
235 <sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
236 <title>Care with <literal>pretxn</literal> hooks in a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
237 shared-access repository</title> |
41 | 238 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
239 <para>If you want to use hooks to do some automated work in a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
240 repository that a number of people have shared access to, you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
241 need to be careful in how you do this. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
242 </para> |
41 | 243 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
244 <para>Mercurial only locks a repository when it is writing to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
245 repository, and only the parts of Mercurial that write to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
246 repository pay attention to locks. Write locks are necessary to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
247 prevent multiple simultaneous writers from scribbling on each |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
248 other's work, corrupting the repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
249 </para> |
41 | 250 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
251 <para>Because Mercurial is careful with the order in which it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
252 reads and writes data, it does not need to acquire a lock when |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
253 it wants to read data from the repository. The parts of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
254 Mercurial that read from the repository never pay attention to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
255 locks. This lockless reading scheme greatly increases |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
256 performance and concurrency. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
257 </para> |
41 | 258 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
259 <para>With great performance comes a trade-off, though, one which |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
260 has the potential to cause you trouble unless you're aware of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
261 it. To describe this requires a little detail about how |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
262 Mercurial adds changesets to a repository and reads those |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
263 changes. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
264 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
265 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
266 <para>When Mercurial <emphasis>writes</emphasis> metadata, it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
267 writes it straight into the destination file. It writes file |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
268 data first, then manifest data (which contains pointers to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
269 new file data), then changelog data (which contains pointers to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
270 the new manifest data). Before the first write to each file, it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
271 stores a record of where the end of the file was in its |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
272 transaction log. If the transaction must be rolled back, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
273 Mercurial simply truncates each file back to the size it was |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
274 before the transaction began. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
275 </para> |
41 | 276 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
277 <para>When Mercurial <emphasis>reads</emphasis> metadata, it reads |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
278 the changelog first, then everything else. Since a reader will |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
279 only access parts of the manifest or file metadata that it can |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
280 see in the changelog, it can never see partially written data. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
281 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
282 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
283 <para>Some controlling hooks (<literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
284 role="hook">pretxncommit</literal> and <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
285 role="hook">pretxnchangegroup</literal>) run when a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
286 transaction is almost complete. All of the metadata has been |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
287 written, but Mercurial can still roll the transaction back and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
288 cause the newly-written data to disappear. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
289 </para> |
41 | 290 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
291 <para>If one of these hooks runs for long, it opens a window of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
292 time during which a reader can see the metadata for changesets |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
293 that are not yet permanent, and should not be thought of as |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
294 <quote>really there</quote>. The longer the hook runs, the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
295 longer that window is open. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
296 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
297 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
298 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
299 <title>The problem illustrated</title> |
41 | 300 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
301 <para>In principle, a good use for the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
302 role="hook">pretxnchangegroup</literal> hook would be to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
303 automatically build and test incoming changes before they are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
304 accepted into a central repository. This could let you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
305 guarantee that nobody can push changes to this repository that |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
306 <quote>break the build</quote>. But if a client can pull |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
307 changes while they're being tested, the usefulness of the test |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
308 is zero; an unsuspecting someone can pull untested changes, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
309 potentially breaking their build. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
310 </para> |
134
b727a63518d4
Minor updates to race description.
Bryan O'Sullivan <bos@serpentine.com>
parents:
41
diff
changeset
|
311 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
312 <para>The safest technological answer to this challenge is to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
313 set up such a <quote>gatekeeper</quote> repository as |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
314 <emphasis>unidirectional</emphasis>. Let it take changes |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
315 pushed in from the outside, but do not allow anyone to pull |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
316 changes from it (use the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
317 role="hook">preoutgoing</literal> hook to lock it down). |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
318 Configure a <literal role="hook">changegroup</literal> hook so |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
319 that if a build or test succeeds, the hook will push the new |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
320 changes out to another repository that people |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
321 <emphasis>can</emphasis> pull from. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
322 </para> |
41 | 323 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
324 <para>In practice, putting a centralised bottleneck like this in |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
325 place is not often a good idea, and transaction visibility has |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
326 nothing to do with the problem. As the size of a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
327 project&emdash;and the time it takes to build and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
328 test&emdash;grows, you rapidly run into a wall with this |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
329 <quote>try before you buy</quote> approach, where you have |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
330 more changesets to test than time in which to deal with them. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
331 The inevitable result is frustration on the part of all |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
332 involved. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
333 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
334 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
335 <para>An approach that scales better is to get people to build |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
336 and test before they push, then run automated builds and tests |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
337 centrally <emphasis>after</emphasis> a push, to be sure all is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
338 well. The advantage of this approach is that it does not |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
339 impose a limit on the rate at which the repository can accept |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
340 changes. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
341 </para> |
41 | 342 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
343 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
344 </sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
345 <sect1 id="sec:hook:simple"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
346 <title>A short tutorial on using hooks</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
347 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
348 <para>It is easy to write a Mercurial hook. Let's start with a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
349 hook that runs when you finish a <command role="hg-cmd">hg |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
350 commit</command>, and simply prints the hash of the changeset |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
351 you just created. The hook is called <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
352 role="hook">commit</literal>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
353 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
354 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
355 <para>All hooks follow the pattern in this example.</para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
356 |
666
8fcd44708f41
Uncomment all the mangled interaction examples.
Bryan O'Sullivan <bos@serpentine.com>
parents:
660
diff
changeset
|
357 &interaction.hook.simple.init; |
134
b727a63518d4
Minor updates to race description.
Bryan O'Sullivan <bos@serpentine.com>
parents:
41
diff
changeset
|
358 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
359 <para>You add an entry to the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
360 role="rc-hooks">hooks</literal> section of your <filename |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
361 role="special">~/.hgrc</filename>. On the left is the name of |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
362 the event to trigger on; on the right is the action to take. As |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
363 you can see, you can run an arbitrary shell command in a hook. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
364 Mercurial passes extra information to the hook using environment |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
365 variables (look for <envar>HG_NODE</envar> in the example). |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
366 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
367 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
368 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
369 <title>Performing multiple actions per event</title> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
370 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
371 <para>Quite often, you will want to define more than one hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
372 for a particular kind of event, as shown below.</para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
373 |
666
8fcd44708f41
Uncomment all the mangled interaction examples.
Bryan O'Sullivan <bos@serpentine.com>
parents:
660
diff
changeset
|
374 &interaction.hook.simple.ext; |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
375 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
376 <para>Mercurial lets you do this by adding an |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
377 <emphasis>extension</emphasis> to the end of a hook's name. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
378 You extend a hook's name by giving the name of the hook, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
379 followed by a full stop (the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
380 <quote><literal>.</literal></quote> character), followed by |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
381 some more text of your choosing. For example, Mercurial will |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
382 run both <literal>commit.foo</literal> and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
383 <literal>commit.bar</literal> when the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
384 <literal>commit</literal> event occurs. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
385 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
386 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
387 <para>To give a well-defined order of execution when there are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
388 multiple hooks defined for an event, Mercurial sorts hooks by |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
389 extension, and executes the hook commands in this sorted |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
390 order. In the above example, it will execute |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
391 <literal>commit.bar</literal> before |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
392 <literal>commit.foo</literal>, and <literal>commit</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
393 before both. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
394 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
395 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
396 <para>It is a good idea to use a somewhat descriptive extension |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
397 when you define a new hook. This will help you to remember |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
398 what the hook was for. If the hook fails, you'll get an error |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
399 message that contains the hook name and extension, so using a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
400 descriptive extension could give you an immediate hint as to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
401 why the hook failed (see section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
402 linkend="sec:hook:perm"/> for an example). |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
403 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
404 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
405 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
406 <sect2 id="sec:hook:perm"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
407 <title>Controlling whether an activity can proceed</title> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
408 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
409 <para>In our earlier examples, we used the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
410 role="hook">commit</literal> hook, which is run after a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
411 commit has completed. This is one of several Mercurial hooks |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
412 that run after an activity finishes. Such hooks have no way |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
413 of influencing the activity itself. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
414 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
415 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
416 <para>Mercurial defines a number of events that occur before an |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
417 activity starts; or after it starts, but before it finishes. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
418 Hooks that trigger on these events have the added ability to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
419 choose whether the activity can continue, or will abort. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
420 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
421 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
422 <para>The <literal role="hook">pretxncommit</literal> hook runs |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
423 after a commit has all but completed. In other words, the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
424 metadata representing the changeset has been written out to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
425 disk, but the transaction has not yet been allowed to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
426 complete. The <literal role="hook">pretxncommit</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
427 hook has the ability to decide whether the transaction can |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
428 complete, or must be rolled back. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
429 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
430 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
431 <para>If the <literal role="hook">pretxncommit</literal> hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
432 exits with a status code of zero, the transaction is allowed |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
433 to complete; the commit finishes; and the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
434 role="hook">commit</literal> hook is run. If the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
435 role="hook">pretxncommit</literal> hook exits with a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
436 non-zero status code, the transaction is rolled back; the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
437 metadata representing the changeset is erased; and the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
438 <literal role="hook">commit</literal> hook is not run. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
439 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
440 |
666
8fcd44708f41
Uncomment all the mangled interaction examples.
Bryan O'Sullivan <bos@serpentine.com>
parents:
660
diff
changeset
|
441 &interaction.hook.simple.pretxncommit; |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
442 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
443 <para>The hook in the example above checks that a commit comment |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
444 contains a bug ID. If it does, the commit can complete. If |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
445 not, the commit is rolled back. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
446 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
447 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
448 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
449 </sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
450 <sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
451 <title>Writing your own hooks</title> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
452 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
453 <para>When you are writing a hook, you might find it useful to run |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
454 Mercurial either with the <option |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
455 role="hg-opt-global">-v</option> option, or the <envar |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
456 role="rc-item-ui">verbose</envar> config item set to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
457 <quote>true</quote>. When you do so, Mercurial will print a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
458 message before it calls each hook. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
459 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
460 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
461 <sect2 id="sec:hook:lang"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
462 <title>Choosing how your hook should run</title> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
463 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
464 <para>You can write a hook either as a normal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
465 program&emdash;typically a shell script&emdash;or as a Python |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
466 function that is executed within the Mercurial process. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
467 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
468 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
469 <para>Writing a hook as an external program has the advantage |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
470 that it requires no knowledge of Mercurial's internals. You |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
471 can call normal Mercurial commands to get any added |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
472 information you need. The trade-off is that external hooks |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
473 are slower than in-process hooks. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
474 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
475 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
476 <para>An in-process Python hook has complete access to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
477 Mercurial API, and does not <quote>shell out</quote> to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
478 another process, so it is inherently faster than an external |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
479 hook. It is also easier to obtain much of the information |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
480 that a hook requires by using the Mercurial API than by |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
481 running Mercurial commands. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
482 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
483 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
484 <para>If you are comfortable with Python, or require high |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
485 performance, writing your hooks in Python may be a good |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
486 choice. However, when you have a straightforward hook to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
487 write and you don't need to care about performance (probably |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
488 the majority of hooks), a shell script is perfectly fine. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
489 </para> |
37 | 490 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
491 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
492 <sect2 id="sec:hook:param"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
493 <title>Hook parameters</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
494 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
495 <para>Mercurial calls each hook with a set of well-defined |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
496 parameters. In Python, a parameter is passed as a keyword |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
497 argument to your hook function. For an external program, a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
498 parameter is passed as an environment variable. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
499 </para> |
37 | 500 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
501 <para>Whether your hook is written in Python or as a shell |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
502 script, the hook-specific parameter names and values will be |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
503 the same. A boolean parameter will be represented as a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
504 boolean value in Python, but as the number 1 (for |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
505 <quote>true</quote>) or 0 (for <quote>false</quote>) as an |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
506 environment variable for an external hook. If a hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
507 parameter is named <literal>foo</literal>, the keyword |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
508 argument for a Python hook will also be named |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
509 <literal>foo</literal>, while the environment variable for an |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
510 external hook will be named <literal>HG_FOO</literal>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
511 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
512 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
513 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
514 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
515 <title>Hook return values and activity control</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
516 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
517 <para>A hook that executes successfully must exit with a status |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
518 of zero if external, or return boolean <quote>false</quote> if |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
519 in-process. Failure is indicated with a non-zero exit status |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
520 from an external hook, or an in-process hook returning boolean |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
521 <quote>true</quote>. If an in-process hook raises an |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
522 exception, the hook is considered to have failed. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
523 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
524 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
525 <para>For a hook that controls whether an activity can proceed, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
526 zero/false means <quote>allow</quote>, while |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
527 non-zero/true/exception means <quote>deny</quote>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
528 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
529 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
530 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
531 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
532 <title>Writing an external hook</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
533 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
534 <para>When you define an external hook in your <filename |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
535 role="special">~/.hgrc</filename> and the hook is run, its |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
536 value is passed to your shell, which interprets it. This |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
537 means that you can use normal shell constructs in the body of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
538 the hook. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
539 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
540 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
541 <para>An executable hook is always run with its current |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
542 directory set to a repository's root directory. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
543 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
544 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
545 <para>Each hook parameter is passed in as an environment |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
546 variable; the name is upper-cased, and prefixed with the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
547 string <quote><literal>HG_</literal></quote>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
548 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
549 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
550 <para>With the exception of hook parameters, Mercurial does not |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
551 set or modify any environment variables when running a hook. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
552 This is useful to remember if you are writing a site-wide hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
553 that may be run by a number of different users with differing |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
554 environment variables set. In multi-user situations, you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
555 should not rely on environment variables being set to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
556 values you have in your environment when testing the hook. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
557 </para> |
37 | 558 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
559 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
560 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
561 <title>Telling Mercurial to use an in-process hook</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
562 |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
563 <para>The <filename role="special">~/.hgrc</filename> syntax |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
564 for defining an in-process hook is slightly different than for |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
565 an executable hook. The value of the hook must start with the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
566 text <quote><literal>python:</literal></quote>, and continue |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
567 with the fully-qualified name of a callable object to use as |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
568 the hook's value. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
569 </para> |
37 | 570 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
571 <para>The module in which a hook lives is automatically imported |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
572 when a hook is run. So long as you have the module name and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
573 <envar>PYTHONPATH</envar> right, it should <quote>just |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
574 work</quote>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
575 </para> |
37 | 576 |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
577 <para>The following <filename role="special">~/.hgrc</filename> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
578 example snippet illustrates the syntax and meaning of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
579 notions we just described. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
580 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
581 <programlisting>[hooks] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
582 commit.example = python:mymodule.submodule.myhook</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
583 <para>When Mercurial runs the <literal>commit.example</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
584 hook, it imports <literal>mymodule.submodule</literal>, looks |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
585 for the callable object named <literal>myhook</literal>, and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
586 calls it. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
587 </para> |
37 | 588 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
589 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
590 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
591 <title>Writing an in-process hook</title> |
37 | 592 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
593 <para>The simplest in-process hook does nothing, but illustrates |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
594 the basic shape of the hook API: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
595 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
596 <programlisting>def myhook(ui, repo, **kwargs): |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
597 pass</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
598 <para>The first argument to a Python hook is always a <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
599 role="py-mod-mercurial.ui">ui</literal> object. The second |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
600 is a repository object; at the moment, it is always an |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
601 instance of <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
602 role="py-mod-mercurial.localrepo">localrepository</literal>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
603 Following these two arguments are other keyword arguments. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
604 Which ones are passed in depends on the hook being called, but |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
605 a hook can ignore arguments it doesn't care about by dropping |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
606 them into a keyword argument dict, as with |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
607 <literal>**kwargs</literal> above. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
608 </para> |
37 | 609 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
610 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
611 </sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
612 <sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
613 <title>Some hook examples</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
614 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
615 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
616 <title>Writing meaningful commit messages</title> |
37 | 617 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
618 <para>It's hard to imagine a useful commit message being very |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
619 short. The simple <literal role="hook">pretxncommit</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
620 hook of the example below will prevent you from committing a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
621 changeset with a message that is less than ten bytes long. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
622 </para> |
37 | 623 |
666
8fcd44708f41
Uncomment all the mangled interaction examples.
Bryan O'Sullivan <bos@serpentine.com>
parents:
660
diff
changeset
|
624 &interaction.hook.msglen.go; |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
625 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
626 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
627 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
628 <title>Checking for trailing whitespace</title> |
37 | 629 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
630 <para>An interesting use of a commit-related hook is to help you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
631 to write cleaner code. A simple example of <quote>cleaner |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
632 code</quote> is the dictum that a change should not add any |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
633 new lines of text that contain <quote>trailing |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
634 whitespace</quote>. Trailing whitespace is a series of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
635 space and tab characters at the end of a line of text. In |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
636 most cases, trailing whitespace is unnecessary, invisible |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
637 noise, but it is occasionally problematic, and people often |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
638 prefer to get rid of it. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
639 </para> |
37 | 640 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
641 <para>You can use either the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
642 role="hook">precommit</literal> or <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
643 role="hook">pretxncommit</literal> hook to tell whether you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
644 have a trailing whitespace problem. If you use the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
645 role="hook">precommit</literal> hook, the hook will not know |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
646 which files you are committing, so it will have to check every |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
647 modified file in the repository for trailing white space. If |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
648 you want to commit a change to just the file |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
649 <filename>foo</filename>, but the file |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
650 <filename>bar</filename> contains trailing whitespace, doing a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
651 check in the <literal role="hook">precommit</literal> hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
652 will prevent you from committing <filename>foo</filename> due |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
653 to the problem with <filename>bar</filename>. This doesn't |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
654 seem right. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
655 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
656 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
657 <para>Should you choose the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
658 role="hook">pretxncommit</literal> hook, the check won't |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
659 occur until just before the transaction for the commit |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
660 completes. This will allow you to check for problems only the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
661 exact files that are being committed. However, if you entered |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
662 the commit message interactively and the hook fails, the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
663 transaction will roll back; you'll have to re-enter the commit |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
664 message after you fix the trailing whitespace and run <command |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
665 role="hg-cmd">hg commit</command> again. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
666 </para> |
49 | 667 |
666
8fcd44708f41
Uncomment all the mangled interaction examples.
Bryan O'Sullivan <bos@serpentine.com>
parents:
660
diff
changeset
|
668 &interaction.hook.ws.simple; |
49 | 669 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
670 <para>In this example, we introduce a simple <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
671 role="hook">pretxncommit</literal> hook that checks for |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
672 trailing whitespace. This hook is short, but not very |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
673 helpful. It exits with an error status if a change adds a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
674 line with trailing whitespace to any file, but does not print |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
675 any information that might help us to identify the offending |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
676 file or line. It also has the nice property of not paying |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
677 attention to unmodified lines; only lines that introduce new |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
678 trailing whitespace cause problems. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
679 </para> |
44
012df94a02fe
Start hook examples. First is for trailing whitespace.
Bryan O'Sullivan <bos@serpentine.com>
parents:
41
diff
changeset
|
680 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
681 <para>The above version is much more complex, but also more |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
682 useful. It parses a unified diff to see if any lines add |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
683 trailing whitespace, and prints the name of the file and the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
684 line number of each such occurrence. Even better, if the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
685 change adds trailing whitespace, this hook saves the commit |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
686 comment and prints the name of the save file before exiting |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
687 and telling Mercurial to roll the transaction back, so you can |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
688 use the <option role="hg-opt-commit">-l filename</option> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
689 option to <command role="hg-cmd">hg commit</command> to reuse |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
690 the saved commit message once you've corrected the problem. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
691 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
692 |
666
8fcd44708f41
Uncomment all the mangled interaction examples.
Bryan O'Sullivan <bos@serpentine.com>
parents:
660
diff
changeset
|
693 &interaction.hook.ws.better; |
44
012df94a02fe
Start hook examples. First is for trailing whitespace.
Bryan O'Sullivan <bos@serpentine.com>
parents:
41
diff
changeset
|
694 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
695 <para>As a final aside, note in the example above the use of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
696 <command>perl</command>'s in-place editing feature to get rid |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
697 of trailing whitespace from a file. This is concise and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
698 useful enough that I will reproduce it here. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
699 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
700 <programlisting>perl -pi -e 's,\s+$,,' filename</programlisting> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
701 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
702 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
703 </sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
704 <sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
705 <title>Bundled hooks</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
706 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
707 <para>Mercurial ships with several bundled hooks. You can find |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
708 them in the <filename class="directory">hgext</filename> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
709 directory of a Mercurial source tree. If you are using a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
710 Mercurial binary package, the hooks will be located in the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
711 <filename class="directory">hgext</filename> directory of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
712 wherever your package installer put Mercurial. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
713 </para> |
44
012df94a02fe
Start hook examples. First is for trailing whitespace.
Bryan O'Sullivan <bos@serpentine.com>
parents:
41
diff
changeset
|
714 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
715 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
716 <title><literal role="hg-ext">acl</literal>&emdash;access |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
717 control for parts of a repository</title> |
44
012df94a02fe
Start hook examples. First is for trailing whitespace.
Bryan O'Sullivan <bos@serpentine.com>
parents:
41
diff
changeset
|
718 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
719 <para>The <literal role="hg-ext">acl</literal> extension lets |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
720 you control which remote users are allowed to push changesets |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
721 to a networked server. You can protect any portion of a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
722 repository (including the entire repo), so that a specific |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
723 remote user can push changes that do not affect the protected |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
724 portion. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
725 </para> |
44
012df94a02fe
Start hook examples. First is for trailing whitespace.
Bryan O'Sullivan <bos@serpentine.com>
parents:
41
diff
changeset
|
726 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
727 <para>This extension implements access control based on the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
728 identity of the user performing a push, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
729 <emphasis>not</emphasis> on who committed the changesets |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
730 they're pushing. It makes sense to use this hook only if you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
731 have a locked-down server environment that authenticates |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
732 remote users, and you want to be sure that only specific users |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
733 are allowed to push changes to that server. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
734 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
735 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
736 <sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
737 <title>Configuring the <literal role="hook">acl</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
738 hook</title> |
49 | 739 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
740 <para>In order to manage incoming changesets, the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
741 role="hg-ext">acl</literal> hook must be used as a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
742 <literal role="hook">pretxnchangegroup</literal> hook. This |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
743 lets it see which files are modified by each incoming |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
744 changeset, and roll back a group of changesets if they |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
745 modify <quote>forbidden</quote> files. Example: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
746 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
747 <programlisting>[hooks] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
748 pretxnchangegroup.acl = python:hgext.acl.hook</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
749 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
750 <para>The <literal role="hg-ext">acl</literal> extension is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
751 configured using three sections. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
752 </para> |
49 | 753 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
754 <para>The <literal role="rc-acl">acl</literal> section has |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
755 only one entry, <envar role="rc-item-acl">sources</envar>, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
756 which lists the sources of incoming changesets that the hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
757 should pay attention to. You don't normally need to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
758 configure this section. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
759 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
760 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
761 <listitem><para><envar role="rc-item-acl">serve</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
762 Control incoming changesets that are arriving from a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
763 remote repository over http or ssh. This is the default |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
764 value of <envar role="rc-item-acl">sources</envar>, and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
765 usually the only setting you'll need for this |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
766 configuration item. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
767 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
768 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
769 <listitem><para><envar role="rc-item-acl">pull</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
770 Control incoming changesets that are arriving via a pull |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
771 from a local repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
772 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
773 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
774 <listitem><para><envar role="rc-item-acl">push</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
775 Control incoming changesets that are arriving via a push |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
776 from a local repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
777 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
778 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
779 <listitem><para><envar role="rc-item-acl">bundle</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
780 Control incoming changesets that are arriving from |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
781 another repository via a bundle. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
782 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
783 </listitem></itemizedlist> |
49 | 784 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
785 <para>The <literal role="rc-acl.allow">acl.allow</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
786 section controls the users that are allowed to add |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
787 changesets to the repository. If this section is not |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
788 present, all users that are not explicitly denied are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
789 allowed. If this section is present, all users that are not |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
790 explicitly allowed are denied (so an empty section means |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
791 that all users are denied). |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
792 </para> |
49 | 793 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
794 <para>The <literal role="rc-acl.deny">acl.deny</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
795 section determines which users are denied from adding |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
796 changesets to the repository. If this section is not |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
797 present or is empty, no users are denied. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
798 </para> |
49 | 799 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
800 <para>The syntaxes for the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
801 role="rc-acl.allow">acl.allow</literal> and <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
802 role="rc-acl.deny">acl.deny</literal> sections are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
803 identical. On the left of each entry is a glob pattern that |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
804 matches files or directories, relative to the root of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
805 repository; on the right, a user name. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
806 </para> |
49 | 807 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
808 <para>In the following example, the user |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
809 <literal>docwriter</literal> can only push changes to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
810 <filename class="directory">docs</filename> subtree of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
811 repository, while <literal>intern</literal> can push changes |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
812 to any file or directory except <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
813 class="directory">source/sensitive</filename>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
814 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
815 <programlisting>[acl.allow] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
816 docs/** = docwriter |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
817 [acl.deny] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
818 source/sensitive/** = intern</programlisting> |
49 | 819 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
820 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
821 <sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
822 <title>Testing and troubleshooting</title> |
49 | 823 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
824 <para>If you want to test the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
825 role="hg-ext">acl</literal> hook, run it with Mercurial's |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
826 debugging output enabled. Since you'll probably be running |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
827 it on a server where it's not convenient (or sometimes |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
828 possible) to pass in the <option |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
829 role="hg-opt-global">--debug</option> option, don't forget |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
830 that you can enable debugging output in your <filename |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
831 role="special">~/.hgrc</filename>: |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
832 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
833 <programlisting>[ui] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
834 debug = true</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
835 <para>With this enabled, the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
836 role="hg-ext">acl</literal> hook will print enough |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
837 information to let you figure out why it is allowing or |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
838 forbidding pushes from specific users. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
839 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
840 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
841 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
842 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
843 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
844 <title><literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
845 role="hg-ext">bugzilla</literal>&emdash;integration with |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
846 Bugzilla</title> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
847 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
848 <para>The <literal role="hg-ext">bugzilla</literal> extension |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
849 adds a comment to a Bugzilla bug whenever it finds a reference |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
850 to that bug ID in a commit comment. You can install this hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
851 on a shared server, so that any time a remote user pushes |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
852 changes to this server, the hook gets run. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
853 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
854 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
855 <para>It adds a comment to the bug that looks like this (you can |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
856 configure the contents of the comment&emdash;see below): |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
857 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
858 <programlisting>Changeset aad8b264143a, made by Joe User |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
859 <joe.user@domain.com> in the frobnitz repository, refers |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
860 to this bug. For complete details, see |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
861 http://hg.domain.com/frobnitz?cmd=changeset;node=aad8b264143a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
862 Changeset description: Fix bug 10483 by guarding against some |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
863 NULL pointers</programlisting> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
864 <para>The value of this hook is that it automates the process of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
865 updating a bug any time a changeset refers to it. If you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
866 configure the hook properly, it makes it easy for people to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
867 browse straight from a Bugzilla bug to a changeset that refers |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
868 to that bug. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
869 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
870 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
871 <para>You can use the code in this hook as a starting point for |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
872 some more exotic Bugzilla integration recipes. Here are a few |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
873 possibilities: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
874 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
875 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
876 <listitem><para>Require that every changeset pushed to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
877 server have a valid bug ID in its commit comment. In this |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
878 case, you'd want to configure the hook as a <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
879 role="hook">pretxncommit</literal> hook. This would |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
880 allow the hook to reject changes that didn't contain bug |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
881 IDs. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
882 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
883 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
884 <listitem><para>Allow incoming changesets to automatically |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
885 modify the <emphasis>state</emphasis> of a bug, as well as |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
886 simply adding a comment. For example, the hook could |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
887 recognise the string <quote>fixed bug 31337</quote> as |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
888 indicating that it should update the state of bug 31337 to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
889 <quote>requires testing</quote>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
890 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
891 </listitem></itemizedlist> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
892 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
893 <sect3 id="sec:hook:bugzilla:config"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
894 <title>Configuring the <literal role="hook">bugzilla</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
895 hook</title> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
896 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
897 <para>You should configure this hook in your server's |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
898 <filename role="special">~/.hgrc</filename> as an <literal |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
899 role="hook">incoming</literal> hook, for example as |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
900 follows: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
901 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
902 <programlisting>[hooks] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
903 incoming.bugzilla = python:hgext.bugzilla.hook</programlisting> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
904 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
905 <para>Because of the specialised nature of this hook, and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
906 because Bugzilla was not written with this kind of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
907 integration in mind, configuring this hook is a somewhat |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
908 involved process. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
909 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
910 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
911 <para>Before you begin, you must install the MySQL bindings |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
912 for Python on the host(s) where you'll be running the hook. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
913 If this is not available as a binary package for your |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
914 system, you can download it from |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
915 <citation>web:mysql-python</citation>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
916 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
917 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
918 <para>Configuration information for this hook lives in the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
919 <literal role="rc-bugzilla">bugzilla</literal> section of |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
920 your <filename role="special">~/.hgrc</filename>. |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
921 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
922 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
923 <listitem><para><envar |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
924 role="rc-item-bugzilla">version</envar>: The version |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
925 of Bugzilla installed on the server. The database |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
926 schema that Bugzilla uses changes occasionally, so this |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
927 hook has to know exactly which schema to use. At the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
928 moment, the only version supported is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
929 <literal>2.16</literal>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
930 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
931 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
932 <listitem><para><envar role="rc-item-bugzilla">host</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
933 The hostname of the MySQL server that stores your |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
934 Bugzilla data. The database must be configured to allow |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
935 connections from whatever host you are running the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
936 <literal role="hook">bugzilla</literal> hook on. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
937 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
938 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
939 <listitem><para><envar role="rc-item-bugzilla">user</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
940 The username with which to connect to the MySQL server. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
941 The database must be configured to allow this user to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
942 connect from whatever host you are running the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
943 role="hook">bugzilla</literal> hook on. This user |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
944 must be able to access and modify Bugzilla tables. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
945 default value of this item is <literal>bugs</literal>, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
946 which is the standard name of the Bugzilla user in a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
947 MySQL database. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
948 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
949 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
950 <listitem><para><envar |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
951 role="rc-item-bugzilla">password</envar>: The MySQL |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
952 password for the user you configured above. This is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
953 stored as plain text, so you should make sure that |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
954 unauthorised users cannot read the <filename |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
955 role="special">~/.hgrc</filename> file where you |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
956 store this information. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
957 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
958 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
959 <listitem><para><envar role="rc-item-bugzilla">db</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
960 The name of the Bugzilla database on the MySQL server. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
961 The default value of this item is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
962 <literal>bugs</literal>, which is the standard name of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
963 the MySQL database where Bugzilla stores its data. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
964 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
965 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
966 <listitem><para><envar |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
967 role="rc-item-bugzilla">notify</envar>: If you want |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
968 Bugzilla to send out a notification email to subscribers |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
969 after this hook has added a comment to a bug, you will |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
970 need this hook to run a command whenever it updates the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
971 database. The command to run depends on where you have |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
972 installed Bugzilla, but it will typically look something |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
973 like this, if you have Bugzilla installed in <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
974 class="directory">/var/www/html/bugzilla</filename>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
975 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
976 <programlisting>cd /var/www/html/bugzilla && |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
977 ./processmail %s nobody@nowhere.com</programlisting> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
978 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
979 <listitem><para> The Bugzilla |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
980 <literal>processmail</literal> program expects to be |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
981 given a bug ID (the hook replaces |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
982 <quote><literal>%s</literal></quote> with the bug ID) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
983 and an email address. It also expects to be able to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
984 write to some files in the directory that it runs in. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
985 If Bugzilla and this hook are not installed on the same |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
986 machine, you will need to find a way to run |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
987 <literal>processmail</literal> on the server where |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
988 Bugzilla is installed. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
989 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
990 </listitem></itemizedlist> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
991 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
992 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
993 <sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
994 <title>Mapping committer names to Bugzilla user names</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
995 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
996 <para>By default, the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
997 role="hg-ext">bugzilla</literal> hook tries to use the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
998 email address of a changeset's committer as the Bugzilla |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
999 user name with which to update a bug. If this does not suit |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1000 your needs, you can map committer email addresses to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1001 Bugzilla user names using a <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1002 role="rc-usermap">usermap</literal> section. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1003 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1004 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1005 <para>Each item in the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1006 role="rc-usermap">usermap</literal> section contains an |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1007 email address on the left, and a Bugzilla user name on the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1008 right. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1009 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1010 <programlisting>[usermap] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1011 jane.user@example.com = jane</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1012 <para>You can either keep the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1013 role="rc-usermap">usermap</literal> data in a normal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1014 <filename role="special">~/.hgrc</filename>, or tell the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1015 <literal role="hg-ext">bugzilla</literal> hook to read the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1016 information from an external <filename>usermap</filename> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1017 file. In the latter case, you can store |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1018 <filename>usermap</filename> data by itself in (for example) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1019 a user-modifiable repository. This makes it possible to let |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1020 your users maintain their own <envar |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1021 role="rc-item-bugzilla">usermap</envar> entries. The main |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1022 <filename role="special">~/.hgrc</filename> file might look |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1023 like this: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1024 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1025 <programlisting># regular hgrc file refers to external usermap file |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1026 [bugzilla] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1027 usermap = /home/hg/repos/userdata/bugzilla-usermap.conf</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1028 <para>While the <filename>usermap</filename> file that it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1029 refers to might look like this: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1030 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1031 <programlisting># bugzilla-usermap.conf - inside a hg repository |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1032 [usermap] stephanie@example.com = steph</programlisting> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1033 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1034 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1035 <sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1036 <title>Configuring the text that gets added to a bug</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1037 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1038 <para>You can configure the text that this hook adds as a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1039 comment; you specify it in the form of a Mercurial template. |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1040 Several <filename role="special">~/.hgrc</filename> entries |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1041 (still in the <literal role="rc-bugzilla">bugzilla</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1042 section) control this behaviour. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1043 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1044 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1045 <listitem><para><literal>strip</literal>: The number of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1046 leading path elements to strip from a repository's path |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1047 name to construct a partial path for a URL. For example, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1048 if the repositories on your server live under <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1049 class="directory">/home/hg/repos</filename>, and you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1050 have a repository whose path is <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1051 class="directory">/home/hg/repos/app/tests</filename>, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1052 then setting <literal>strip</literal> to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1053 <literal>4</literal> will give a partial path of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1054 <filename class="directory">app/tests</filename>. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1055 hook will make this partial path available when |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1056 expanding a template, as <literal>webroot</literal>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1057 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1058 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1059 <listitem><para><literal>template</literal>: The text of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1060 template to use. In addition to the usual |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1061 changeset-related variables, this template can use |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1062 <literal>hgweb</literal> (the value of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1063 <literal>hgweb</literal> configuration item above) and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1064 <literal>webroot</literal> (the path constructed using |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1065 <literal>strip</literal> above). |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1066 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1067 </listitem></itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1068 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1069 <para>In addition, you can add a <envar |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1070 role="rc-item-web">baseurl</envar> item to the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1071 role="rc-web">web</literal> section of your <filename |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1072 role="special">~/.hgrc</filename>. The <literal |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1073 role="hg-ext">bugzilla</literal> hook will make this |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1074 available when expanding a template, as the base string to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1075 use when constructing a URL that will let users browse from |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1076 a Bugzilla comment to view a changeset. Example: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1077 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1078 <programlisting>[web] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1079 baseurl = http://hg.domain.com/</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1080 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1081 <para>Here is an example set of <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1082 role="hg-ext">bugzilla</literal> hook config information. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1083 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1084 |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1085 &ch10-bugzilla-config.lst; |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1086 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1087 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1088 <sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1089 <title>Testing and troubleshooting</title> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1090 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1091 <para>The most common problems with configuring the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1092 role="hg-ext">bugzilla</literal> hook relate to running |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1093 Bugzilla's <filename>processmail</filename> script and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1094 mapping committer names to user names. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1095 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1096 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1097 <para>Recall from section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1098 linkend="sec:hook:bugzilla:config"/> above that the user |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1099 that runs the Mercurial process on the server is also the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1100 one that will run the <filename>processmail</filename> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1101 script. The <filename>processmail</filename> script |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1102 sometimes causes Bugzilla to write to files in its |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1103 configuration directory, and Bugzilla's configuration files |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1104 are usually owned by the user that your web server runs |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1105 under. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1106 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1107 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1108 <para>You can cause <filename>processmail</filename> to be run |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1109 with the suitable user's identity using the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1110 <command>sudo</command> command. Here is an example entry |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1111 for a <filename>sudoers</filename> file. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1112 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1113 <programlisting>hg_user = (httpd_user) |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1114 NOPASSWD: /var/www/html/bugzilla/processmail-wrapper %s</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1115 <para>This allows the <literal>hg_user</literal> user to run a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1116 <filename>processmail-wrapper</filename> program under the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1117 identity of <literal>httpd_user</literal>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1118 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1119 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1120 <para>This indirection through a wrapper script is necessary, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1121 because <filename>processmail</filename> expects to be run |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1122 with its current directory set to wherever you installed |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1123 Bugzilla; you can't specify that kind of constraint in a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1124 <filename>sudoers</filename> file. The contents of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1125 wrapper script are simple: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1126 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1127 <programlisting>#!/bin/sh |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1128 cd `dirname $0` && ./processmail "$1" nobody@example.com</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1129 <para>It doesn't seem to matter what email address you pass to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1130 <filename>processmail</filename>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1131 </para> |
49 | 1132 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1133 <para>If your <literal role="rc-usermap">usermap</literal> is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1134 not set up correctly, users will see an error message from |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1135 the <literal role="hg-ext">bugzilla</literal> hook when they |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1136 push changes to the server. The error message will look |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1137 like this: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1138 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1139 <programlisting>cannot find bugzilla user id for john.q.public@example.com</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1140 <para>What this means is that the committer's address, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1141 <literal>john.q.public@example.com</literal>, is not a valid |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1142 Bugzilla user name, nor does it have an entry in your |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1143 <literal role="rc-usermap">usermap</literal> that maps it to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1144 a valid Bugzilla user name. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1145 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1146 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1147 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1148 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1149 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1150 <title><literal role="hg-ext">notify</literal>&emdash;send email |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1151 notifications</title> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1152 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1153 <para>Although Mercurial's built-in web server provides RSS |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1154 feeds of changes in every repository, many people prefer to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1155 receive change notifications via email. The <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1156 role="hg-ext">notify</literal> hook lets you send out |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1157 notifications to a set of email addresses whenever changesets |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1158 arrive that those subscribers are interested in. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1159 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1160 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1161 <para>As with the <literal role="hg-ext">bugzilla</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1162 hook, the <literal role="hg-ext">notify</literal> hook is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1163 template-driven, so you can customise the contents of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1164 notification messages that it sends. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1165 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1166 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1167 <para>By default, the <literal role="hg-ext">notify</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1168 hook includes a diff of every changeset that it sends out; you |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1169 can limit the size of the diff, or turn this feature off |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1170 entirely. It is useful for letting subscribers review changes |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1171 immediately, rather than clicking to follow a URL. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1172 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1173 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1174 <sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1175 <title>Configuring the <literal role="hg-ext">notify</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1176 hook</title> |
64
d12a199ed472
Update hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
63
diff
changeset
|
1177 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1178 <para>You can set up the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1179 role="hg-ext">notify</literal> hook to send one email |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1180 message per incoming changeset, or one per incoming group of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1181 changesets (all those that arrived in a single pull or |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1182 push). |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1183 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1184 <programlisting>[hooks] |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1185 # send one email per group of changes |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1186 changegroup.notify = python:hgext.notify.hook |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1187 # send one email per change |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1188 incoming.notify = python:hgext.notify.hook</programlisting> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1189 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1190 <para>Configuration information for this hook lives in the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1191 <literal role="rc-notify">notify</literal> section of a |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1192 <filename role="special">~/.hgrc</filename> file. |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1193 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1194 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1195 <listitem><para><envar role="rc-item-notify">test</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1196 By default, this hook does not send out email at all; |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1197 instead, it prints the message that it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1198 <emphasis>would</emphasis> send. Set this item to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1199 <literal>false</literal> to allow email to be sent. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1200 reason that sending of email is turned off by default is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1201 that it takes several tries to configure this extension |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1202 exactly as you would like, and it would be bad form to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1203 spam subscribers with a number of <quote>broken</quote> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1204 notifications while you debug your configuration. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1205 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1206 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1207 <listitem><para><envar role="rc-item-notify">config</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1208 The path to a configuration file that contains |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1209 subscription information. This is kept separate from |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1210 the main <filename role="special">~/.hgrc</filename> so |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1211 that you can maintain it in a repository of its own. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1212 People can then clone that repository, update their |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1213 subscriptions, and push the changes back to your server. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1214 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1215 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1216 <listitem><para><envar role="rc-item-notify">strip</envar>: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1217 The number of leading path separator characters to strip |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1218 from a repository's path, when deciding whether a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1219 repository has subscribers. For example, if the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1220 repositories on your server live in <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1221 class="directory">/home/hg/repos</filename>, and |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1222 <literal role="hg-ext">notify</literal> is considering a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1223 repository named <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1224 class="directory">/home/hg/repos/shared/test</filename>, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1225 setting <envar role="rc-item-notify">strip</envar> to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1226 <literal>4</literal> will cause <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1227 role="hg-ext">notify</literal> to trim the path it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1228 considers down to <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1229 class="directory">shared/test</filename>, and it will |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1230 match subscribers against that. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1231 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1232 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1233 <listitem><para><envar |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1234 role="rc-item-notify">template</envar>: The template |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1235 text to use when sending messages. This specifies both |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1236 the contents of the message header and its body. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1237 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1238 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1239 <listitem><para><envar |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1240 role="rc-item-notify">maxdiff</envar>: The maximum |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1241 number of lines of diff data to append to the end of a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1242 message. If a diff is longer than this, it is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1243 truncated. By default, this is set to 300. Set this to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1244 <literal>0</literal> to omit diffs from notification |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1245 emails. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1246 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1247 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1248 <listitem><para><envar |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1249 role="rc-item-notify">sources</envar>: A list of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1250 sources of changesets to consider. This lets you limit |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1251 <literal role="hg-ext">notify</literal> to only sending |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1252 out email about changes that remote users pushed into |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1253 this repository via a server, for example. See section |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1254 <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1255 linkend="sec:hook:sources"/> for the sources you can |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1256 specify here. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1257 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1258 </listitem></itemizedlist> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1259 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1260 <para>If you set the <envar role="rc-item-web">baseurl</envar> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1261 item in the <literal role="rc-web">web</literal> section, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1262 you can use it in a template; it will be available as |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1263 <literal>webroot</literal>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1264 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1265 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1266 <para>Here is an example set of <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1267 role="hg-ext">notify</literal> configuration information. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1268 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1269 |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1270 &ch10-notify-config.lst; |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1271 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1272 <para>This will produce a message that looks like the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1273 following: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1274 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1275 |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1276 &ch10-notify-config-mail.lst; |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1277 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1278 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1279 <sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1280 <title>Testing and troubleshooting</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1281 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1282 <para>Do not forget that by default, the <literal |
660
21c62e09b99f
Typo and spelling corrections. Removed tex tags.
Ori Avtalion <ori@avtalion.name>
parents:
658
diff
changeset
|
1283 role="hg-ext">notify</literal> extension <emphasis>will not |
21c62e09b99f
Typo and spelling corrections. Removed tex tags.
Ori Avtalion <ori@avtalion.name>
parents:
658
diff
changeset
|
1284 send any mail</emphasis> until you explicitly configure it to do so, |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1285 by setting <envar role="rc-item-notify">test</envar> to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1286 <literal>false</literal>. Until you do that, it simply |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1287 prints the message it <emphasis>would</emphasis> send. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1288 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1289 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1290 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1291 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1292 </sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1293 <sect1 id="sec:hook:ref"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1294 <title>Information for writers of hooks</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1295 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1296 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1297 <title>In-process hook execution</title> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1298 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1299 <para>An in-process hook is called with arguments of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1300 following form: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1301 </para> |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1302 <programlisting>def myhook(ui, repo, **kwargs): pass</programlisting> |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1303 <para>The <literal>ui</literal> parameter is a <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1304 role="py-mod-mercurial.ui">ui</literal> object. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1305 <literal>repo</literal> parameter is a <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1306 role="py-mod-mercurial.localrepo">localrepository</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1307 object. The names and values of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1308 <literal>**kwargs</literal> parameters depend on the hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1309 being invoked, with the following common features: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1310 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1311 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1312 <listitem><para>If a parameter is named |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1313 <literal>node</literal> or <literal>parentN</literal>, it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1314 will contain a hexadecimal changeset ID. The empty string |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1315 is used to represent <quote>null changeset ID</quote> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1316 instead of a string of zeroes. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1317 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1318 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1319 <listitem><para>If a parameter is named |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1320 <literal>url</literal>, it will contain the URL of a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1321 remote repository, if that can be determined. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1322 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1323 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1324 <listitem><para>Boolean-valued parameters are represented as |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1325 Python <literal>bool</literal> objects. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1326 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1327 </listitem></itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1328 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1329 <para>An in-process hook is called without a change to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1330 process's working directory (unlike external hooks, which are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1331 run in the root of the repository). It must not change the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1332 process's working directory, or it will cause any calls it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1333 makes into the Mercurial API to fail. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1334 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1335 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1336 <para>If a hook returns a boolean <quote>false</quote> value, it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1337 is considered to have succeeded. If it returns a boolean |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1338 <quote>true</quote> value or raises an exception, it is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1339 considered to have failed. A useful way to think of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1340 calling convention is <quote>tell me if you fail</quote>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1341 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1342 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1343 <para>Note that changeset IDs are passed into Python hooks as |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1344 hexadecimal strings, not the binary hashes that Mercurial's |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1345 APIs normally use. To convert a hash from hex to binary, use |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1346 the <literal>bin</literal> function. |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1347 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1348 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1349 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1350 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1351 <title>External hook execution</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1352 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1353 <para>An external hook is passed to the shell of the user |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1354 running Mercurial. Features of that shell, such as variable |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1355 substitution and command redirection, are available. The hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1356 is run in the root directory of the repository (unlike |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1357 in-process hooks, which are run in the same directory that |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1358 Mercurial was run in). |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1359 </para> |
285
814698eebbaf
fixed a typo and formatted the notify hook configuration example nicer.
Timo Paulssen <timonator@perpetuum-immobile.de>
parents:
247
diff
changeset
|
1360 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1361 <para>Hook parameters are passed to the hook as environment |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1362 variables. Each environment variable's name is converted in |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1363 upper case and prefixed with the string |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1364 <quote><literal>HG_</literal></quote>. For example, if the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1365 name of a parameter is <quote><literal>node</literal></quote>, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1366 the name of the environment variable representing that |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1367 parameter will be <quote><literal>HG_NODE</literal></quote>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1368 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1369 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1370 <para>A boolean parameter is represented as the string |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1371 <quote><literal>1</literal></quote> for <quote>true</quote>, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1372 <quote><literal>0</literal></quote> for <quote>false</quote>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1373 If an environment variable is named <envar>HG_NODE</envar>, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1374 <envar>HG_PARENT1</envar> or <envar>HG_PARENT2</envar>, it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1375 contains a changeset ID represented as a hexadecimal string. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1376 The empty string is used to represent <quote>null changeset |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1377 ID</quote> instead of a string of zeroes. If an environment |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1378 variable is named <envar>HG_URL</envar>, it will contain the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1379 URL of a remote repository, if that can be determined. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1380 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1381 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1382 <para>If a hook exits with a status of zero, it is considered to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1383 have succeeded. If it exits with a non-zero status, it is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1384 considered to have failed. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1385 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1386 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1387 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1388 <sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1389 <title>Finding out where changesets come from</title> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1390 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1391 <para>A hook that involves the transfer of changesets between a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1392 local repository and another may be able to find out |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1393 information about the <quote>far side</quote>. Mercurial |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1394 knows <emphasis>how</emphasis> changes are being transferred, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1395 and in many cases <emphasis>where</emphasis> they are being |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1396 transferred to or from. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1397 </para> |
44
012df94a02fe
Start hook examples. First is for trailing whitespace.
Bryan O'Sullivan <bos@serpentine.com>
parents:
41
diff
changeset
|
1398 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1399 <sect3 id="sec:hook:sources"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1400 <title>Sources of changesets</title> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1401 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1402 <para>Mercurial will tell a hook what means are, or were, used |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1403 to transfer changesets between repositories. This is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1404 provided by Mercurial in a Python parameter named |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1405 <literal>source</literal>, or an environment variable named |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1406 <envar>HG_SOURCE</envar>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1407 </para> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1408 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1409 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1410 <listitem><para><literal>serve</literal>: Changesets are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1411 transferred to or from a remote repository over http or |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1412 ssh. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1413 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1414 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1415 <listitem><para><literal>pull</literal>: Changesets are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1416 being transferred via a pull from one repository into |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1417 another. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1418 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1419 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1420 <listitem><para><literal>push</literal>: Changesets are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1421 being transferred via a push from one repository into |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1422 another. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1423 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1424 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1425 <listitem><para><literal>bundle</literal>: Changesets are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1426 being transferred to or from a bundle. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1427 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1428 </listitem></itemizedlist> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1429 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1430 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1431 <sect3 id="sec:hook:url"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1432 <title>Where changes are going&emdash;remote repository |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1433 URLs</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1434 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1435 <para>When possible, Mercurial will tell a hook the location |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1436 of the <quote>far side</quote> of an activity that transfers |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1437 changeset data between repositories. This is provided by |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1438 Mercurial in a Python parameter named |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1439 <literal>url</literal>, or an environment variable named |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1440 <envar>HG_URL</envar>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1441 </para> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1442 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1443 <para>This information is not always known. If a hook is |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1444 invoked in a repository that is being served via http or |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1445 ssh, Mercurial cannot tell where the remote repository is, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1446 but it may know where the client is connecting from. In |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1447 such cases, the URL will take one of the following forms: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1448 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1449 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1450 <listitem><para><literal>remote:ssh:1.2.3.4</literal>&emdash;remote |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1451 ssh client, at the IP address |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1452 <literal>1.2.3.4</literal>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1453 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1454 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1455 <listitem><para><literal>remote:http:1.2.3.4</literal>&emdash;remote |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1456 http client, at the IP address |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1457 <literal>1.2.3.4</literal>. If the client is using SSL, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1458 this will be of the form |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1459 <literal>remote:https:1.2.3.4</literal>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1460 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1461 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1462 <listitem><para>Empty&emdash;no information could be |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1463 discovered about the remote client. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1464 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1465 </listitem></itemizedlist> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1466 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1467 </sect3> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1468 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1469 </sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1470 <sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1471 <title>Hook reference</title> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1472 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1473 <sect2 id="sec:hook:changegroup"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1474 <title><literal role="hook">changegroup</literal>&emdash;after |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1475 remote changesets added</title> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1476 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1477 <para>This hook is run after a group of pre-existing changesets |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1478 has been added to the repository, for example via a <command |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1479 role="hg-cmd">hg pull</command> or <command role="hg-cmd">hg |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1480 unbundle</command>. This hook is run once per operation |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1481 that added one or more changesets. This is in contrast to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1482 <literal role="hook">incoming</literal> hook, which is run |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1483 once per changeset, regardless of whether the changesets |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1484 arrive in a group. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1485 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1486 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1487 <para>Some possible uses for this hook include kicking off an |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1488 automated build or test of the added changesets, updating a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1489 bug database, or notifying subscribers that a repository |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1490 contains new changes. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1491 </para> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1492 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1493 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1494 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1495 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1496 <listitem><para><literal>node</literal>: A changeset ID. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1497 changeset ID of the first changeset in the group that was |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1498 added. All changesets between this and |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1499 <literal role="tag">tip</literal>, inclusive, were added by a single |
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1500 <command role="hg-cmd">hg pull</command>, <command |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1501 role="hg-cmd">hg push</command> or <command |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1502 role="hg-cmd">hg unbundle</command>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1503 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1504 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1505 <listitem><para><literal>source</literal>: A string. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1506 source of these changes. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1507 linkend="sec:hook:sources"/> for details. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1508 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1509 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1510 <listitem><para><literal>url</literal>: A URL. The location |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1511 of the remote repository, if known. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1512 linkend="sec:hook:url"/> for more |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1513 information. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1514 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1515 </listitem></itemizedlist> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1516 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1517 <para>See also: <literal role="hook">incoming</literal> (section |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1518 <xref linkend="sec:hook:incoming"/>), <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1519 role="hook">prechangegroup</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1520 linkend="sec:hook:prechangegroup"/>), <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1521 role="hook">pretxnchangegroup</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1522 linkend="sec:hook:pretxnchangegroup"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1523 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1524 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1525 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1526 <sect2 id="sec:hook:commit"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1527 <title><literal role="hook">commit</literal>&emdash;after a new |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1528 changeset is created</title> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1529 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1530 <para>This hook is run after a new changeset has been created. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1531 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1532 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1533 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1534 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1535 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1536 <listitem><para><literal>node</literal>: A changeset ID. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1537 changeset ID of the newly committed changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1538 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1539 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1540 <listitem><para><literal>parent1</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1541 The changeset ID of the first parent of the newly |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1542 committed changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1543 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1544 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1545 <listitem><para><literal>parent2</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1546 The changeset ID of the second parent of the newly |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1547 committed changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1548 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1549 </listitem></itemizedlist> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1550 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1551 <para>See also: <literal role="hook">precommit</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1552 (section <xref linkend="sec:hook:precommit"/>), <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1553 role="hook">pretxncommit</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1554 linkend="sec:hook:pretxncommit"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1555 </para> |
62
8806b2875f10
Finish off a big whack of content for the hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
54
diff
changeset
|
1556 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1557 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1558 <sect2 id="sec:hook:incoming"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1559 <title><literal role="hook">incoming</literal>&emdash;after one |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1560 remote changeset is added</title> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1561 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1562 <para>This hook is run after a pre-existing changeset has been |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1563 added to the repository, for example via a <command |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1564 role="hg-cmd">hg push</command>. If a group of changesets |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1565 was added in a single operation, this hook is called once for |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1566 each added changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1567 </para> |
41 | 1568 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1569 <para>You can use this hook for the same purposes as the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1570 <literal role="hook">changegroup</literal> hook (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1571 linkend="sec:hook:changegroup"/>); it's simply |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1572 more convenient sometimes to run a hook once per group of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1573 changesets, while other times it's handier once per changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1574 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1575 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1576 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1577 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1578 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1579 <listitem><para><literal>node</literal>: A changeset ID. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1580 ID of the newly added changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1581 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1582 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1583 <listitem><para><literal>source</literal>: A string. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1584 source of these changes. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1585 linkend="sec:hook:sources"/> for details. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1586 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1587 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1588 <listitem><para><literal>url</literal>: A URL. The location |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1589 of the remote repository, if known. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1590 linkend="sec:hook:url"/> for more |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1591 information. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1592 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1593 </listitem></itemizedlist> |
39
576fef93bb49
Further content for hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
38
diff
changeset
|
1594 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1595 <para>See also: <literal role="hook">changegroup</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1596 (section <xref linkend="sec:hook:changegroup"/>) <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1597 role="hook">prechangegroup</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1598 linkend="sec:hook:prechangegroup"/>), <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1599 role="hook">pretxnchangegroup</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1600 linkend="sec:hook:pretxnchangegroup"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1601 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1602 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1603 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1604 <sect2 id="sec:hook:outgoing"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1605 <title><literal role="hook">outgoing</literal>&emdash;after |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1606 changesets are propagated</title> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1607 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1608 <para>This hook is run after a group of changesets has been |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1609 propagated out of this repository, for example by a <command |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1610 role="hg-cmd">hg push</command> or <command role="hg-cmd">hg |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1611 bundle</command> command. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1612 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1613 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1614 <para>One possible use for this hook is to notify administrators |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1615 that changes have been pulled. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1616 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1617 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1618 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1619 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1620 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1621 <listitem><para><literal>node</literal>: A changeset ID. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1622 changeset ID of the first changeset of the group that was |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1623 sent. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1624 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1625 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1626 <listitem><para><literal>source</literal>: A string. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1627 source of the of the operation (see section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1628 linkend="sec:hook:sources"/>). If a remote |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1629 client pulled changes from this repository, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1630 <literal>source</literal> will be |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1631 <literal>serve</literal>. If the client that obtained |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1632 changes from this repository was local, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1633 <literal>source</literal> will be |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1634 <literal>bundle</literal>, <literal>pull</literal>, or |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1635 <literal>push</literal>, depending on the operation the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1636 client performed. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1637 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1638 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1639 <listitem><para><literal>url</literal>: A URL. The location |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1640 of the remote repository, if known. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1641 linkend="sec:hook:url"/> for more |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1642 information. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1643 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1644 </listitem></itemizedlist> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1645 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1646 <para>See also: <literal role="hook">preoutgoing</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1647 (section <xref linkend="sec:hook:preoutgoing"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1648 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1649 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1650 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1651 <sect2 id="sec:hook:prechangegroup"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1652 <title><literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1653 role="hook">prechangegroup</literal>&emdash;before starting |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1654 to add remote changesets</title> |
41 | 1655 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1656 <para>This controlling hook is run before Mercurial begins to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1657 add a group of changesets from another repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1658 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1659 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1660 <para>This hook does not have any information about the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1661 changesets to be added, because it is run before transmission |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1662 of those changesets is allowed to begin. If this hook fails, |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1663 the changesets will not be transmitted. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1664 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1665 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1666 <para>One use for this hook is to prevent external changes from |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1667 being added to a repository. For example, you could use this |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1668 to <quote>freeze</quote> a server-hosted branch temporarily or |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1669 permanently so that users cannot push to it, while still |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1670 allowing a local administrator to modify the repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1671 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1672 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1673 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1674 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1675 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1676 <listitem><para><literal>source</literal>: A string. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1677 source of these changes. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1678 linkend="sec:hook:sources"/> for details. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1679 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1680 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1681 <listitem><para><literal>url</literal>: A URL. The location |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1682 of the remote repository, if known. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1683 linkend="sec:hook:url"/> for more |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1684 information. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1685 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1686 </listitem></itemizedlist> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1687 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1688 <para>See also: <literal role="hook">changegroup</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1689 (section <xref linkend="sec:hook:changegroup"/>), <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1690 role="hook">incoming</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1691 linkend="sec:hook:incoming"/>), , <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1692 role="hook">pretxnchangegroup</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1693 linkend="sec:hook:pretxnchangegroup"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1694 </para> |
41 | 1695 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1696 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1697 <sect2 id="sec:hook:precommit"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1698 <title><literal role="hook">precommit</literal>&emdash;before |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1699 starting to commit a changeset</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1700 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1701 <para>This hook is run before Mercurial begins to commit a new |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1702 changeset. It is run before Mercurial has any of the metadata |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1703 for the commit, such as the files to be committed, the commit |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1704 message, or the commit date. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1705 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1706 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1707 <para>One use for this hook is to disable the ability to commit |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1708 new changesets, while still allowing incoming changesets. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1709 Another is to run a build or test, and only allow the commit |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1710 to begin if the build or test succeeds. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1711 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1712 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1713 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1714 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1715 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1716 <listitem><para><literal>parent1</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1717 The changeset ID of the first parent of the working |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1718 directory. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1719 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1720 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1721 <listitem><para><literal>parent2</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1722 The changeset ID of the second parent of the working |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1723 directory. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1724 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1725 </listitem></itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1726 <para>If the commit proceeds, the parents of the working |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1727 directory will become the parents of the new changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1728 </para> |
41 | 1729 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1730 <para>See also: <literal role="hook">commit</literal> (section |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1731 <xref linkend="sec:hook:commit"/>), <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1732 role="hook">pretxncommit</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1733 linkend="sec:hook:pretxncommit"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1734 </para> |
41 | 1735 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1736 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1737 <sect2 id="sec:hook:preoutgoing"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1738 <title><literal role="hook">preoutgoing</literal>&emdash;before |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1739 starting to propagate changesets</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1740 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1741 <para>This hook is invoked before Mercurial knows the identities |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1742 of the changesets to be transmitted. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1743 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1744 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1745 <para>One use for this hook is to prevent changes from being |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1746 transmitted to another repository. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1747 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1748 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1749 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1750 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1751 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1752 <listitem><para><literal>source</literal>: A string. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1753 source of the operation that is attempting to obtain |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1754 changes from this repository (see section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1755 linkend="sec:hook:sources"/>). See the documentation |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1756 for the <literal>source</literal> parameter to the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1757 <literal role="hook">outgoing</literal> hook, in section |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1758 <xref linkend="sec:hook:outgoing"/>, for possible values |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1759 of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1760 this parameter. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1761 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1762 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1763 <listitem><para><literal>url</literal>: A URL. The location |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1764 of the remote repository, if known. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1765 linkend="sec:hook:url"/> for more |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1766 information. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1767 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1768 </listitem></itemizedlist> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1769 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1770 <para>See also: <literal role="hook">outgoing</literal> (section |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1771 <xref linkend="sec:hook:outgoing"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1772 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1773 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1774 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1775 <sect2 id="sec:hook:pretag"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1776 <title><literal role="hook">pretag</literal>&emdash;before |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1777 tagging a changeset</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1778 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1779 <para>This controlling hook is run before a tag is created. If |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1780 the hook succeeds, creation of the tag proceeds. If the hook |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1781 fails, the tag is not created. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1782 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1783 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1784 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1785 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1786 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1787 <listitem><para><literal>local</literal>: A boolean. Whether |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1788 the tag is local to this repository instance (i.e. stored |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1789 in <filename role="special">.hg/localtags</filename>) or |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1790 managed by Mercurial (stored in <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1791 role="special">.hgtags</filename>). |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1792 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1793 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1794 <listitem><para><literal>node</literal>: A changeset ID. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1795 ID of the changeset to be tagged. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1796 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1797 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1798 <listitem><para><literal>tag</literal>: A string. The name of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1799 the tag to be created. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1800 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1801 </listitem></itemizedlist> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1802 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1803 <para>If the tag to be created is revision-controlled, the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1804 <literal role="hook">precommit</literal> and <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1805 role="hook">pretxncommit</literal> hooks (sections <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1806 linkend="sec:hook:commit"/> and <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1807 linkend="sec:hook:pretxncommit"/>) will also be run. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1808 </para> |
41 | 1809 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1810 <para>See also: <literal role="hook">tag</literal> (section |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1811 <xref linkend="sec:hook:tag"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1812 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1813 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1814 <sect2 id="sec:hook:pretxnchangegroup"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1815 <title><literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1816 role="hook">pretxnchangegroup</literal>&emdash;before |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1817 completing addition of remote changesets</title> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1818 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1819 <para>This controlling hook is run before a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1820 transaction&emdash;that manages the addition of a group of new |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1821 changesets from outside the repository&emdash;completes. If |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1822 the hook succeeds, the transaction completes, and all of the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1823 changesets become permanent within this repository. If the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1824 hook fails, the transaction is rolled back, and the data for |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1825 the changesets is erased. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1826 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1827 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1828 <para>This hook can access the metadata associated with the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1829 almost-added changesets, but it should not do anything |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1830 permanent with this data. It must also not modify the working |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1831 directory. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1832 </para> |
41 | 1833 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1834 <para>While this hook is running, if other Mercurial processes |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1835 access this repository, they will be able to see the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1836 almost-added changesets as if they are permanent. This may |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1837 lead to race conditions if you do not take steps to avoid |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1838 them. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1839 </para> |
34
c0979ed1eabd
Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
1840 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1841 <para>This hook can be used to automatically vet a group of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1842 changesets. If the hook fails, all of the changesets are |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1843 <quote>rejected</quote> when the transaction rolls back. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1844 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1845 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1846 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1847 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1848 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1849 <listitem><para><literal>node</literal>: A changeset ID. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1850 changeset ID of the first changeset in the group that was |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1851 added. All changesets between this and |
680
8366882f67f2
Fix up more formatting goop
Bryan O'Sullivan <bos@serpentine.com>
parents:
671
diff
changeset
|
1852 <literal role="tag">tip</literal>, |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1853 inclusive, were added by a single <command |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1854 role="hg-cmd">hg pull</command>, <command |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1855 role="hg-cmd">hg push</command> or <command |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1856 role="hg-cmd">hg unbundle</command>. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1857 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1858 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1859 <listitem><para><literal>source</literal>: A string. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1860 source of these changes. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1861 linkend="sec:hook:sources"/> for details. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1862 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1863 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1864 <listitem><para><literal>url</literal>: A URL. The location |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1865 of the remote repository, if known. See section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1866 linkend="sec:hook:url"/> for more |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1867 information. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1868 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1869 </listitem></itemizedlist> |
41 | 1870 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1871 <para>See also: <literal role="hook">changegroup</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1872 (section <xref linkend="sec:hook:changegroup"/>), <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1873 role="hook">incoming</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1874 linkend="sec:hook:incoming"/>), <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1875 role="hook">prechangegroup</literal> (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1876 linkend="sec:hook:prechangegroup"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1877 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1878 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1879 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1880 <sect2 id="sec:hook:pretxncommit"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1881 <title><literal role="hook">pretxncommit</literal>&emdash;before |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1882 completing commit of new changeset</title> |
41 | 1883 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1884 <para>This controlling hook is run before a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1885 transaction&emdash;that manages a new commit&emdash;completes. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1886 If the hook succeeds, the transaction completes and the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1887 changeset becomes permanent within this repository. If the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1888 hook fails, the transaction is rolled back, and the commit |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1889 data is erased. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1890 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1891 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1892 <para>This hook can access the metadata associated with the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1893 almost-new changeset, but it should not do anything permanent |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1894 with this data. It must also not modify the working |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1895 directory. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1896 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1897 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1898 <para>While this hook is running, if other Mercurial processes |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1899 access this repository, they will be able to see the |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1900 almost-new changeset as if it is permanent. This may lead to |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1901 race conditions if you do not take steps to avoid them. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1902 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1903 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1904 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1905 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1906 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1907 <listitem><para><literal>node</literal>: A changeset ID. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1908 changeset ID of the newly committed changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1909 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1910 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1911 <listitem><para><literal>parent1</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1912 The changeset ID of the first parent of the newly |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1913 committed changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1914 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1915 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1916 <listitem><para><literal>parent2</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1917 The changeset ID of the second parent of the newly |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1918 committed changeset. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1919 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1920 </listitem></itemizedlist> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1921 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1922 <para>See also: <literal role="hook">precommit</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1923 (section <xref linkend="sec:hook:precommit"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1924 </para> |
41 | 1925 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1926 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1927 <sect2 id="sec:hook:preupdate"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1928 <title><literal role="hook">preupdate</literal>&emdash;before |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1929 updating or merging working directory</title> |
41 | 1930 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1931 <para>This controlling hook is run before an update or merge of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1932 the working directory begins. It is run only if Mercurial's |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1933 normal pre-update checks determine that the update or merge |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1934 can proceed. If the hook succeeds, the update or merge may |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1935 proceed; if it fails, the update or merge does not start. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1936 </para> |
41 | 1937 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1938 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1939 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1940 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1941 <listitem><para><literal>parent1</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1942 The ID of the parent that the working directory is to be |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1943 updated to. If the working directory is being merged, it |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1944 will not change this parent. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1945 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1946 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1947 <listitem><para><literal>parent2</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1948 Only set if the working directory is being merged. The ID |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1949 of the revision that the working directory is being merged |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1950 with. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1951 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1952 </listitem></itemizedlist> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1953 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1954 <para>See also: <literal role="hook">update</literal> (section |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1955 <xref linkend="sec:hook:update"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1956 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1957 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1958 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1959 <sect2 id="sec:hook:tag"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1960 <title><literal role="hook">tag</literal>&emdash;after tagging a |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1961 changeset</title> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1962 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1963 <para>This hook is run after a tag has been created. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1964 </para> |
41 | 1965 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1966 <para>Parameters to this hook: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1967 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1968 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1969 <listitem><para><literal>local</literal>: A boolean. Whether |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1970 the new tag is local to this repository instance (i.e. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1971 stored in <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1972 role="special">.hg/localtags</filename>) or managed by |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1973 Mercurial (stored in <filename |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1974 role="special">.hgtags</filename>). |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1975 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1976 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1977 <listitem><para><literal>node</literal>: A changeset ID. The |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1978 ID of the changeset that was tagged. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1979 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1980 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1981 <listitem><para><literal>tag</literal>: A string. The name of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1982 the tag that was created. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1983 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1984 </listitem></itemizedlist> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1985 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1986 <para>If the created tag is revision-controlled, the <literal |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1987 role="hook">commit</literal> hook (section <xref |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1988 linkend="sec:hook:commit"/>) is run before this hook. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1989 </para> |
41 | 1990 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1991 <para>See also: <literal role="hook">pretag</literal> (section |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1992 <xref linkend="sec:hook:pretag"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1993 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1994 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1995 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1996 <sect2 id="sec:hook:update"> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1997 <title><literal role="hook">update</literal>&emdash;after |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
1998 updating or merging working directory</title> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
1999 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2000 <para>This hook is run after an update or merge of the working |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2001 directory completes. Since a merge can fail (if the external |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2002 <command>hgmerge</command> command fails to resolve conflicts |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2003 in a file), this hook communicates whether the update or merge |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2004 completed cleanly. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2005 </para> |
41 | 2006 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2007 <itemizedlist> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2008 <listitem><para><literal>error</literal>: A boolean. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2009 Indicates whether the update or merge completed |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2010 successfully. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2011 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2012 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2013 <listitem><para><literal>parent1</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2014 The ID of the parent that the working directory was |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2015 updated to. If the working directory was merged, it will |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2016 not have changed this parent. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2017 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2018 </listitem> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2019 <listitem><para><literal>parent2</literal>: A changeset ID. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2020 Only set if the working directory was merged. The ID of |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2021 the revision that the working directory was merged with. |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2022 </para> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2023 </listitem></itemizedlist> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
2024 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2025 <para>See also: <literal role="hook">preupdate</literal> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2026 (section <xref linkend="sec:hook:preupdate"/>) |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2027 </para> |
40
b2fe9964b21b
More content for hook reference.
Bryan O'Sullivan <bos@serpentine.com>
parents:
39
diff
changeset
|
2028 |
658
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2029 </sect2> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2030 </sect1> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2031 </chapter> |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2032 |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2033 <!-- |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2034 local variables: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2035 sgml-parent-document: ("00book.xml" "book" "chapter") |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2036 end: |
b90b024729f1
WIP DocBook snapshot that all compiles. Mirabile dictu!
Bryan O'Sullivan <bos@serpentine.com>
parents:
649
diff
changeset
|
2037 --> |