[PATCH b4 4/6] fake-am: use the scratch-worktree overrides in the staging worktree
Christian Brauner <[email protected]> Wed, 29 Jul 2026 12:44:31 +0200
| Newsgroups | org.kernel.linux.tools |
|---|---|
| Message-ID | <[email protected]> |
make_fake_am_range() has a throwaway worktree of its own. It stages the blobs the series expects to find, commits that tree, resets onto it and ams the patches on top to get a commit range b4 can diff against. b4 diff goes through it, and so do the review TUI's range-diff and its three-way merge prep. The reset recurses like any other. A series that touches a submodule puts a gitlink into the synthesized tree, and the reset then dies in the same fresh worktree with no submodule clones. The am is worse. Those commits exist to compute a diff range and nothing ever references them, but git still reaches for the user's signing key, and with a card that is not plugged in the whole range fails. Both get SCRATCH_GIT_OPTS. Signed-off-by: Christian Brauner (Amutable) <[email protected]> --- src/b4/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/b4/__init__.py b/src/b4/__init__.py index 1a883b4..d418cee 100644 --- a/src/b4/__init__.py +++ b/src/b4/__init__.py @@ -1449,13 +1449,15 @@ class LoreSeries: return None, None start_commit = out.strip() logger.debug('start_commit=%s', start_commit) - git_run_command(dfn, ['reset', '--hard', start_commit]) + git_run_command(dfn, [*SCRATCH_GIT_OPTS, 'reset', '--hard', start_commit]) ifh = io.BytesIO() save_git_am_mbox(msgs, ifh) ambytes = ifh.getvalue() - ecode, out = git_run_command(dfn, ['am'], stdin=ambytes, logstderr=True) + ecode, out = git_run_command( + dfn, [*SCRATCH_GIT_OPTS, 'am'], stdin=ambytes, logstderr=True + ) if ecode > 0: logger.critical('ERROR: Could not fake-am version v%s', self.revision) return None, None -- 2.53.0