From: Catalin Marinas Date: Fri, 10 Jul 2009 10:11:05 GMT Subject: Re: [StGit PATCH] teach --summary to stg show Message-ID: In-Reply-To: <20090619050653.GD21764@ldl.fc.hp.com> Hi Alex, Sorry for the loooong delay. 2009/6/19 Alex Chiang : > Add -s/--summary option to stg show, which will generate a nice > diffstat, similar to what you get in a cover mail if you specify > %(diffstat)s. I would use --stat for consistency with the diff command. > +        commit_str = gitlib.diffstat(git.diff( > +                                rev1 = git_id(crt_series, '%s^' % patches[0]), > +                                rev2 = git_id(crt_series, '%s' % patches[-1]))) This works only of the shown patches are consecutive. If you specify random patches, the diffstat isn't correct. I propose this form of the patch: diff --git a/stgit/commands/show.py b/stgit/commands/show.py index b7a8aa9..45c3a56 100644 --- a/stgit/commands/show.py +++ b/stgit/commands/show.py @@ -20,6 +20,7 @@ from pydoc import pager from stgit.argparse import opt from stgit.commands.common import * from stgit import argparse, git +from stgit.lib import git as gitlib help = 'Show the commit corresponding to a patch' kind = 'patch' @@ -38,6 +39,8 @@ options = [ short = 'Show the applied patches'), opt('-u', '--unapplied', action = 'store_true', short = 'Show the unapplied patches'), + opt('-s', '--stat', action = 'store_true', + short = 'Show a diffstat summary of the specified patches'), ] + argparse.diff_opts_option() directory = DirectoryHasRepository(log = False) @@ -61,10 +64,13 @@ def func(parser, options, args): # individual patches or commit ids patches = args - options.diff_flags.extend(color_diff_flags()) + if not options.stat: + options.diff_flags.extend(color_diff_flags()) commit_ids = [git_id(crt_series, patch) for patch in patches] commit_str = '\n'.join([git.pretty_commit(commit_id, flags = options.diff_flags) for commit_id in commit_ids]) + if options.stat: + commit_str = gitlib.diffstat(commit_str) if commit_str: pager(commit_str) -- Catalin