Skip to content

Remove submodule gitlinks that no .gitmodules ever described - #53

Merged
tomchop merged 1 commit into
mainfrom
fix/orphaned-submodule-gitlinks
Sep 2, 2026
Merged

tomchop merged 1 commit into
mainfrom
fix/orphaned-submodule-gitlinks

Conversation

@tomchop

@tomchop tomchop commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Problem

Docker prod test fails on every branch including main, before running any of its own steps:

fatal: No url found for submodule path 'dev/yeti' in .gitmodules
The process '/usr/bin/git' failed with exit code 128

dev/yeti and dev/yeti-feeds-frontend are recorded in the tree as submodules (mode 160000), but .gitmodules has never existed in this repository's history — git log --all -- .gitmodules is empty. There is nothing to resolve them against.

Everything after checkout is skipped, so a red X on a yeti-docker PR carries no information about that PR. It bit #52.

Reproduction

git clone --recurse-submodules does not show it — with no .gitmodules it skips submodule init silently. The failing command is the one actions/checkout runs during its auth-cleanup step:

$ git clone --branch main <repo> && cd repo
$ git submodule foreach --recursive sh -c "true"
fatal: No url found for submodule path 'dev/yeti' in .gitmodules

$ # same command on this branch
$ git submodule foreach --recursive sh -c "true"
$ echo $?
0

The full command from the CI log — git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' ..." — also exits 0 on this branch.

Change

git rm --cached on both paths, and gitignore them. The working tree is untouched: dev/init.sh clones both, so they are checkouts rather than tracked content. dev/yeti-agents is ignored too — another checkout people keep there, currently showing as untracked noise.

Nothing is lost

The recorded revisions were already meaningless:

path recorded commit
dev/yeti 84d623be (2024-06-12) on the unmerged longerauth branch, 205 behind main
dev/yeti-feeds-frontend 8319f1c9 (2024-05-27) on main, ~2 years stale

Relationship to #43

#43 removes these same gitlinks as part of a larger move to sibling checkouts, and adds dev/source-refs.env as a real replacement for the pin. This is the minimal subset, so CI can start being meaningful while #43 takes the time its layout decision needs. It shrinks #43's diff rather than conflicting with it.

dev/yeti and dev/yeti-feeds-frontend were recorded in the tree as submodules,
but .gitmodules has never existed in this repository's history, so there was
nothing to resolve them against. Every checkout failed:

  fatal: No url found for submodule path 'dev/yeti' in .gitmodules
  The process '/usr/bin/git' failed with exit code 128

which is why Docker prod test has been red on every branch, including main,
before running any of its own steps.

Nothing is lost that was not already lost: the recorded revisions were a
2024-06-12 commit on an unmerged branch and a 2024-05-27 one, 205 and several
hundred commits behind their mains. dev/init.sh clones both, so the paths are
ignored rather than tracked.
@tomchop
tomchop merged commit 5f1432f into main Sep 2, 2026
1 check passed
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.

1 participant