Skip to main content

A collection of git sync and analysis tools.

Project description

laZy GIT

zgit is a Python toolkit to plot, stat and archive git repositories in an easy-to-use manner.

zgit is also published to PyPI so you can install it using pip directly:

python -m pip install zgit

Important Note

Since zgit manipulates git repositories directly, make sure you commit or backup your code properly, in case your repo may be corrupted.

How to use

There are 3 main features in zgit now:

1. Sync multiple repositories asynchronizedly

usage: zgit-sync [-h] [--max-search-depth MAX_SEARCH_DEPTH] [--archive ARCHIVE] [--jobs JOBS] root

positional arguments:
  root                  the top folder you want to search git repos and update

options:
  -h, --help            show this help message and exit
  --max-search-depth MAX_SEARCH_DEPTH, -d MAX_SEARCH_DEPTH
                        maximum search depth in the `root` folder, -1 means unlimited.
  --archive ARCHIVE     archive .git in a repo to save disk space, a repo hasn't been updated for more than `archive` days will be compressed into a tarball.
  --jobs JOBS, -j JOBS

2. Archive repositories by compressing and deleting history objects

usage: zgit-gc [-h] [--depth DEPTH] [--no-user-input] [--jobs JOBS] root

positional arguments:
  root                  the top folder you want to search git repos and update

options:
  -h, --help            show this help message and exit
  --depth DEPTH, -d DEPTH
                        maximum search depth in the `root` folder, -1 means unlimited.
  --no-user-input, -ni  do not ask user input, use default values
  --jobs JOBS, -j JOBS

3. Git commit history analysis and visualization

usage: zgit-plot [-h] [--git-repo GIT_REPO] [--git-log GIT_LOG] [-o OUTPUT] [--author {name,email}] [--group {day,ww,month,quarter}] [--log-scale] [-v {DEBUG,INFO,WARNING,ERROR}] [-e EXCLUDE [EXCLUDE ...]] [-i INCLUDE [INCLUDE ...]] [--threshold THRESHOLD] [-d]

options:
  -h, --help            show this help message and exit
  --git-repo GIT_REPO   specify a git repo directory to analysis
  --git-log GIT_LOG     specify a git log file to analysis, log file can be acquired by 'git log --numstat > log.txt'. This option is ignored if --git-repo is specified.
  -o OUTPUT, --output OUTPUT
                        specify an output directory
  --author {name,email}
                        merge commits based on user name or user email
  --group {day,ww,month,quarter}
                        merge commits on which time slice, supports day, work-week, month, and quarter
  --log-scale           plot the figure on log-scale y-axis.
  -v {DEBUG,INFO,WARNING,ERROR}, --verbose {DEBUG,INFO,WARNING,ERROR}
                        set the log level
  -e EXCLUDE [EXCLUDE ...], --exclude EXCLUDE [EXCLUDE ...]
                        specify an exclude pattern list, file name match any item from this list is ignored in the plot
  -i INCLUDE [INCLUDE ...], --include INCLUDE [INCLUDE ...]
                        specify an include pattern list, file name endswith any item from this list is counted in the plot
  --threshold THRESHOLD
                        additional exclude files with change lines above this threshold
  -d, --dump            save the breakdown data details

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

zgit-1.0.2.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zgit-1.0.2-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file zgit-1.0.2.tar.gz.

File metadata

  • Download URL: zgit-1.0.2.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for zgit-1.0.2.tar.gz
Algorithm Hash digest
SHA256 d081619ceb38a8b504e104f6c7c4ee6e99c9cecb95befbbaecf44b118978cc2f
MD5 1428b6eb3acf43bc1e80743c7cb29881
BLAKE2b-256 1caacbd62b1a346904d5af232f2bdbec76975416f3e22ad3504a15d75663aed9

See more details on using hashes here.

File details

Details for the file zgit-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: zgit-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for zgit-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6f4609b0def580ab05f72c484b08b86bbec847be0cc14e2cd9940175a6849304
MD5 3efabd9121aeeba89d239afe8648d1ee
BLAKE2b-256 726e06e9c2058211a901f647eba878f82eaaf7428bd81f5c169e9954055a3e84

See more details on using hashes here.

Supported by

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