Repository navigation
Test actual older Git for Windows source-reader fallback - #5358
Merged
Mister-Meeseeks merged 1 commit intoOct 24, 2026
Merged
Conversation
Contributor
|
Independent review (James Reed, with Claude Code). Head Verdict: the new tests are portable and exercise both reader paths. No production code changes. Checks on Linux, CPython 3.12, with this PR's
This doesn't replace your real MinGit 2.35.3 evidence, since a shell wrapper isn't the Windows binary and its pipe semantics. But it confirms the tests are not Windows-only in their logic, and that the fallback assertions hold under an independent rejection implementation. One suggestion: a |
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.
Change and mathematical scope
Complete the actual older-Git-for-Windows handoff in Discussion #4681. Official MinGit 2.35.3.windows.1 really rejects
git cat-file --batch -zwith exit 129 and no stdout; the unchanged source reader falls back once and returns the exact objects. Git 2.47.1.windows.1 is the supported-protocol control.Add four installed-Git tests and a source-pinned evidence/reproduction note. Git object trees represent literal LF/CR/CRLF names without creating forbidden Windows filenames. Coverage includes independent SHA-1/SHA-256 blob IDs, empty/large binary/Unicode payloads, duplicate reads, early closure, invalid requests, actual process/pipe cleanup and watchdog removal. The observer retains the real executable, arguments and pipes; on the unsupported binary, exact-byte tests wait for its real rejection before returning the handle to exercise closed stdin.
This is tooling compatibility evidence. Production code, frozen inputs and the selected frontier are unchanged.
Task and overlap
7c472563474e60185e6ca101a17622133d047e56, unchanged on submission refresh; priority revision 7.0f184845dca823c5cb3fe3f13ef61fe977716d08.portable-replay, scope changed from canonical-payload comparison to the explicit installed-Git source-transport handoff: source pins must be readable before independent replay.Validation
Windows 11 build 26300, CPython 3.12.0 x64,
PYTHONUTF8=1; MinGit archive verified against the publisher's SHA256.For each Windows Git version and each Python mode: 61 discovered, 53 passed and 8 skipped. The skips are six existing POSIX descendant tests and two existing physical CR/LF filename fixtures; all four new tests run on Windows. The old full suite preceded final failure-only test teardown cleanup; the final new module was rerun successfully normally and with
-O. On WSL Ubuntu, Git 2.43.0 / Python 3.12.3, the final new module also passes all four tests in both modes.Two disposable source mutations—disable fallback, or bypass literal CR/LF resolution—each make the new exact-object test fail.
git diff --cached --checkpassed. Exact commands, timings, binary/source hashes and limitations are in the note.The initial default-encoding broader Windows run had an existing Unicode diagnostic-spelling assertion failure; rejection still occurred. It is documented, not counted as a pass or fixed here. Direct-child stall tests use controlled Python subprocesses; native Windows descendant-held pipes are unverified. No selected cold replay, mathematical/proof-kernel verification or hosted-CI success is claimed by this local evidence.
Credit
Retain Nick Petalas (#2752), Mihir Srivastava (#4686), Brian / JoyboyBrian (#4738/#5185), Woklerx, Arham Tahir and Douglas Colkitt's reader/source-contract credit, and Tekalign's object-tree fixture lineage. Prepared for Mihir Srivastava with substantial OpenAI Codex assistance, one agent. Apache-2.0.
Open next questions
The evidence note leaves two separate, unclaimed follow-ups: a native Windows descendant-held-pipe ownership fixture (first prove readiness and survival after leader exit), and the existing Windows diagnostic-encoding assertion. Neither blocks this version-pair compatibility result.