Skip to main content

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

Metadata

Release files for zgit 1.0.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 zgit 1.0.2
File Size Uploaded Provenance Actions
zgit-1.0.2.tar.gz 15.4 kB Without provenance Details for zgit-1.0.2.tar.gz

Built distribution (wheel)

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

Total release size: 34.5 kB

Release files / zgit-1.0.2.tar.gz

Download URL zgit-1.0.2.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d081619ceb38a8b504e104f6c7c4ee6e99c9cecb95befbbaecf44b118978cc2f
BLAKE2b-256 checksum
How to use checksums
1caacbd62b1a346904d5af232f2bdbec76975416f3e22ad3504a15d75663aed9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.31.0

Release files / zgit-1.0.2-py3-none-any.whl

Download URL zgit-1.0.2-py3-none-any.whl
Size 19.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f4609b0def580ab05f72c484b08b86bbec847be0cc14e2cd9940175a6849304
BLAKE2b-256 checksum
How to use checksums
726e06e9c2058211a901f647eba878f82eaaf7428bd81f5c169e9954055a3e84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.31.0

Security for zgit 1.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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