Repository navigation
Honor Command interruption during repository lock acquisition - #474
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ordinary Runs now stop waiting for a repository lock when their Command is interrupted. Completion views still acquire the lock and finish cleanup without clearing the recorded request.
Closes #473
Evidence
ordinary_repository_lock_contention_stops_before_the_holder_releasesfailed on SIGINT withacquisition waited for holder releasewhile testing the original blocking implementation.After: the same regression passes for SIGINT, SIGTERM, and SIGHUP. All 11 Git execution tests pass, including completion through arriving and recorded signals, retained ordinary policy, shared worktree locking, and ownership until drop.
cargo check --all-targets,cargo fmt --check, andcargo clippy --all-targets -- -D warningspass.cargo testrerun passes: 1285 tests passed, 1 existing test ignored. The first run stopped onharness::settings::tests::an_interrupted_model_check_is_an_error_instead_of_retrying_the_pair(expectedinterrupted, received the Setup EOF error). That unchanged test passed in isolation and on the full rerun.7414bc8; both release-build checks also pass.main(b2c0028) withthirdshift-code-review: Standards 0 findings; Spec 0 findings.Seams under test
Git::lock,Git::completion, and ordinary Git execution interfaces, using real temporary repositories and independent file opens for contention and ownership.Merge Danger
Door: two-way
Blast Radius: repository
Affects Worktree serialization and Base fix lock acquisition. Existing ordinary/completion caller choices, native Git command retry behavior, lock paths, and file ownership remain intact.
Unaddressed findings
Standards
None; the review reported no findings.
Spec
None; the review reported no findings.
Built with codex · gpt-6.1-sol · xhigh