Where I work, we use a tool called apache Ivy for dependency management. However, I have recently been working on a project of my own with multiple repositories, therefore, I am using a git superproject to maintain all of them. The git submodules has been great for me and so far I strongly prefer them over Ivy. Here are the main things I like about them over Ivy:
- Anytime you make a changes to two or more repositories that are dependent on each other, you can just commit to the superproject so it is apparent what is dependent on what. In Ivy, you have to do an entirely new release which is annoying.
- It is much easier to track your changes better in a superproject. To my knowledge, Ivy doesn't keep very good track of you changes to a release.
- Git has much more support than Ivy
- You only have to understand one tool, GIT!!!
However, my company refuses to touch git submodules/superprojects. I have also been doing some research and it appears that a lot of people do not like git submodules and it is not considered good as a "dependency management" tool. Can anyone help me understand why?