--- a/hgext/patchbomb.py
+++ b/hgext/patchbomb.py
@@ -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 @@ try:
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 @@ def patchbomb(ui, repo, *revs, **opts):
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')