[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

AltStyle によって変換されたページ (->オリジナル) /