[Concept,3/7] patman: Show summary after scanning commits

Message ID 20260214032632.3957279-4-sjg@u-boot.org
State New
Headers
Series patman: Improve series subcommand output |

Commit Message

Simon Glass Feb. 14, 2026, 3:26 a.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

When scanning commits for a series, show a summary notice with the
total count and how many were added or removed. This makes it easier
to see at a glance what changed during a scan operation.

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---

 tools/patman/cseries.py      | 15 +++++++++++++++
 tools/patman/test_cseries.py |  4 +++-
 2 files changed, 18 insertions(+), 1 deletion(-)
  

Patch

diff --git a/tools/patman/cseries.py b/tools/patman/cseries.py
index c94daf59e36..c5620985a09 100644
--- a/tools/patman/cseries.py
+++ b/tools/patman/cseries.py
@@ -803,13 +803,17 @@  class Cseries(cser_helper.CseriesHelper):
             if i is not None:
                 del to_remove[i]
 
+        removed = 0
+        added = 0
         for seq, cmt in enumerate(ser.commits):
             if seq in to_remove:
                 _show_item('-', seq, to_remove[seq].subject)
                 del to_remove[seq]
+                removed += 1
             if seq in to_add:
                 _show_item('+', seq, to_add[seq].subject)
                 del to_add[seq]
+                added += 1
             else:
                 _show_item(' ', seq, cmt.subject)
         seq = len(ser.commits)
@@ -823,6 +827,17 @@  class Cseries(cser_helper.CseriesHelper):
         self._add_series_commits(ser, svid)
         if not dry_run:
             self.commit()
+            seq = len(ser.commits)
+            msg = ''
+            if added:
+                msg += f'{added} added'
+            if removed:
+                if msg:
+                    msg += ', '
+                msg += f'{removed} removed'
+            if msg:
+                msg = f' ({msg})'
+            tout.notice(f'Scanned {seq} commit{self.plural(seq)}{msg}')
         else:
             self.rollback()
             tout.info('Dry run completed')
diff --git a/tools/patman/test_cseries.py b/tools/patman/test_cseries.py
index b25debec3fe..a7750525ea6 100644
--- a/tools/patman/test_cseries.py
+++ b/tools/patman/test_cseries.py
@@ -3335,7 +3335,9 @@  Date:   .*
 
         with terminal.capture() as (out, _):
             self.run_args('series', 'scan', '-M', pwork=True)
-        self.assertEqual(expect, out.getvalue())
+        self.assertEqual(
+            expect + 'Scanned 3 commits (1 added, 1 removed)\n',
+            out.getvalue())
 
         new_pcdict = cser.get_pcommit_dict(svid).values()
         self.assertEqual(len(old_pcdict), len(new_pcdict))