I have thats why I said that they both did their job well. Subversion came because CVS had some shortcomings, so SVN was more like re-imagining how to accomplish a task rather than re-inventing the wheel. Then SVN had its shortcomings as well, enter Git & Mercurial, a re-imagination on how to do the job in a better way.
But comparing Composer with Git & its ilk is like comparing apples to oranges, both were made to accomplish different goals.
Seems like you didn't read my last post. Git or SVN etc are things you need to install to be able to use them, Composer is just a PHP Archive (a PHAR file just like Java archive is a JAR file) containing a bunch of PHP scripts. No need to install anything.
Lets consider an example. Say we need to install some packages in our app - A, B, C & D.
Lets do it your way (using Git for what its not):
- Create a Git repo for project.
Package to install = A
- Hunt down the Git repo for Package to install & include it in your project as sub-module
- Does Package to install has any dependencies on other libraries/packages? If yes then continue else move to Step 7.
Package to install = dependency
- Move to Step 3
- Has all packages been installed? If no then continue else move to Step 10.
Package to install = next package to list (one from B, C & D)
- Move to Step 3
- You're all done, congratulations. But if any of your included packages adds another dependency in future, then good luck, you're gonna need it.
Now lets do it Composer way:
- Create composer.json file
- Add all package names to composer.json
- Run >> composer install
- You're done, congratulations. If any of the included packages adds or removes any dependencies in future then let them do it, you don't have to worry at all.
If this doesn't show the difference between Composer & using Git as something it is not then I don't know what will.
This discussion is now just going to get out of context & off topic, arguments for arguments sake, something I definitely don't have any intention to indulge in. So, each to his/her own.