Skip to main content

Git utility for auto-committing and concurrent pushing

Project description

git pp

Git utility for auto-committing and concurrent pushing.

Powered by asyncio, with no dependency besides python>=3.10 and git.

Features

  • Auto-stages and commits with custom or generated commit messages
  • Pushes to multiple or all remotes of a git repository concurrently with asyncio
  • Operates on any number of git repositories at the same time

Demo

asciicast

In this demo, git pp did the following in ~/config and ~/gui repos:

  • (Concurrently) Auto staged all changes and commits with ISO-8601 timestamps as commit messages;
  • (Concurrently) Pushed the changes in the checked out branch to all of their remotes, in this case, they’re origin and lab.

Installation

First make sure the git executable is installed and in your $PATH.

Note that non-UNIX systems are not officially supported.

pipx

This is the recommended installation method.

$ pipx install git-pp

pip

$ pip install git-pp

AUR

For Archlinux.

$ yay -S python-git-pp

Usage

You can either invoke this tool with git-pp or git pp, --help is unsupported when using the latter.

$ git pp -h
usage: git pp [-h] [-m COMMIT_MESSAGE] [-v] [-so] [-p] [-po] [-r REMOTE [REMOTE ...]] [-b BRANCH] [-f] [-t TIMEOUT] [DIRS ...]

Git utility for auto-committing and concurrent pushing

positional arguments:
  DIRS                  Dirs to operate on (default: ['.'])

options:
  -h, --help            show this help message and exit
  -m COMMIT_MESSAGE, --commit-message COMMIT_MESSAGE
                        commit message (default: None)
  -v, --version         show program's version number and exit
  -so, --status-only    Prints status only (default: False)
  -p, --push            Push to all remotes (default: False)
  -po, --push-only      Push to all remotes, without pre_pull (default: False)
  -r REMOTE [REMOTE ...], --remote REMOTE [REMOTE ...]
                        Remote name (default: None)
  -b BRANCH, --branch BRANCH
                        Branch name (default: None)
  -f, --force           Force push (default: False)
  -t TIMEOUT, --timeout TIMEOUT
                        Timeout for a single push (default: None)

Develop

$ git clone https://github.com/tddschn/git-pp.git
$ cd git-pp
$ poetry install

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

git-pp-1.5.3.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

git_pp-1.5.3-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file git-pp-1.5.3.tar.gz.

File metadata

  • Download URL: git-pp-1.5.3.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Darwin/21.4.0

File hashes

Hashes for git-pp-1.5.3.tar.gz
Algorithm Hash digest
SHA256 9be0672993da85271f574bed6a079260a2e95fd65d487488cb6662202f8d1d06
MD5 18d2e74ad55a2cae401994262b3eb714
BLAKE2b-256 2cd0ed2c2ffd5915254762119b8a2981e284023aa58a1ac6f22ca420fff45e12

See more details on using hashes here.

File details

Details for the file git_pp-1.5.3-py3-none-any.whl.

File metadata

  • Download URL: git_pp-1.5.3-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Darwin/21.4.0

File hashes

Hashes for git_pp-1.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 af85c7ca81c4e681fa164931748f548fa61f5940e95dc264cbb4a87bcb17ec82
MD5 f04cb9055005343ca9f23b86f5645a53
BLAKE2b-256 13b3f23b05cb3b84c3a5555f6898f2299e8988423eaea09caf4d871d015d014e

See more details on using hashes here.

Supported by

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