You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
shape-doctor.py: a .gitmodules section name that is not UTF-8 is looked up by its decoded form, so configured_url and kept_gitdir miss a Latin-1 member and the update line is handed over with no keep line #732
Goal: the doctor finds a member whose .gitmodules section name is not UTF-8 by that name's own bytes. That holds in configured_url and kept_gitdir as it does in gitmodules_entry. A member with a commit on its detached HEAD then gets its keep line under any locale.
Filed by lane openRepoShape-3 under v1.1.1, on Brett Heap's word of 2026-10-16T13:35:28Z ("yes create v1.1.1"). Lane 3's reviewer RV-c found it while reviewing #700 (#668), as S2. Main does the same under LC_ALL=C, so this is not a regression. #700 makes the two locales agree.
What happens. RV-c measured this on #700's head 6179e6a4:
Set-up: a holder with a real submodule named caf\xe9 (Latin-1), a commit made on the submodule's detached HEAD, then git submodule deinit -f.
Under C.UTF-8:checkout_reach gives ('checkout', None, …). The doctor hands over the update line with no keep line, so the commit survives only in the reflog. Main gives ('no-url', …) here.
The ASCII control (cafe) gives ('checkout', (…/modules/cafe, 'aa29d244…', None), …), and the keep line is printed.
What to do:
Keep the section name byte-faithful from the git config -z --list read through configured_url and kept_gitdir, for example with surrogateescape.
Hand it to git as the same bytes.
Pin the fix with the Latin-1 holder above, under a UTF-8 locale and under LC_ALL=C. The keep line must be printed in both, as it is for the ASCII control.
CLAIMED — lane openRepoShape-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-16T17:28:05Z, for #732
Logged in lanes/log/openRepoShape-3.md at 77db6dda82b1784f856a4f7f2f58f5dd3ce55803.
The three reads (lane-collision-protocol Rule 1):
1. existing `CLAIMED —` comments on opensoft/openRepoShape#732:
none
2. `gh pr list --repo opensoft/openRepoShape --state all --search "#732"`, kept where the row or its body names `#732`:
none
3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `732` as a whole token:
none
Activity
brettheap commentedon Oct 16, 2026
CLAIMED — lane openRepoShape-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-16T17:28:05Z, for #732
Logged in
lanes/log/openRepoShape-3.mdat77db6dda82b1784f856a4f7f2f58f5dd3ce55803.The three reads (lane-collision-protocol Rule 1):
shape-doctor.py: `submodule_config` and `gitmodules_entry` read a hol…
shape-doctor.py: `git_bytes` says that on Windows a section name that…
siblings.py: a `.gitmodules` section NAME keeps git's bytes, so two n…