Clone and Maintain an entire hierarchy of Git repositories in one command
Project description
Hierarchy
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
-
Install
$ pip install hierarchy
-
Create the Hierarchy file
$ nano ~/.hierarchy
Sample Hierarchy File
- url: 'git@github.com:FlorianKempenich/Hierarchy.git' path: '~/Dev/Tools' - url: 'git@github.com:FlorianKempenich/kata.git' path: '/Some/Other/Location' name: kata-cli
-
Run Hierarchy
$ hierarchy
Hierarchy file structure
The Hierarchy file represent the flat hierarchy of all the git repository to clone and automatically maintain.
It consists of a list of entries, each representing a repository to clone. 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:
- url: 'git@github.com:FlorianKempenich/Hierarchy.git'
path: '~/Dev/Tools'
- url: 'git@github.com:FlorianKempenich/kata.git'
path: '/Some/Other/Location'
name: kata-cli
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 thepath
- 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)
- Has no local modifications and up to date with remote =>
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.