this post was submitted on 29 Jul 2024
17 points (100.0% liked)
Git
29 readers
1 users here now
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Resources
Rules
- Follow programming.dev rules
- Be excellent to each other, no hostility towards users for any reason
- No spam of tools/companies/advertisements. It’s OK to post your own stuff part of the time, but the primary use of the community should not be self-promotion.
Git Logo by Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
An alternative, not a replacement. Vdm is specifically designed to track code dependencies. There are use cases like monorepos where vdm won't work.
Git does track submodule history unlike vdm.
Git submodules don't delete those .git directories. It uses them.
This is not how git submodules or subtrees work.
Git submodules and subtrees don't support anything other than git remotes.
Erm yeah because the whole point of monorepos is that you don't use submodules. What?
The history of submodules is tracked in the submodule repo. VDM doesn't change that.
It doesn't use them any differently to if you had just checked out the submodule standalone. I'm not exactly sure what VDM does (haven't used it) but that doesn't seem like a big thing.
No?. Actually that's not all you need to manage for git submodules - there's additional hidden state so you can't just edit that file; you need to use
git add/rm
. Which is fundamentally the same but worse - this is one of the selling points of the alternatives like VDM. It's way less confusing.So? Alternatives to git submodules don't need to restrict themselves to its features.
Not true. The whole point of monorepos is that you track everything in a single repo. There is absolutely no requirement or constraint to avoid using specific features of specific VCSs or even package managers.