| If you are looking for something very light and efficient, let me suggest you to give a try to: https://github.com/fviard/svn_xternals Despite the README saying that it is a work in progress, the tool is functional for a few years already. Also, again despite the name, it works with GIT. The idea is to be able to use the concept of "externals" from SVN transparently with svn or GIT. It does something similar to what Google "gclient" was doing but in a more efficient way (ie a lot faster and consuming a lot less resources). To use it, you just need to create a file ("externals.conf" in your project for example), in a format like that: externals.conf git@github.com:user/myproject_core.git myproject/core
git@github.com:user/myproject_plugins_onething.git myproject/plugins/onething
git@github.com:anotheruser/another_thing.git@mybranch myproject/plugins/another_thing
git@github.com:corpuser/random_library.git@release-tag-123 myproject/vendor/random_library
Then, you can simply run:
python3 externalsup.pyAnd it will take care to do automatically the git clone, or pull, or "switch" if you change a branch/tag indicator in the externals file. Like that, you can easily commit a externals.conf file in a root project folder, and individually manage the version of sub-components that can be hosted anywhere. The "externals.conf" file is a plain text file so easily to read and diff to compare different versions of your project. |