A git clone wrapper that automatically uses --reference to save time and space.
Project description
A git clone wrapper that automatically uses –reference to save disk space and download time.
Installation
To install git-autoshare in a fancy way, we recommend using pipx.
After installing pipx simply run:
$ pipx install git-autoshare
To upgrade git-autoshare at any time:
$ pipx upgrade git-autoshare
If you want git autoshare-clone to be invoked transparently in place of git clone, create the following bash script, name it git, and place it in your PATH before /usr/bin/git:
#!/bin/bash if [ "$1" == "clone" ] then shift /usr/bin/git autoshare-clone "$@" else /usr/bin/git "$@" fi
Usage
Configuration file
To configure it, create a file named git-autoshare/repos.yml in your user configuration directory (often ~/.config on Linux). This file must have the following structre:
host:
repo:
orgs:
- organization
- ...
private: (True|False)
...:
...:
It lists all git hosts, repositories, and organizations that are subject to the sharing of git objects. Here is an example:
github.com:
odoo:
orgs:
- odoo
- OCA
enterprise:
orgs:
- odoo
- acsone
private: True
mis-builder:
# shortcut to provides organizations
- OCA
- acsone
Note the use of the private option, used to force fetching using the ssh protocol.
It is also possible to use * as a wildcard for repository name, to have autoshare applied to all repos of some organizations:
github.com:
"*":
orgs:
- odoo
- OCA
- acsone
private: True
Environment variables
The cache directory is named git-autoshare where appdirs.user_cache_dir is (usually ~/.cache/git-autoshare/). This location can be configured with the GIT_AUTOSHARE_CACHE_DIR environment variable.
The default configuration file is named repos.yml where appdirs.user_config_dir is (usually ~/.config/git-autoshare/). This location can be configured with the GIT_AUTOSHARE_CONFIG_DIR environment variable.
By default git-autoshare invokes git as /usr/bin/git. This can be configured with the GIT_AUTOSHARE_GIT_BIN environment variable.
An environment variable is used when launching tests (to avoid configuration retrieval issue) : GIT_AUTOSHARE_MODE. Which takes only one value: ‘test’.
Credits
Author:
Stéphane Bidoul (ACSONE)
Contributors
Simone Orsi (Camptocamp)
Mykhailo Panarin
Stéphane Mangin
Maintainer:
This project is maintained by ACSONE SA/NV.
Changes
1.0.0b6 (2022-02-26)
fix a regression where the GIT_AUTOSHARE_MODE environment variable became necessary
1.0.0b5 (2022-01-26)
support organization wildcards in git-autoshare-prefetch
support python >= 3.6 only (no code change yet, only stop testing)
1.0.0b4 (2019-07-14)
support ssh:// urls, remove dependency on giturlparse
1.0.0b3 (2019-07-13)
always prefetch cache before cloning, to make sure the cache is updated regularly
1.0.0b2 (2019-03-17)
add submodule-add command
use safe_load to parse configuration
allow wildcards in configuration
internal refactoring
1.0.0b1 (2018-01-07)
support for private repositories
better handling of remotes in prefetch
prefetch with –prun
1.0.0a2 (2017-10-10)
first packaged version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters