* _Creating a tag across repositories would involve visiting every repository to add a tag to it._
These two, at least, are technically accounted for by git submodules, though they are a bit of a pain to use.
* _Creating a tag across repositories would involve visiting every repository to add a tag to it._
These two, at least, are technically accounted for by git submodules, though they are a bit of a pain to use.
It really shines, if you use them for third party libraries that you are keeping patches for. In the old days, updating said libraries was nearly impossible once you began patching them. With submodules, you can use git's really cool merging capabilities to help you.
Even better: The workflow when updating a library patched by you to a newer upstream version stays the same as if you'd just do a traditional merge in your own codebase. So there's no need to learn even more commands or new workflows - it just works.
I'm a huge, huge fan of how git submodules work.
1. Create a new repo.
2. Get the branched submodule.
3. Check that in as head: Note, now HEAD will NOT compile - I've committed broken code.
4. Go back to the original repo.
5. Get HEAD: this pulls the hash I need.
6. Do the merge. The submodule doesn merge, because it has the right hash.
Surely there must be some way to just modify the hash. But I don't know where to change it. I found it in several locations, but I don't know how it works, and hacking my VCS isnt my idea of good sense.