Skip to main content

# Python Multigit

A Python version of the [multigit Bash script](https://github.com/jmnavarrol/simplest-git-subrepos).

While the multigit Bash script at [simplest-git-subrepos](https://github.com/jmnavarrol/simplest-git-subrepos) was created for illustration purposes, this one is intended to be a full-fledged implementation.

The general idea is to offer a simple way of managing “workspaces” integrating multiple git repos starting from a top one, and without the need of difficult “arcanes” like git submodules, git-subtree, etc.: you only need to declare your intended layout in a YAML file, and let this script do its job. See the [simplest-git-subrepos README](https://github.com/jmnavarrol/simplest-git-subrepos) for a long-wired explanation.

## usage multigit expects a YAML file named subrepos on the root directory of the current repo (see [example](./subrepos)).

For each defined subrepo, it will clone/checkout it to the defined relative path. Optionally, it will checkout the given gitref, provided the repo’s local sandbox is “clean” (i.e. no pending modifications).

NOTE: pay attention to the fact that if the gitref you record is a specific commit, the related sandbox will be in disconnected state.

multigit will also recursively look for new subrepos files on the repositories it manages.

You should make sure your [.gitignore file](./.gitignore) ignores all your subrepos.

This way you just need to manage your repos with git in the standard way, just as if they were individually checked out in isolation.

## development For development purposes, you should create a Python 3 virtualenv using [the companion requirements file](./requirements.txt), i.e. (I’m using [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io) here): mkvirtualenv –python=$(which python3) -r requirements.txt python-multigit.

Then, you can run this code by means of [the helper cmd script](./python-multigit-cmd.py), i.e.: ./python-multigit-cmd.py.


### License Python Multigit is made available under the terms of the GPLv3.

See the [license file](./LICENSE) that accompanies this distribution for the full text of the license.

Metadata

Release files for multigit 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for multigit 0.1.2
File Size Uploaded
multigit-0.1.2.tar.gz 15.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for multigit 0.1.2
File Interpreter ABI Platform
multigit-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 32.6 kB

Release files / multigit-0.1.2.tar.gz

Download URL multigit-0.1.2.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1fe288e3713cb830b718dc21a654e26099311448afd62358efb3054aa7c8b324
BLAKE2b-256 checksum
How to use checksums
6f1f66b94af02a8baeaa349974ae528068567fded08b61fd8ec9aa0d6d8cf9ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.7.3

Release files / multigit-0.1.2-py3-none-any.whl

Download URL multigit-0.1.2-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
20c548631526d80e9b6837d922a49e10b0f9cf938344ff7e79bd3217fda982a7
BLAKE2b-256 checksum
How to use checksums
b08af6369d0b343c24f979b27964b97f944969f2245607afd887ddb25761753f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.7.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page