Mercurial > hg
annotate tests/test-notify.t @ 12748:d10369fefd01
alias: fail gracefully when invalid global options are given (issue2442)
This patch modifies the check for shell aliases to prevent crashing when an invalid
global option is given.
When an invalid global option is given the check will simply return and let the
normal error handling for this case happen.
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Sun, 17 Oct 2010 13:24:37 -0400 |
parents | 624859bf4314 |
children | e3bf16703e26 |
rev | line source |
---|---|
3740
aef384dbc731
add test for the notify extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
1 |
12473 | 2 $ cat <<EOF >> $HGRCPATH |
3 > [extensions] | |
4 > notify= | |
5 > | |
6 > [hooks] | |
7 > incoming.notify = python:hgext.notify.hook | |
8 > | |
9 > [notify] | |
10 > sources = pull | |
11 > diffstat = False | |
12 > | |
13 > [usersubs] | |
14 > foo@bar = * | |
15 > | |
16 > [reposubs] | |
17 > * = baz | |
18 > EOF | |
19 $ hg help notify | |
20 notify extension - hooks for sending email notifications at commit/push time | |
21 | |
22 Subscriptions can be managed through a hgrc file. Default mode is to print | |
23 messages to stdout, for testing and configuring. | |
24 | |
25 To use, configure the notify extension and enable it in hgrc like this: | |
26 | |
27 [extensions] | |
28 notify = | |
29 | |
30 [hooks] | |
31 # one email for each incoming changeset | |
32 incoming.notify = python:hgext.notify.hook | |
33 # batch emails when many changesets incoming at one time | |
34 changegroup.notify = python:hgext.notify.hook | |
35 | |
36 [notify] | |
37 # config items go here | |
38 | |
39 Required configuration items: | |
40 | |
41 config = /path/to/file # file containing subscriptions | |
42 | |
43 Optional configuration items: | |
44 | |
45 test = True # print messages to stdout for testing | |
46 strip = 3 # number of slashes to strip for url paths | |
47 domain = example.com # domain to use if committer missing domain | |
48 style = ... # style file to use when formatting email | |
49 template = ... # template to use when formatting email | |
50 incoming = ... # template to use when run as incoming hook | |
51 changegroup = ... # template when run as changegroup hook | |
52 maxdiff = 300 # max lines of diffs to include (0=none, -1=all) | |
53 maxsubject = 67 # truncate subject line longer than this | |
54 diffstat = True # add a diffstat before the diff content | |
55 sources = serve # notify if source of incoming changes in this list | |
56 # (serve == ssh or http, push, pull, bundle) | |
57 merge = False # send notification for merges (default True) | |
58 [email] | |
59 from = user@host.com # email address to send as if none given | |
60 [web] | |
61 baseurl = http://hgserver/... # root of hg web site for browsing commits | |
62 | |
63 The notify config file has same format as a regular hgrc file. It has two | |
64 sections so you can express subscriptions in whatever way is handier for you. | |
65 | |
66 [usersubs] | |
67 # key is subscriber email, value is ","-separated list of glob patterns | |
68 user@host = pattern | |
69 | |
70 [reposubs] | |
71 # key is glob pattern, value is ","-separated list of subscriber emails | |
72 pattern = user@host | |
73 | |
74 Glob patterns are matched against path to repository root. | |
75 | |
76 If you like, you can put notify config file in repository that users can push | |
77 changes to, they can manage their own subscriptions. | |
78 | |
79 no commands defined | |
80 $ hg init a | |
81 $ echo a > a/a | |
3740
aef384dbc731
add test for the notify extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
82 |
12473 | 83 commit |
84 | |
85 $ hg --cwd a commit -Ama -d '0 0' | |
86 adding a | |
87 | |
88 | |
89 clone | |
90 | |
91 $ hg --traceback clone a b | |
92 updating to branch default | |
93 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
94 $ echo a >> a/a | |
95 | |
96 commit | |
97 | |
98 $ hg --traceback --cwd a commit -Amb -d '1 0' | |
99 | |
100 on Mac OS X 10.5 the tmp path is very long so would get stripped in the subject line | |
101 | |
102 $ cat <<EOF >> $HGRCPATH | |
103 > [notify] | |
104 > maxsubject = 200 | |
105 > EOF | |
106 | |
107 the python call below wraps continuation lines, which appear on Mac OS X 10.5 because | |
108 of the very long subject line | |
109 pull (minimal config) | |
6359
25e74cd3f023
test-notify: make it pass on Mac OS X 10.5
Florent Guillaume <fg@nuxeo.com>
parents:
4517
diff
changeset
|
110 |
12473 | 111 $ hg --traceback --cwd b pull ../a | \ |
12646
624859bf4314
test-notify: fix fix for line continuation in long mail header lines
Mads Kiilerich <mads@kiilerich.com>
parents:
12644
diff
changeset
|
112 > python -c 'import sys,re; print re.sub("\n[\t ]", " ", sys.stdin.read()),' |
12473 | 113 pulling from ../a |
114 searching for changes | |
115 adding changesets | |
116 adding manifests | |
117 adding file changes | |
118 added 1 changesets with 1 changes to 1 files | |
119 Content-Type: text/plain; charset="us-ascii" | |
120 MIME-Version: 1.0 | |
121 Content-Transfer-Encoding: 7bit | |
122 Date: * (glob) | |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12473
diff
changeset
|
123 Subject: changeset in $TESTTMP/b: b |
12473 | 124 From: test |
125 X-Hg-Notification: changeset 0647d048b600 | |
126 Message-Id: <*> (glob) | |
127 To: baz, foo@bar | |
128 | |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12473
diff
changeset
|
129 changeset 0647d048b600 in $TESTTMP/b |
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12473
diff
changeset
|
130 details: $TESTTMP/b?cmd=changeset;node=0647d048b600 |
12473 | 131 description: b |
132 | |
133 diffs (6 lines): | |
134 | |
135 diff -r cb9a9f314b8b -r 0647d048b600 a | |
136 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
137 +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
12646
624859bf4314
test-notify: fix fix for line continuation in long mail header lines
Mads Kiilerich <mads@kiilerich.com>
parents:
12644
diff
changeset
|
138 @@ -1,1 +1,2 @@ a |
12473 | 139 +a |
140 (run 'hg update' to get a working copy) | |
141 $ cat <<EOF >> $HGRCPATH | |
142 > [notify] | |
12642
bb35840e965c
tests: remove the last traces of $HGTMP
Mads Kiilerich <mads@kiilerich.com>
parents:
12640
diff
changeset
|
143 > config = `pwd`/.notify.conf |
12473 | 144 > domain = test.com |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
145 > strip = 42 |
12473 | 146 > template = Subject: {desc|firstline|strip}\nFrom: {author}\nX-Test: foo\n\nchangeset {node|short} in {webroot}\ndescription:\n\t{desc|tabindent|strip} |
147 > | |
148 > [web] | |
149 > baseurl = http://test/ | |
150 > EOF | |
4094
fbf0e9acfd83
notify: don't try to fix addresses if notify.domain is not set
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4009
diff
changeset
|
151 |
12473 | 152 fail for config file is missing |
4094
fbf0e9acfd83
notify: don't try to fix addresses if notify.domain is not set
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4009
diff
changeset
|
153 |
12473 | 154 $ hg --cwd b rollback |
155 rolling back to revision 0 (undo pull) | |
156 $ hg --cwd b pull ../a 2>&1 | grep 'error.*\.notify\.conf' > /dev/null && echo pull failed | |
157 pull failed | |
12642
bb35840e965c
tests: remove the last traces of $HGTMP
Mads Kiilerich <mads@kiilerich.com>
parents:
12640
diff
changeset
|
158 $ touch ".notify.conf" |
12473 | 159 |
160 pull | |
4094
fbf0e9acfd83
notify: don't try to fix addresses if notify.domain is not set
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4009
diff
changeset
|
161 |
12473 | 162 $ hg --cwd b rollback |
163 rolling back to revision 0 (undo pull) | |
164 $ hg --traceback --cwd b pull ../a | \ | |
165 > python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),' | |
166 pulling from ../a | |
167 searching for changes | |
168 adding changesets | |
169 adding manifests | |
170 adding file changes | |
171 added 1 changesets with 1 changes to 1 files | |
172 Content-Type: text/plain; charset="us-ascii" | |
173 MIME-Version: 1.0 | |
174 Content-Transfer-Encoding: 7bit | |
175 X-Test: foo | |
176 Date: * (glob) | |
177 Subject: b | |
178 From: test@test.com | |
179 X-Hg-Notification: changeset 0647d048b600 | |
180 Message-Id: <*> (glob) | |
181 To: baz@test.com, foo@bar | |
182 | |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
183 changeset 0647d048b600 in b |
12473 | 184 description: b |
185 diffs (6 lines): | |
186 | |
187 diff -r cb9a9f314b8b -r 0647d048b600 a | |
188 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
189 +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
190 @@ -1,1 +1,2 @@ | |
191 a | |
192 +a | |
193 (run 'hg update' to get a working copy) | |
4517
5371a213b0f4
ui: make readsections() abort when configuration cannot be read.
Patrick Mezard <pmezard@gmail.com>
parents:
4479
diff
changeset
|
194 |
12473 | 195 $ cat << EOF >> $HGRCPATH |
196 > [hooks] | |
197 > incoming.notify = python:hgext.notify.hook | |
198 > | |
199 > [notify] | |
200 > sources = pull | |
201 > diffstat = True | |
202 > EOF | |
203 | |
204 pull | |
4094
fbf0e9acfd83
notify: don't try to fix addresses if notify.domain is not set
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4009
diff
changeset
|
205 |
12473 | 206 $ hg --cwd b rollback |
207 rolling back to revision 0 (undo pull) | |
208 $ hg --traceback --cwd b pull ../a | \ | |
209 > python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),' | |
210 pulling from ../a | |
211 searching for changes | |
212 adding changesets | |
213 adding manifests | |
214 adding file changes | |
215 added 1 changesets with 1 changes to 1 files | |
216 Content-Type: text/plain; charset="us-ascii" | |
217 MIME-Version: 1.0 | |
218 Content-Transfer-Encoding: 7bit | |
219 X-Test: foo | |
220 Date: * (glob) | |
221 Subject: b | |
222 From: test@test.com | |
223 X-Hg-Notification: changeset 0647d048b600 | |
224 Message-Id: <*> (glob) | |
225 To: baz@test.com, foo@bar | |
226 | |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
227 changeset 0647d048b600 in b |
12473 | 228 description: b |
229 diffstat: | |
230 | |
231 a | 1 + | |
232 1 files changed, 1 insertions(+), 0 deletions(-) | |
233 | |
234 diffs (6 lines): | |
235 | |
236 diff -r cb9a9f314b8b -r 0647d048b600 a | |
237 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
238 +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
239 @@ -1,1 +1,2 @@ | |
240 a | |
241 +a | |
242 (run 'hg update' to get a working copy) | |
7105
31837416ef4d
tests: add some testing for patch.diffstat()
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6359
diff
changeset
|
243 |
12473 | 244 test merge |
7105
31837416ef4d
tests: add some testing for patch.diffstat()
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6359
diff
changeset
|
245 |
12473 | 246 $ cd a |
247 $ hg up -C 0 | |
248 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
249 $ echo a >> a | |
250 $ hg ci -Am adda2 -d '2 0' | |
251 created new head | |
252 $ hg merge | |
253 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
254 (branch merge, don't forget to commit) | |
255 $ hg ci -m merge -d '3 0' | |
256 $ cd .. | |
257 $ hg --traceback --cwd b pull ../a | \ | |
258 > python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),' | |
259 pulling from ../a | |
260 searching for changes | |
261 adding changesets | |
262 adding manifests | |
263 adding file changes | |
264 added 2 changesets with 0 changes to 0 files | |
265 Content-Type: text/plain; charset="us-ascii" | |
266 MIME-Version: 1.0 | |
267 Content-Transfer-Encoding: 7bit | |
268 X-Test: foo | |
269 Date: * (glob) | |
270 Subject: adda2 | |
271 From: test@test.com | |
272 X-Hg-Notification: changeset 0a184ce6067f | |
273 Message-Id: <*> (glob) | |
274 To: baz@test.com, foo@bar | |
275 | |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
276 changeset 0a184ce6067f in b |
12473 | 277 description: adda2 |
278 diffstat: | |
279 | |
280 a | 1 + | |
281 1 files changed, 1 insertions(+), 0 deletions(-) | |
282 | |
283 diffs (6 lines): | |
284 | |
285 diff -r cb9a9f314b8b -r 0a184ce6067f a | |
286 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
287 +++ b/a Thu Jan 01 00:00:02 1970 +0000 | |
288 @@ -1,1 +1,2 @@ | |
289 a | |
290 +a | |
291 Content-Type: text/plain; charset="us-ascii" | |
292 MIME-Version: 1.0 | |
293 Content-Transfer-Encoding: 7bit | |
294 X-Test: foo | |
295 Date: * (glob) | |
296 Subject: merge | |
297 From: test@test.com | |
298 X-Hg-Notification: changeset 22c88b85aa27 | |
299 Message-Id: <*> (glob) | |
300 To: baz@test.com, foo@bar | |
301 | |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
302 changeset 22c88b85aa27 in b |
12473 | 303 description: merge |
304 (run 'hg update' to get a working copy) |