Mercurial > public > mercurial-scm > hg-stable
diff hgext/patchbomb.py @ 3096:f422c8265ae5
Add support for diffstat in commit emails, and move diffstat from
patchbomb to patch
author | Matt Doar <matt@xensource.com> |
---|---|
date | Wed, 13 Sep 2006 13:14:08 -0700 |
parents | 51b7f792e473 |
children | 1e2941fda520 |
line wrap: on
line diff
--- a/hgext/patchbomb.py Thu Sep 14 19:24:00 2006 -0700 +++ b/hgext/patchbomb.py Wed Sep 13 13:14:08 2006 -0700 @@ -65,7 +65,7 @@ from mercurial.demandload import * demandload(globals(), '''email.MIMEMultipart email.MIMEText email.Utils - mercurial:commands,hg,mail,ui + mercurial:commands,hg,mail,ui,patch os errno popen2 socket sys tempfile time''') from mercurial.i18n import gettext as _ from mercurial.node import * @@ -76,27 +76,6 @@ import readline except ImportError: pass -def diffstat(patch): - fd, name = tempfile.mkstemp(prefix="hg-patchbomb-", suffix=".txt") - try: - p = popen2.Popen3('diffstat -p1 -w79 2>/dev/null > ' + name) - try: - for line in patch: print >> p.tochild, line - p.tochild.close() - if p.wait(): return - fp = os.fdopen(fd, 'r') - stat = [] - for line in fp: stat.append(line.lstrip()) - last = stat.pop() - stat.insert(0, last) - stat = ''.join(stat) - if stat.startswith('0 files'): raise ValueError - return stat - except: raise - finally: - try: os.unlink(name) - except: pass - def patchbomb(ui, repo, *revs, **opts): '''send changesets as a series of patch emails @@ -123,8 +102,8 @@ if not prompt(s, default = 'y', rest = '? ').lower().startswith('y'): raise ValueError - def cdiffstat(summary, patch): - s = diffstat(patch) + def cdiffstat(summary, patchlines): + s = patch.diffstat(patchlines) if s: if summary: ui.write(summary, '\n')