git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[StGit PATCH] teach --summary to stg show

From
ACAlex Chiang <achiang@hp.com>
Date
Jun 19, 2009, 05:06 UTC
Message-ID
<20090619050653.GD21764@ldl.fc.hp.com>

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@hp.com>
---
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)
Next: Catalin Marinas
Message 1 of 4 in “teach --summary to stg show”
  1. teach --summary to stg showAlex Chiang, Jun 19, 2009
  2. Catalin MarinasJul 10, 2009
  3. Alex ChiangJul 10, 2009
  4. Catalin MarinasJul 10, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.