Skip to content

sequencer: release the ODB before spawning git commit - #2198

Open
dscho wants to merge 1 commit into
gitgitgadget:masterfrom
git-for-windows:rebase-release-odb-before-commit
Open

sequencer: release the ODB before spawning git commit#2198
dscho wants to merge 1 commit into
gitgitgadget:masterfrom
git-for-windows:rebase-release-odb-before-commit

Conversation

@dscho

@dscho dscho commented Aug 10, 2026

Copy link
Copy Markdown
Member

As of 4557f1a (rebase--helper: add a builtin helper for interactive
rebases, 2017-02-09), continuing an interactive rebase uses the builtin
sequencer, which spawns `git commit`.

The child may trigger auto-maintenance, which may need to replace files
for which the sequencer still holds resources. See
#6315: on Windows, this
produces unlink retry prompts that cannot succeed while the sequencer
waits for the child.

Resources such as file handles or memory mappings must be released
before spawning a command that may run auto-maintenance, as established
by 28d04e1 (run-command: offer to close the object store before
running, 2021-09-09).

Release the sequencer's ODB before spawning `git commit`. The regression
test uses the legacy-delete trick introduced by 69ed0e3 (mingw:
optionally use legacy (non-POSIX) delete semantics, 2026-05-07) to
trigger the failure on modern Windows.

Assisted-by: GPT-5.6 Sol
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho

dscho commented Aug 10, 2026

Copy link
Copy Markdown
Member Author

/submit

@gitgitgadget

gitgitgadget Bot commented Aug 10, 2026

Copy link
Copy Markdown

Submitted as pull.2198.git.1786388689444.gitgitgadget@gmail.com

To fetch this version into FETCH_HEAD:

git fetch https://github.com/gitgitgadget/git/ pr-2198/git-for-windows/rebase-release-odb-before-commit-v1

To fetch this version to local tag pr-2198/git-for-windows/rebase-release-odb-before-commit-v1:

git fetch --no-tags https://github.com/gitgitgadget/git/ tag pr-2198/git-for-windows/rebase-release-odb-before-commit-v1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Repeated unlink of pack file failed during rebase

1 participant