From: Simon Glass <simon.glass@canonical.com> Change poll to stop on errors rather than continuing, since errors like permission denied are not recoverable by retrying. Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- tools/pickman/agent.py | 3 +++ tools/pickman/control.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/pickman/agent.py b/tools/pickman/agent.py index e63248a1150..26f4ac3afd9 100644 --- a/tools/pickman/agent.py +++ b/tools/pickman/agent.py @@ -72,6 +72,8 @@ Steps to follow: - For regular commits: git cherry-pick -x <hash> - For merge commits (identified by "Merge" in subject): git cherry-pick -x -m 1 --allow-empty <hash> Cherry-pick one commit at a time to handle each appropriately. + IMPORTANT: Always include merge commits even if they result in empty commits. + The merge commit message is important for tracking history. 4. If there are conflicts: - Show the conflicting files - Try to resolve simple conflicts automatically @@ -91,6 +93,7 @@ Important: - Stop immediately if there's a conflict that cannot be auto-resolved - Do not force push or modify history - If cherry-pick fails, run 'git cherry-pick --abort' +- NEVER skip merge commits - always use --allow-empty to preserve them """ options = ClaudeAgentOptions( diff --git a/tools/pickman/control.py b/tools/pickman/control.py index 446697a0d5a..d9d326a0d21 100644 --- a/tools/pickman/control.py +++ b/tools/pickman/control.py @@ -907,7 +907,7 @@ def do_poll(args, dbs): try: ret = do_step(args, dbs) if ret != 0: - tout.warning(f'Step returned {ret}, continuing anyway...') + tout.warning(f'step returned {ret}') tout.info('') tout.info(f'Sleeping {interval} seconds...') time.sleep(interval) -- 2.43.0