Skip to main content

A git repository updater

Project description

gitupdt

A Python tool for easily updating Git repositories. It checks for updates in remote repositories and allows you to pull branches or switch to tags through an interactive menu.

This tool is intended for use in execution-only repositories that are cloned for software usage purposes, without making edits. It is not recommended for use in development repositories.

Features

  • Remote update check: Check if there are updates in the remote repository
  • Interactive selection menu: Interactive CLI powered by questionary
  • Branch pull: Update the current branch to the latest state
  • Checkout to tag: Switch to a specified version tag
  • Reset mode: Use git reset --hard with the --reset option to update
  • requirements.txt change display and installation: Display changes in dependency files and support automatic installation
  • pyproject.toml change display and uv sync: Detect changes in pyproject.toml dependencies section and run uv sync when uv is installed
  • Automatic virtual environment detection: Automatically detect .venv or venv folders and display appropriate Python interpreter options
  • Repository maintenance: Automatically run git gc --auto after updates

Installation

pip install gitupdt

Usage

Update repository in current directory

gitupdt

Update repository at specified path

gitupdt /path/to/repo

Update with reset mode

When you specify the --reset option, it uses git reset --hard instead of git checkout or git pull to update. This is useful for forcibly overwriting a local file with a remote one when the local file is corrupted.

gitupdt --reset
gitupdt /path/to/repo --reset

Available Actions

When you run the tool, you can select from the following actions:

  1. Checkout and Pull latest remote: Checkout and pull the remote default branch
  2. Pull: Update the current branch to the latest state (when behind remote)
  3. Checkout to tag: Switch to a specified version tag (select from latest or past tags)

Automatic Installation on requirements.txt Changes

When there are changes in requirements.txt, the following process occurs:

  1. Changes are displayed in unified diff format
  2. You are prompted whether to install the updated requirements.txt
  3. You can select the appropriate install command:
    • If uv is installed: uv pip install or uv add (only if pyproject.toml exists)
    • Currently running Python
    • Detected virtual environment (.venv or venv) Python
  4. Installation is executed with the selected command
  5. You can also choose to cancel and install manually later

The script traverses the repository folders upward. If it finds a folder named .venv or venv, it checks whether it's a venv environment and presents it as an option.

Automatic uv sync on pyproject.toml Changes

If uv is installed and pyproject.toml exists, the following process occurs:

  1. Changes in the dependencies section of pyproject.toml are displayed in unified diff format
  2. You are prompted whether to run uv sync to update dependencies
  3. If you choose uv sync, dependencies will be updated
  4. You can also choose to cancel and update manually later

Note: If there are changes in pyproject.toml, the requirements.txt change confirmation will not be performed.

Changelog

1.1.0

  • Added uv support for package installation
    • uv pip install and uv add options are now available when uv is installed
  • Added pyproject.toml change detection and uv sync
    • Detects changes in the dependencies section of pyproject.toml
    • Automatically prompts to run uv sync when changes are detected
  • Changed minimum Python version from 3.9 to 3.11 (due to tomllib usage)

Dependencies

  • GitPython
  • questionary
  • packaging

Python Version

Python 3.11 or higher is required.

License

MIT License

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

gitupdt-1.1.0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

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

gitupdt-1.1.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file gitupdt-1.1.0.tar.gz.

File metadata

  • Download URL: gitupdt-1.1.0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for gitupdt-1.1.0.tar.gz
Algorithm Hash digest
SHA256 9da1b108a3c9520e23c49dff5ae9499b086a7c1a03479a6c2aeab9acd146b8c9
MD5 a552a49f893a84935a2fd6e8160e9108
BLAKE2b-256 7f65df0d3de7dff3b285d9829b3051103d95cb8ac217d53aaf93e2b09ad38c06

See more details on using hashes here.

File details

Details for the file gitupdt-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: gitupdt-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for gitupdt-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20c51727b4e8269c0458c13a451977389cce17f597a743b3fac3e1deba265c01
MD5 c6c76dd7c8f6e883c15e25910aa17c72
BLAKE2b-256 9aec4b4bcb9c845cc58329a3202b101e7848bdf84d54e592a7aa5b71ac35c5c9

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