##// END OF EJS Templates
notify: change behavior of "changegroup" hook...
Nikolaus Schueler -
r15654:2a7fa7c6 default
parent child Browse files
Show More
@@ -108,6 +108,11 b' notify.merge'
108 notify.mbox
108 notify.mbox
109 If set, append mails to this mbox file instead of sending. Default: None.
109 If set, append mails to this mbox file instead of sending. Default: None.
110
110
111 notify.fromauthor
112 If set, use the first committer of the changegroup for the "From" field of
113 the notification mail. If not set, take the user from the pushing repo.
114 Default: False.
115
111 If set, the following entries will also be used to customize the notifications:
116 If set, the following entries will also be used to customize the notifications:
112
117
113 email.from
118 email.from
@@ -338,11 +343,14 b' def hook(ui, repo, hooktype, node=None, '
338 ui.pushbuffer()
343 ui.pushbuffer()
339 data = ''
344 data = ''
340 count = 0
345 count = 0
346 author = ''
341 if hooktype == 'changegroup' or hooktype == 'outgoing':
347 if hooktype == 'changegroup' or hooktype == 'outgoing':
342 start, end = ctx.rev(), len(repo)
348 start, end = ctx.rev(), len(repo)
343 for rev in xrange(start, end):
349 for rev in xrange(start, end):
344 if n.node(repo[rev]):
350 if n.node(repo[rev]):
345 count += 1
351 count += 1
352 if not author:
353 author = repo[rev].user()
346 else:
354 else:
347 data += ui.popbuffer()
355 data += ui.popbuffer()
348 ui.note(_('notify: suppressing notification for merge %d:%s\n') %
356 ui.note(_('notify: suppressing notification for merge %d:%s\n') %
@@ -360,5 +368,9 b' def hook(ui, repo, hooktype, node=None, '
360 n.diff(ctx)
368 n.diff(ctx)
361
369
362 data += ui.popbuffer()
370 data += ui.popbuffer()
371 fromauthor = ui.config('notify', 'fromauthor')
372 if author and fromauthor:
373 data = '\n'.join(['From: %s' % author, data])
374
363 if count:
375 if count:
364 n.send(ctx, count, data)
376 n.send(ctx, count, data)
@@ -124,3 +124,91 b' unbundle with correct source'
124 +a
124 +a
125 +a
125 +a
126 (run 'hg update' to get a working copy)
126 (run 'hg update' to get a working copy)
127
128 Check that using the first committer as the author of a changeset works:
129 Check that the config option works.
130 Check that the first committer is indeed used for "From:".
131 Check that the merge user is NOT used for "From:"
132
133 Create new file
134
135 $ echo a > b/b
136 $ echo b >> b/b
137 $ echo c >> b/b
138 $ hg --traceback --cwd b commit -Amnewfile -u committer_1
139 adding b
140
141 commit as one user
142
143 $ echo x > b/b
144 $ echo b >> b/b
145 $ echo c >> b/b
146 $ hg --traceback --cwd b commit -Amx -u committer_2
147
148 commit as other user, change file so we can do an (automatic) merge
149
150 $ hg --cwd b up 2
151 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
152 $ echo a > b/b
153 $ echo b >> b/b
154 $ echo y >> b/b
155 $ hg --traceback --cwd b commit -Amy -u committer_3
156 created new head
157
158 merge as a different user
159
160 $ hg --cwd b merge --config notify.fromauthor=True
161 merging b
162 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
163 (branch merge, don't forget to commit)
164
165 $ hg --traceback --cwd b commit -Am "merged"
166
167 push
168
169 $ hg --traceback --cwd b --config notify.fromauthor=True push ../a 2>&1 |
170 > python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),'
171 pushing to ../a
172 searching for changes
173 adding changesets
174 adding manifests
175 adding file changes
176 added 4 changesets with 4 changes to 1 files
177 Content-Type: text/plain; charset="us-ascii"
178 MIME-Version: 1.0
179 Content-Transfer-Encoding: 7bit
180 Date: * (glob)
181 Subject: * (glob)
182 From: committer_1
183 X-Hg-Notification: changeset 84e487dddc58
184 Message-Id: <*> (glob)
185 To: baz, foo@bar
186
187 changeset 84e487dddc58 in $TESTTMP/a
188 details: $TESTTMP/a?cmd=changeset;node=84e487dddc58
189 summary: newfile
190
191 changeset b29c7a2b6b0c in $TESTTMP/a
192 details: $TESTTMP/a?cmd=changeset;node=b29c7a2b6b0c
193 summary: x
194
195 changeset 0957c7d64886 in $TESTTMP/a
196 details: $TESTTMP/a?cmd=changeset;node=0957c7d64886
197 summary: y
198
199 changeset 485b4e6b0249 in $TESTTMP/a
200 details: $TESTTMP/a?cmd=changeset;node=485b4e6b0249
201 summary: merged
202
203 diffs (7 lines):
204
205 diff -r ba677d0156c1 -r 485b4e6b0249 b
206 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
207 +++ b/b Thu Jan 01 00:00:00 1970 +0000
208 @@ -0,0 +1,3 @@
209 +x
210 +b
211 +y
212 $ hg --cwd a rollback
213 repository tip rolled back to revision 1 (undo push)
214
@@ -116,6 +116,11 b''
116 notify.mbox
116 notify.mbox
117 If set, append mails to this mbox file instead of sending. Default: None.
117 If set, append mails to this mbox file instead of sending. Default: None.
118
118
119 notify.fromauthor
120 If set, use the first committer of the changegroup for the "From" field of
121 the notification mail. If not set, take the user from the pushing repo.
122 Default: False.
123
119 If set, the following entries will also be used to customize the
124 If set, the following entries will also be used to customize the
120 notifications:
125 notifications:
121
126
General Comments 0
You need to be logged in to leave comments. Login now