What I like to have is:
- Manage separate subprojects
- Define dependencies among subproject versions
- Check out the right depending versions with one command
- Don't make it hard to submit code through subprojects
There are several ways to manage subprojects, two of which (submodules and subtrees) are described in the manual. Submodules seem to be a nightmare, because the super project only points to commits (is headless). Local changes thus will be destroyed on the next update.
Also changing branches and diff'ing is not an easy task with submodules. This solution might be good, if the one checking out only wants to compile the project with all its dependencies and never contribute.
Subtrees seems to be much cleaner and automatic. You check out a repository into a super repository. Reminds me of svn, but I'm cautious making assumptions when it comes to git ;-)
What I like to have is:
There are several ways to manage subprojects, two of which (submodules and subtrees) are described in the manual. Submodules seem to be a nightmare, because the super project only points to commits (is headless). Local changes thus will be destroyed on the next update.
Also changing branches and diff'ing is not an easy task with submodules. This solution might be good, if the one checking out only wants to compile the project with all its dependencies and never contribute.
Subtrees seems to be much cleaner and automatic. You check out a repository into a super repository. Reminds me of svn, but I'm cautious making assumptions when it comes to git ;-)