Metadata-Version: 2.0
Name: GDM
Version: 0.3rc2
Summary: A very basic language-agnostic "dependency manager" using Git.
Home-page: https://github.com/jacebrowning/gdm
Author: Jace Browning
Author-email: jacebrowning@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 1 - Planning
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Requires-Dist: YORM (~=0.4)
Requires-Dist: sh (~=1.11)

| |Build Status|
| |Coverage Status|
| |Scrutinizer Code Quality|
| |PyPI Version|
| |PyPI Downloads|

Getting Started
===============

Requirements
------------

-  Python 3.3+
-  Latest version of Git (with `stored
   credentials <http://stackoverflow.com/questions/7773181>`__)
-  OSX/Linux (with a decent shell for Git)

Installation
------------

GDM can be installed with pip:

::

    $ pip3 install gdm

or directly from the source code:

::

    $ git clone https://github.com/jacebrowning/gdm.git
    $ cd gdm
    $ python3 setup.py install

Setup
-----

Create a GDM configuration file (``gdm.yml`` or ``.gdm.yml``) in the
root of your working tree:

.. code:: yaml

    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 GDM's dependency storage location:

::

    $ echo .gdm >> .gitignore

Basic Usage
===========

Get the specified versions of all dependencies:

::

    $ gdm install

which will essentially:

#. create a working tree at *root*/``location``/``dir``
#. fetch from ``repo`` and checkout the specified ``rev``
#. symbolicly link each ``location``/``dir`` from *root*/``link``
   (optional)
#. repeat for all nested working trees containing a configuration file

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}'``

To display the specific versions installed:

::

    $ gdm list

To remove all installed dependencies:

::

    $ gdm uninstall

.. |Build Status| image:: http://img.shields.io/travis/jacebrowning/gdm/master.svg
   :target: https://travis-ci.org/jacebrowning/gdm
.. |Coverage Status| image:: http://img.shields.io/coveralls/jacebrowning/gdm/master.svg
   :target: https://coveralls.io/r/jacebrowning/gdm
.. |Scrutinizer Code Quality| image:: http://img.shields.io/scrutinizer/g/jacebrowning/gdm.svg
   :target: https://scrutinizer-ci.com/g/jacebrowning/gdm/?branch=master
.. |PyPI Version| image:: http://img.shields.io/pypi/v/GDM.svg
   :target: https://pypi.python.org/pypi/GDM
.. |PyPI Downloads| image:: http://img.shields.io/pypi/dm/GDM.svg
   :target: https://pypi.python.org/pypi/GDM

Changelog
=========

0.3 (dev)
---------

- Add '--no-clean' option to disable removing untracked files.
- Add support for `rev-parse` dates as the dependency `rev`.

0.2.5 (2015/06/15)
------------------

- Hide warnings with '--quiet' option.

0.2.4 (2015/05/19)
------------------

- Hide YORM logging bellow warnings.

0.2.3 (2015/05/17)
------------------

- Upgrade to YORM v0.4

0.2.2 (2015/05/04)
------------------

- Require YORM < v0.4

0.2.1 (2015/03/12)
------------------

- Automatically track dependencies that are on branches.
- Require '--force' when there are untracked files.

0.2 (2015/03/10)
----------------

- Added 'list' command to display current URLs/SHAs.

0.1.4 (2014/02/27)
------------------

- Fixed an outdated index when checking for changes.

0.1.3 (2014/02/27)
------------------

- Fixed extra whitespace when logging shell output.

0.1.2 (2014/02/27)
------------------

- Added '--force' argument to:
    - overwrite uncommitted changes
    - create symbolic links in place of directories
- Added live shell command output with '-vv' argument.

0.1 (2014/02/24)
----------------

- Initial release.


