[PATCH 3 of 3 resend] log: add --diffstat for diffstat output
Yuya Nishihara
yuya at tcha.org
Tue Apr 6 11:08:58 CDT 2010
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1270049712 -32400
# Node ID bad5a14a28c946f7c211dc49fc6baa8625d658dc
# Parent 884b72e36da4032bf2fe02c21833b7c1a4f2392b
log: add --diffstat for diffstat output
log --diffstat shows diffstat in place of patch output.
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -845,11 +845,11 @@ class changeset_printer(object):
def showpatch(self, node):
if self.patch:
+ stat = self.diffopts.get('diffstat')
+ diffopts = patch.diffopts(self.ui, self.diffopts)
prev = self.repo.changelog.parents(node)[0]
- chunks = patch.diffui(self.repo, prev, node, match=self.patch,
- opts=patch.diffopts(self.ui, self.diffopts))
- for chunk, label in chunks:
- self.ui.write(chunk, label=label)
+ diffordiffstat(self.ui, self.repo, diffopts, prev, node,
+ match=self.patch, stat=stat)
self.ui.write("\n")
def _meaningful_parentrevs(self, log, rev):
@@ -981,7 +981,7 @@ def show_changeset(ui, repo, opts, buffe
"""
# options
patch = False
- if opts.get('patch'):
+ if opts.get('patch') or opts.get('diffstat'):
patch = matchfn or matchall(repo)
tmpl = opts.get('template')
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -3444,6 +3444,7 @@ logopts = [
('g', 'git', None, _('use git extended diff format')),
('l', 'limit', '', _('limit number of changes displayed')),
('M', 'no-merges', None, _('do not show merges')),
+ ('', 'diffstat', None, _('output diffstat-style summary of changes')),
] + templateopts
diffopts = [
diff --git a/tests/test-debugcomplete.out b/tests/test-debugcomplete.out
--- a/tests/test-debugcomplete.out
+++ b/tests/test-debugcomplete.out
@@ -171,7 +171,7 @@ diff: rev, change, text, git, nodates, s
export: output, switch-parent, rev, text, git, nodates
forget: include, exclude
init: ssh, remotecmd
-log: follow, follow-first, date, copies, keyword, rev, removed, only-merges, user, only-branch, prune, patch, git, limit, no-merges, style, template, include, exclude
+log: follow, follow-first, date, copies, keyword, rev, removed, only-merges, user, only-branch, prune, patch, git, limit, no-merges, diffstat, style, template, include, exclude
merge: force, rev, preview
pull: update, force, rev, branch, ssh, remotecmd
push: force, rev, branch, ssh, remotecmd
@@ -210,10 +210,10 @@ heads: rev, topo, active, closed, style,
help:
identify: rev, num, id, branch, tags
import: strip, base, force, no-commit, exact, import-branch, message, logfile, date, user, similarity
-incoming: force, newest-first, bundle, rev, branch, patch, git, limit, no-merges, style, template, ssh, remotecmd
+incoming: force, newest-first, bundle, rev, branch, patch, git, limit, no-merges, diffstat, style, template, ssh, remotecmd
locate: rev, print0, fullpath, include, exclude
manifest: rev
-outgoing: force, rev, newest-first, branch, patch, git, limit, no-merges, style, template, ssh, remotecmd
+outgoing: force, rev, newest-first, branch, patch, git, limit, no-merges, diffstat, style, template, ssh, remotecmd
parents: rev, style, template
paths:
recover:
diff --git a/tests/test-log b/tests/test-log
--- a/tests/test-log
+++ b/tests/test-log
@@ -121,6 +121,9 @@ hg log -d -1
echo '% log -p -l2 --color=always'
hg --config extensions.color= log -p -l2 --color=always
+echo '% log -r tip --diffstat'
+hg log -r tip --diffstat
+
cd ..
hg init usertest
diff --git a/tests/test-log.out b/tests/test-log.out
--- a/tests/test-log.out
+++ b/tests/test-log.out
@@ -306,6 +306,16 @@ summary: m12
[0;35m@@ -0,0 +1,1 @@[0m
[0;32m+b2[0m
+% log -r tip --diffstat
+changeset: 6:2404bbcab562
+tag: tip
+user: test
+date: Thu Jan 01 00:00:01 1970 +0000
+summary: b1.1
+
+ b1 | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
adding a
adding b
changeset: 0:29a4c94f1924
More information about the Mercurial-devel
mailing list