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

[PATCH 4/7] "stg series" option to show patch summary descriptions

From
CLChuck Lever <cel@netapp.com>
Date
Nov 29, 2005, 22:09 UTC
Message-ID
<20051129220945.9885.51164.stgit@dexter.citi.umich.edu>
In-Reply-To
<20051129220552.9885.41086.stgit@dexter.citi.umich.edu>
Optionally show each patch's short description when listing a series.
Signed-off-by: Chuck Lever <cel@netapp.com>
---
 stgit/commands/series.py |   48 +++++++++++++++++++++++++++++++---------------
 1 files changed, 32 insertions(+), 16 deletions(-)
diff --git a/stgit/commands/series.py b/stgit/commands/series.py
index 032b89e..a843307 100644
--- a/stgit/commands/series.py
+++ b/stgit/commands/series.py
@@ -33,12 +33,31 @@ prefixed with a '>'. Empty patches are p
 
 options = [make_option('-b', '--branch',
                        help = 'use BRANCH instead of the default one'),
+           make_option('-d', '--description',
+                       help = 'show a show description for each patch',
+                       action = 'store_true'),
            make_option('-e', '--empty',
                        help = 'check whether patches are empty '
                        '(much slower)',
                        action = 'store_true') ]
 
 
+def __get_description(patch):
+    """Extract and return a patch's short description
+    """
+    p = crt_series.get_patch(patch)
+    descr = p.get_description().strip()
+    descr_lines = descr.split('\n')
+    return descr_lines[0].rstrip()
+
+def __print_patch(patch, prefix, empty_prefix, length, options):
+    if options.empty and crt_series.empty_patch(patch):
+        prefix = empty_prefix
+    if options.description:
+        print prefix + patch.ljust(length) + '  | ' + __get_description(patch)
+    else:
+        print prefix + patch
+
 def func(parser, options, args):
     """Show the patch series
     """
@@ -46,21 +65,18 @@ def func(parser, options, args):
         parser.error('incorrect number of arguments')
 
     applied = crt_series.get_applied()
+    unapplied = crt_series.get_unapplied()
+    patches = applied + unapplied
+
+    max_len = 0
+    if len(patches) > 0:
+        max_len = max([len(i) for i in patches])
+
     if len(applied) > 0:
         for p in applied [0:-1]:
-            if options.empty and crt_series.empty_patch(p):
-                print '0', p
-            else:
-                print '+', p
-        p = applied[-1]
-
-        if options.empty and crt_series.empty_patch(p):
-            print '0>%s' % p
-        else:
-            print '> %s' % p
-
-    for p in crt_series.get_unapplied():
-        if options.empty and crt_series.empty_patch(p):
-            print '0', p
-        else:
-            print '-', p
+            __print_patch(p, '+ ', '0 ', max_len, options)
+
+        __print_patch(applied[-1], '> ', '0>', max_len, options)
+
+    for p in unapplied:
+        __print_patch(p, '- ', '0 ', max_len, options)
Previous: Chuck LeverNext: Chuck Lever
Message 6 of 16 in “[PATCH 0/7]”
  1. 0/7 Chuck Lever, Nov 29, 2005
  2. 1/7 Make "stg export" save the base commit in the output directoryChuck Lever, Nov 29, 2005
  3. Catalin MarinasNov 30, 2005
  4. 2/7 Use git-rev-parse to find the local GIT repositoryChuck Lever, Nov 29, 2005
  5. 3/7 Align branch descriptions in output of "stg branch -l"Chuck Lever, Nov 29, 2005
  6. 4/7 "stg series" option to show patch summary descriptionsChuck Lever, Nov 29, 2005
  7. 5/7 Add facility to print short list of patches around 'top'Chuck Lever, Nov 29, 2005
  8. 6/7 Add a "--clone" option to "stg branch"Chuck Lever, Nov 29, 2005
  9. Catalin MarinasDec 1, 2005
  10. Chuck LeverDec 1, 2005
  11. 7/7 Use a separate directory for patches under each branch subdirChuck Lever, Nov 29, 2005
  12. Catalin MarinasNov 30, 2005
  13. Chuck LeverNov 30, 2005
  14. Catalin MarinasNov 30, 2005
  15. Chuck LeverDec 1, 2005
  16. Catalin MarinasNov 30, 2005

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.