[Python-checkins] hooks: Use diffstat instead of ctx.files() to report summary of changed files.
local-hg
python-checkins at python.org
Wed Mar 23 16:29:20 CET 2011
http://hg.python.org/hooks/rev/b35f1e6f37d5
changeset: 67:b35f1e6f37d5
user: Antoine Pitrou <solipsis at pitrou.net>
date: Wed Mar 23 16:29:20 2011 +0100
summary:
Use diffstat instead of ctx.files() to report summary of changed files.
This should fix the inconsistent display of changed files in merge changesets.
files:
mail.py | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/mail.py b/mail.py
--- a/mail.py
+++ b/mail.py
@@ -9,6 +9,7 @@
from mercurial import cmdutil, patch
from mercurial.node import nullid
from mercurial.encoding import fromlocal
+from mercurial.util import iterlines
import smtplib
import os
import sys
@@ -52,15 +53,19 @@
body += [CSET_URL % (path, ctx)]
body += [line for line in log.splitlines()[:-2]
if line != 'tag: tip']
- body += ['summary:\n ' + fromlocal(ctx.description()), '']
- body += ['files:\n ' + '\n '.join(ctx.files()), '']
+ body += ['summary:\n ' + fromlocal(ctx.description())]
+ # ctx.files() gives us misleading info on merges, we use a diffstat instead
+ body += ['', 'files:']
diffopts = patch.diffopts(repo.ui, {'git': True, 'showfunc': True})
parents = ctx.parents()
node1 = parents and parents[0].node() or nullid
node2 = ctx.node()
- differ = patch.diff(repo, node1, node2, opts=diffopts)
- body.append(''.join(chunk for chunk in differ))
+ diffchunks = list(patch.diff(repo, node1, node2, opts=diffopts))
+ body.append(''.join(line for line in
+ patch.diffstat(iterlines(diffchunks), width=60, git=True)
+ ))
+ body.append(''.join(chunk for chunk in diffchunks))
body.append('-- ')
body.append('Repository URL: %s%s' % (BASE, path))
--
Repository URL: http://hg.python.org/hooks
More information about the Python-checkins
mailing list