Metadata-Version: 1.1
Name: GitMan
Version: 1.5.post1
Summary: A language-agnostic dependency manager using Git.
Home-page: https://github.com/jacebrowning/gitman
Author: Jace Browning
Author-email: jacebrowning@gmail.com
License: MIT
Description-Content-Type: text/markdown
Description: Unix: [![Build Status](https://travis-ci.org/jacebrowning/gitman.svg?branch=develop)](https://travis-ci.org/jacebrowning/gitman) Windows: [![Windows Build Status](https://img.shields.io/appveyor/ci/jacebrowning/gitman/develop.svg)](https://ci.appveyor.com/project/jacebrowning/gitman)<br>Metrics: [![Coverage Status](https://img.shields.io/coveralls/jacebrowning/gitman/develop.svg)](https://coveralls.io/r/jacebrowning/gitman) [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/jacebrowning/gitman.svg)](https://scrutinizer-ci.com/g/jacebrowning/gitman/?branch=develop)<br>Usage: [![PyPI Version](https://img.shields.io/pypi/v/GitMan.svg)](https://pypi.org/project/GitMan)
        
        # Overview
        
        GitMan 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.
        
        ![demo](https://raw.githubusercontent.com/jacebrowning/gitman/develop/docs/demo.gif)
        
        # Setup
        
        ## Requirements
        
        * Python 3.5+
        * Git 2.8+ (with [stored credentials](http://gitman.readthedocs.io/en/latest/setup/git/))
        
        ## Installation
        
        Install GitMan with pip:
        
        ```sh
        $ pip install gitman
        ```
        
        or directly from the source code:
        
        ```sh
        $ git clone https://github.com/jacebrowning/gitman.git
        $ cd gitman
        $ python setup.py install
        ```
        
        ## Configuration
        
        Generate a sample config file:
        
        ```sh
        $ gitman init
        ```
        
        or manually create one (`gitman.yml` or `.gitman.yml`) in the root of your working tree:
        
        ```yaml
        location: vendor/gitman
        sources:
        - name: framework
          repo: https://github.com/kstenerud/iOS-Universal-Framework
          rev: Mk5-end-of-life
        - name: coverage
          repo: https://github.com/jonreid/XcodeCoverage
          rev: master
          link: Tools/XcodeCoverage
        - name: trufflehog
          repo: https://github.com/dxa4481/truffleHog
          rev: master
          scripts:
          - chmod a+x truffleHog.py
        - name: fontawesome
          repo: https://github.com/FortAwesome/Font-Awesome
          sparse_paths:
          - fonts/*
          rev: master
        ```
        
        Ignore the dependency storage location:
        
        ```sh
        $ echo vendor/gitman >> .gitignore
        ```
        
        # Usage
        
        See the available commands:
        
        ```sh
        $ gitman --help
        ```
        
        ## Updating Dependencies
        
        Get the latest versions of all dependencies:
        
        ```sh
        $ gitman update
        ```
        
        which will essentially:
        
        1. Create a working tree at `<root>`/`<location>`/`<name>`
        2. Fetch from `repo` and checkout the specified `rev`
        3. Symbolically link each `<location>`/`<name>` from `<root>`/`<link>` (if specified)
        4. Repeat for all nested working trees containing a config file
        5. Record the actual commit SHAs that were checked out (with `--lock` option)
        6. Run optional post-install scripts for each dependency
        
        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}'`
        
        ## Restoring Previous Versions
        
        Display the specific revisions that are currently installed:
        
        ```sh
        $ gitman list
        ```
        
        Reinstall these specific versions at a later time:
        
        ```sh
        $ gitman install
        ```
        
        ## Deleting Dependencies
        
        Remove all installed dependencies:
        
        ```sh
        $ gitman uninstall
        ```
        
        # Revision History
        
        ## 1.5 (2018-09-08)
        
        - Added `--keep-location` option on `uninstall` (@DavidWatkins).
        - Added feature to enable sparse checkouts. See the docs for further information. (@xenji)
        - **BREAKING**: Removed confusing `--lock` option on `update` command in favor of just using the `lock` command.
        - **BREAKING**: Renamed `--no-lock` to `--skip-lock` on `update` command.
        - **BREAKING**: Renamed `--no-dirty` to `--fail-if-dirty` on `list` command.
        
        ## 1.4 (2017-03-21)
        
        - Allow config files to exist in subdirectories of the main project.
        - Added `${GITMAN_CACHE}` to customize the repository cache location.
        
        ## 1.3 (2017-02-03)
        
        - Added `init` command to generate sample config files.
        - Added support for post-install scripts on dependencies.
        - Updated config format to support `null` for links.
        
        ## 1.2 (2017-01-08)
        
        - Added preliminary Windows support (@StudioEtrange).
        
        ## 1.1 (2017-01-06)
        
        - Added coloring to the command-line output.
        - Fixed issue where `<dirty>` could be saved as a locked revision.
        
        ## 1.0.2 (2016-07-28)
        
        - Moved documentation to http://gitman.readthedocs.io/.
        
        ## 1.0.1 (2016-05-31)
        
        - Replaced calls to `git remote add origin` with `git remote set-url origin`.
        
        ## 1.0 (2016-05-22)
        
        - Initial stable release.
        
        ## 0.11 (2016-05-10)
        
        - Removed dependency on `sh` to support Cygwin/MinGW/etc. on Windows.
        - Dropped Python 3.4 support for `subprocess` and `*args` improvements.
        - **BREAKING**: Renamed config file key `dir` to `name`.
        
        ## 0.10 (2016-04-14)
        
        - Added `show` command to display dependency and internal paths.
        
        ## 0.9 (2016-03-31)
        
        - Added `edit` command to launch the config file.
        - Depth now defaults to 5 to prevent infinite recursion.
        - Fixed handling of source lists containing different dependencies.
        
        ## 0.8.3 (2016-03-14)
        
        - Renamed to GitMan.
        
        ## 0.8.2 (2016-02-24)
        
        - Updated to YORM v0.6.
        
        ## 0.8.1 (2016-01-21)
        
        - Added an error message when attempting to lock invalid repositories.
        
        ## 0.8 (2016-01-13)
        
        - Switched to using repository mirrors to speed up cloning.
        - Disabled automatic fetching on install.
        - Added `--fetch` option on `install` to always fetch.
        - Now displaying `git status` output when there are changes.
        
        ## 0.7 (2015-12-22)
        
        - Fixed `git remote rm` command (@hdnivara).
        - Now applying the `update` dependency filter to locking as well.
        - Now only locking previous locked dependencies.
        - Added `lock` command to manually save all dependency versions.
        - Now requiring `--lock` option on `update` to explicitly lock dependencies.
        
        ## 0.6 (2015-11-13)
        
        - Added the ability to filter the dependency list on `install` and `update`.
        - Added `--depth` option to limit dependency traversal on `install`, `update`, and `list`.
        
        ## 0.5 (2015-10-20)
        
        - Added Git plugin support via: `git deps`.
        - Removed `--no-clean` option (now the default) on `install` and `update`.
        - Added `--clean` option to delete ignored files on `install` and `update`.
        - Switched to `install` rather than `update` of nested dependencies.
        - Added `--all` option on `update` to update all nested dependencies.
        - Disabled warnings when running `install` without locked sources.
        - Added `--no-lock` option to disable version recording.
        
        ## 0.4.2 (2015-10-18)
        
        - Fixed crash when running with some sources missing.
        
        ## 0.4.1 (2015-09-24)
        
        - Switched to cloning for initial working tree creation.
        
        ## 0.4 (2015-09-18)
        
        - Replaced `install` command with `update`.
        - Updated `install` command to use locked dependency versions.
        - Now sorting sources after a successful `update`.
        - Now requiring `--force` to `uninstall` with uncommitted changes.
        - Updated `list` command to show full shell commands.
        
        ## 0.3.1 (2015-09-09)
        
        - Ensures files are not needlessly reloaded with newer versions of YORM.
        
        ## 0.3 (2015-06-26)
        
        - Added `--no-clean` option to disable removing untracked files.
        - Added support for `rev-parse` dates as the dependency `rev`.
        
        ## 0.2.5 (2015-06-15)
        
        - Added `--quiet` option to hide warnings.
        
        ## 0.2.4 (2015-05-19)
        
        - Now hiding YORM logging bellow warnings.
        
        ## 0.2.3 (2015-05-17)
        
        - Upgraded to YORM v0.4.
        
        ## 0.2.2 (2015-05-04)
        
        - Specified YORM < v0.4.
        
        ## 0.2.1 (2015-03-12)
        
        - Added automatic remote branch tracking in dependencies.
        - Now requiring `--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.
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Version Control
Classifier: Topic :: System :: Software Distribution
