Skip to main content

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)

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.

Release history Release notifications | RSS feed

This release

0.4.0 This release

1 file

0.3.1

1 file

0.2.0

1 file

0.1.2

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page