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. This new option is handy for getting a sense of the scale of your patch-series-in-progress. You'd think this option wouldn't be necessary, but simply piping the output of stg show -a into diffstat (v1.45) doesn't do the Right Thing(tm): achiang@bob:linux-2.6$ stg series + export-acpi-pci-root + acpiphp-find-bridges-easy > acpi-pci-detect-ejectable-interface achiang@bob:linux-2.6$ stg show -a | diffstat b/drivers/acpi/pci_root.c | 16 ------ b/drivers/pci/hotplug/acpi_pcihp.c | 7 -- b/drivers/pci/hotplug/acpiphp_glue.c | 89 +++++++++++------------------------ b/drivers/pci/hotplug/pciehp_acpi.c | 5 + b/include/acpi/acpi_bus.h | 14 +++++ b/include/linux/pci_hotplug.h | 2 drivers/pci/hotplug/acpiphp_glue.c | 14 ----- 7 files changed, 52 insertions(+), 95 deletions(-) Here is the correct diffstat using the new -s option. achiang@bob:linux-2.6$ stg show -a -s drivers/acpi/pci_root.c | 16 +------ drivers/pci/hotplug/acpi_pcihp.c | 7 +-- drivers/pci/hotplug/acpiphp_glue.c | 77 ++++++++---------------------------- drivers/pci/hotplug/pciehp_acpi.c | 5 +- include/acpi/acpi_bus.h | 14 +++++++ include/linux/pci_hotplug.h | 2 - 6 files changed, 39 insertions(+), 82 deletions(-) Signed-off-by: Alex Chiang <achiang@xxxxxx> --- diff --git a/stgit/commands/show.py b/stgit/commands/show.py index b7a8aa9..1f862f7 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', '--summary', action = 'store_true', + short = 'Show a diffstat summary of the specified patches'), ] + argparse.diff_opts_option() directory = DirectoryHasRepository(log = False) @@ -62,9 +65,14 @@ def func(parser, options, args): patches = args 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.summary: + commit_str = gitlib.diffstat(git.diff( + rev1 = git_id(crt_series, '%s^' % patches[0]), + rev2 = git_id(crt_series, '%s' % patches[-1]))) + else: + 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 commit_str: pager(commit_str) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html