Skip to main content

Clone and Maintain an entire hierarchy of Git repositories in one command

Project description

Hierarchy

Travis PyPI

Hierarchy is a simple tool that allows you to clone and maintain an entire hierarchy of Git repository in one single command:

$ hierarchy

TODO: Add picture of hierarchy in action

Quick-Start

  1. Install

    $ pip install hierarchy
    
  2. Create the Hierarchy file

    $ nano ~/.hierarchy
    

    Sample Hierarchy File

    repos:
      - path: ~/Dev/CliTools
        url: git@github.com:FlorianKempenich/Hierarchy.git
        
      - path: ~/Dev/CliTools
        url: git@github.com:FlorianKempenich/kata.git
        
      - path: ~/Dev/CliTools/DevOps
        url: git@github.com:FlorianKempenich/ansible-droplet.git
        
      - path: ~/Dev/HomeAutomation
        url: git@github.com:FlorianKempenich/Appdaemon-Test-Framework.git
        name: appdaemontestframework
    
  3. Run Hierarchy

    $ hierarchy
    

Hierarchy file structure

The Hierarchy file represent the flat hierarchy of all the git repository to clone and maintain.

It consists of a list of entries, under the key repos, each representing a repository to clone.

repos:
  - REPO_TO_CLONE_1
 
  - REPO_TO_CLONE_2
  
  - REPO_TO_CLONE_3

Each repository has the following structure:

url: "URL of the project. The same used to clone the repository with `git clone`"
path: "The local path where to clone the repository. It can contain `~` to represent HOME"
name: "OPTIONAL - A name to override the default repository name when cloning"

The repository will be cloned at: path/name
If no name is provided, the repository name will be used.

A sample Hierarchy file might look like this:

repos:
  - path: ~/Dev/CliTools
    url: git@github.com:FlorianKempenich/Hierarchy.git
    
  - path: ~/Dev/CliTools
    url: git@github.com:FlorianKempenich/kata.git
    
  - path: ~/Dev/CliTools/DevOps
    url: git@github.com:FlorianKempenich/ansible-droplet.git
    
  - path: ~/Dev/HomeAutomation
    url: git@github.com:FlorianKempenich/Appdaemon-Test-Framework.git
    name: appdaemontestframework

Options

  • -f / --file HIERARCHY_FILE

    A hierarchy file to use.
    Default: ~/.hierarchy

  • -v / --verbose

    Enable verbose mode

  • --help

    Show help


Work In Progress

  • Allow for ~ in the path
  • Create directories if do not exist
  • Clone with all submodules
  • If directory exists and not empty:
    • Is not same repo => Skip and notify user (ERROR)
    • Is not repo => Skip and notify user (ERROR)
    • Is correct repo:
      • Has no local modifications and up to date with remote =>
        • Update (pull)
        • Update with all submodules
      • Has local modifications => Skip and notify user (WARN)
      • Is not up to date with remote => Skip and notify user (WARN)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hierarchy-0.4.0.tar.gz (4.0 kB view details)

Uploaded Source

File details

Details for the file hierarchy-0.4.0.tar.gz.

File metadata

  • Download URL: hierarchy-0.4.0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.0a4+

File hashes

Hashes for hierarchy-0.4.0.tar.gz
Algorithm Hash digest
SHA256 554aae64de700170491efbc63963198364c8ef7790fc67f5ebf1162128634447
MD5 3521d8d745a0a754d7874d0019bbc026
BLAKE2b-256 2b81421ffe6068793a933e0589dc25224b65b4d722c2ef74402596a54d48e336

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page