Git Dependency Manager (gdm
) is a language-agnostic "dependency manager" using Git. It aims to serve as a submodules replacement and provides advanced options for managing versions of nested Git repositories.
- Python 3.4+
- Latest version of Git (with stored credentials)
- OSX/Linux (with a decent shell for Git)
gdm
can be installed with pip:
$ pip install gdm
or directly from the source code:
$ git clone https://github.com/jacebrowning/gdm.git
$ cd gdm
$ python setup.py install
Create a configuration file (gdm.yml
or .gdm.yml
) in the root of your working tree:
location: .gdm
sources:
- repo: https://github.com/kstenerud/iOS-Universal-Framework
dir: framework
rev: Mk5-end-of-life
- repo: https://github.com/jonreid/XcodeCoverage
dir: coverage
rev: master
link: Tools/XcodeCoverage
Ignore the dependency storage location:
$ echo .gdm >> .gitignore
See the available commands:
$ gdm --help
Get the latest versions of all dependencies:
$ gdm update
which will essentially:
- create a working tree at root/
location
/dir
- fetch from
repo
and checkout the specifiedrev
- symbolically link each
location
/dir
from root/link
(if specified) - repeat for all nested working trees containing a configuration file
- record the actual commit SHAs that were checked out (with
--lock
option)
where rev
can be:
- all or part of a commit SHA:
123def
- a tag:
v1.0
- a branch:
master
- a
rev-parse
date:'develop@{2015-06-18 10:30:59}'
Display the specific revisions that are currently installed:
$ gdm list
Reinstall these specific versions at a later time:
$ gdm install
Remove all installed dependencies:
$ gdm uninstall
See the full documentation at git-dependency-manager.info.