226 self.ui.write('\n') |
226 self.ui.write('\n') |
227 else: |
227 else: |
228 mail = self.ui.sendmail() |
228 mail = self.ui.sendmail() |
229 mail.sendmail(templater.email(msg['From']), self.subs, msgtext) |
229 mail.sendmail(templater.email(msg['From']), self.subs, msgtext) |
230 |
230 |
231 def diff(self, node): |
231 def diff(self, node, ref): |
232 maxdiff = int(self.ui.config('notify', 'maxdiff', 300)) |
232 maxdiff = int(self.ui.config('notify', 'maxdiff', 300)) |
233 if maxdiff == 0: |
233 if maxdiff == 0: |
234 return |
234 return |
235 fp = templater.stringio() |
235 fp = templater.stringio() |
236 prev = self.repo.changelog.parents(node)[0] |
236 prev = self.repo.changelog.parents(node)[0] |
237 commands.dodiff(fp, self.ui, self.repo, prev, |
237 commands.dodiff(fp, self.ui, self.repo, prev, ref) |
238 self.repo.changelog.tip()) |
|
239 difflines = fp.getvalue().splitlines(1) |
238 difflines = fp.getvalue().splitlines(1) |
240 if maxdiff > 0 and len(difflines) > maxdiff: |
239 if maxdiff > 0 and len(difflines) > maxdiff: |
241 self.sio.write(_('\ndiffs (truncated from %d to %d lines):\n\n') % |
240 self.sio.write(_('\ndiffs (truncated from %d to %d lines):\n\n') % |
242 (len(difflines), maxdiff)) |
241 (len(difflines), maxdiff)) |
243 difflines = difflines[:maxdiff] |
242 difflines = difflines[:maxdiff] |
258 start = repo.changelog.rev(node) |
257 start = repo.changelog.rev(node) |
259 end = repo.changelog.count() |
258 end = repo.changelog.count() |
260 count = end - start |
259 count = end - start |
261 for rev in xrange(start, end): |
260 for rev in xrange(start, end): |
262 n.node(repo.changelog.node(rev)) |
261 n.node(repo.changelog.node(rev)) |
|
262 n.diff(node, repo.changelog.tip()) |
263 else: |
263 else: |
264 count = 1 |
264 count = 1 |
265 n.node(node) |
265 n.node(node) |
266 n.diff(node) |
266 n.diff(node, node) |
267 n.send(node, count) |
267 n.send(node, count) |