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
adopt-project.py: a .gitmodules with a key with no value passes check when the tip holds no submodule but the history does, and execute dies in git fast-export after both legs are pushed #195
Found by this lane's re-verification of #166 at 6aaedc5 (PR #194), NIT-1. Main f25d805 behaves the same, so this is not a regression from #166.
What is wrong.git filter-repo runs git fast-export, which reads the checked-out .gitmodules for EVERY gitlink in the history being exported, not only those in the tip tree.
#166's checks look for gitlinks in the TIP tree only:
the "a key with no value registers nothing beside no submodule" relief;
the _where_git_fails extraction rule.
So a source can satisfy both checks and still break fast-export:
its history once held a gitlink;
its tip holds none;
its tip .gitmodules has a key with no value ([submodule "b"]\n\tpath) or a syntax error.
hist-bare-gm:code main / 6aaedc5: check 0 | execute 2 after both leg remotes exist
by hand: error: missing value for 'submodule.b.path' ... Error: fast-export failed
A corrected re-run then meets leg-remote-exists. Driver: the #166 re-verifier's tools/s3c.py. Two texts on the #166 branch claim the opposite for this shape: the docstring near adopt-project.py:448 and PR #194's body. PR #194's body has been narrowed to "when the tip holds no submodule".
What would fix it. Look for gitlinks across the history of the commit the plan names (git rev-list --objects or git log --raw filtered to mode 160000), not only the tip. check then reports, and execute refuses before any leg exists, an unreadable .gitmodules in a plan that extracts a leg from such a history.
CLAIMED — lane openRepoShape-3, session 566fec94-6fde-4579-947f-ec4fda5ce14f@Eagle, 2026-10-11T00:27:52Z, for #195
Logged in lanes/log/openRepoShape-3.md at 5f8ba315c39b2251155c5a9a297c0d43ed07e33b.
The three reads (lane-collision-protocol Rule 1):
1. existing `CLAIMED —` comments on opensoft/openRepoShape#195:
none
2. `gh pr list --repo opensoft/openRepoShape --state all --search "#195"`, kept where the row or its body names `#195`:
none
3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `195` as a whole token:
none
Activity
brettheap commentedon Oct 11, 2026
CLAIMED — lane openRepoShape-3, session 566fec94-6fde-4579-947f-ec4fda5ce14f@Eagle, 2026-10-11T00:27:52Z, for #195
Logged in
lanes/log/openRepoShape-3.mdat5f8ba315c39b2251155c5a9a297c0d43ed07e33b.The three reads (lane-collision-protocol Rule 1):
adopt-project.py: the #195 history scan reads the source's history wi…
adopt-project.py: a `.gitmodules` git's submodule reader cannot read …
adopt-project.py: a `.gitmodules` value git's submodule reader refuse…
Merge origin/main (5751460: #214 via #246, #217 via #230, #209 via #218…
Merge origin/main (c3a9645: #215 via #240, #241 via #256) into fix/ad…
Merge origin/main 60588d5 into fix/adopt-root-kept-symlinks: #214, #217…
Merge origin/main (5751460, #212 via #223) into fix/adopt-late-failur…
Merge origin/main (c3f4987) into fix/adopt-plan-quote-yaml-keywords