[Concept,0/9] pickman: Improve handling of large merges and add rewind

Message ID 20260212211626.167191-1-sjg@u-boot.org
Headers
Series pickman: Improve handling of large merges and add rewind |

Message

Simon Glass Feb. 12, 2026, 9:16 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

This series adds three improvements to pickman:

- Increase the agent SDK buffer size from 1MB to 10MB to avoid
  fatal errors when processing large responses

- Decompose mega-merges (e.g. "Merge branch 'next'") into
  individual sub-merge batches, so the agent processes them
  one at a time instead of being overwhelmed by hundreds of
  commits at once

- Add a 'rewind' command for stepping the source position back
  by N merges, allowing a cherry-pick run to be retried from
  an earlier point

It also tidies up some pylint warnings.


Simon Glass (9):
  pickman: Fix line-too-long pylint warnings in ftest
  pickman: Extract build_applied_map() from execute_apply()
  pickman: Group named-tuple declarations together
  pickman: Rename error to err for local variables
  pickman: Return NextCommitsInfo from get_next_commits()
  pickman: Increase agent SDK buffer size to 10MB
  pickman: Extract find_unprocessed_commits() from get_next_commits()
  pickman: Decompose mega-merges into sub-merge batches
  pickman: Add rewind command for stepping backwards

 tools/pickman/__main__.py   |  10 +
 tools/pickman/agent.py      |   8 +-
 tools/pickman/control.py    | 634 ++++++++++++++++++-----
 tools/pickman/database.py   |   8 +
 tools/pickman/ftest.py      | 990 +++++++++++++++++++++++++++++++++---
 tools/pickman/gitlab_api.py |  22 +-
 6 files changed, 1470 insertions(+), 202 deletions(-)