I'll be honest, I haven't had a need to really routinely use submod in a while, and without users reporting issues, I don't know they exist.
I have a need for it again and I found multiple issues along similar themes:
-
Failing to check if a file or directory exists -- I ran into this in every conceivable way (submodule dir doesn't exist yet, submod.toml doesn't exist yet, gitmodules doesn't exist yet...). Clearly a systematic oversight on actually checking for file/directory state before trying file ops.
-
The above issue prevented most commands from working as expected out of the box.
-
Sync state between submod.toml, gitmodules. I found if I set values other than branch and repo in submod.toml that they didn't actually sync and stay synced with .gitmodules, including after manually updating .gitmodules. This has a cascading effect of settings like ignore, fetchRecurse, and update not being honored, or so it seems.
-
We may have dialed the chattiness back a little too much -- it's now hard to tell if it's doing what it should be doing or just telling you it did.
I'll be honest, I haven't had a need to really routinely use
submodin a while, and without users reporting issues, I don't know they exist.I have a need for it again and I found multiple issues along similar themes:
Failing to check if a file or directory exists -- I ran into this in every conceivable way (submodule dir doesn't exist yet, submod.toml doesn't exist yet, gitmodules doesn't exist yet...). Clearly a systematic oversight on actually checking for file/directory state before trying file ops.
The above issue prevented most commands from working as expected out of the box.
Sync state between submod.toml, gitmodules. I found if I set values other than branch and repo in submod.toml that they didn't actually sync and stay synced with .gitmodules, including after manually updating .gitmodules. This has a cascading effect of settings like
ignore,fetchRecurse, andupdatenot being honored, or so it seems.We may have dialed the chattiness back a little too much -- it's now hard to tell if it's doing what it should be doing or just telling you it did.