hgext/notify.py
changeset 2296 6e8e3dd7976e
parent 2230 332950340788
child 2326 d0ba2f6b9d97
equal deleted inserted replaced
2295:9c15f85e61b1 2296:6e8e3dd7976e
   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)