Skip to main content

Manage a workspace of git repositories

Project description

wcheck

Documentation PyPI version License: MIT

Manage a workspace of git repositories

wcheck compares different workspaces of git repositories and reports their differences. It supports:

  • Local workspaces - directories containing multiple git repositories
  • Configuration files - YAML files defining expected repository versions (vcstool format)

Features

  • ๐Ÿ” Check status of all repositories in a workspace
  • ๐Ÿ“Š Compare workspace against configuration files
  • ๐Ÿ”„ Compare multiple configuration files
  • ๐Ÿ“ˆ Track version changes across git branches
  • ๐Ÿ–ฅ๏ธ Optional GUI for branch management

Installation

Using uv (recommended):

uv tool install wcheck

Using pip:

pip install wcheck

With GUI support:

pip install wcheck[gui]

Quick Start

Check Workspace Status

wcheck status

Output:

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Repo Name             โ”ƒ Current Workspace         โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ my-project (2M 1U)    โ”‚ feature/new-feature       โ”‚
โ”‚ another-repo (1โ†‘)     โ”‚ main                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Status indicators:

  • U - Untracked files
  • M - Modified files
  • S - Staged files
  • โ†‘ - Commits to push
  • โ†“ - Commits to pull

Compare with Configuration

wcheck wconfig -c workspace.yaml

Compare Multiple Configs

wcheck config-list -c robot_a.yaml -c robot_b.yaml

Compare Across Branches

wcheck config-versions -c workspace.yaml

Commands

Command Description
status Check status of repositories in workspace
wconfig Compare workspace to configuration file
config-list Compare multiple configuration files
config-versions Compare config across git branches

Common Options

Option Description
-w, --workspace-directory Workspace path (default: current dir)
-c, --config Configuration file path
-f, --full Show all repos, not just differences
-v, --verbose Verbose output
--show-time Show time since last commit
--fetch Fetch remotes before checking
--gui Launch graphical interface

Configuration File Format

wcheck uses vcstool-compatible YAML files:

repositories:
  my-project:
    type: git
    url: git@github.com:user/my-project.git
    version: main
  
  another-repo:
    type: git
    url: https://github.com/user/another-repo.git
    version: v1.0.0

Similar Projects

  • vcstool - Version control system tool for managing multiple repositories
  • myrepos - Tool to manage all your version control repos
  • repo - Google's tool for managing multiple Git repositories
  • gita - Manage multiple Git repos with ease
  • mu-repo - Tool to work with multiple Git repositories

Documentation

๐Ÿ“– Full documentation: https://dpastorm.github.io/wcheck/

Development

# Clone repository
git clone https://github.com/dpastorm/wcheck.git
cd wcheck

# Install with dev dependencies
uv sync --extra dev

# Run tests
uv run pytest

# Build documentation locally
uv sync --extra docs
uv run mkdocs serve

License

MIT License - see LICENSE for details.

Author

Daniel Pastor (danpasmor@gmail.com)

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

wcheck-0.3.0.tar.gz (73.6 kB view details)

Uploaded Source

Built Distribution

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

wcheck-0.3.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file wcheck-0.3.0.tar.gz.

File metadata

  • Download URL: wcheck-0.3.0.tar.gz
  • Upload date:
  • Size: 73.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for wcheck-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e81f26c6d5de79f6458214a904b08bc44418b00fa15911a7d2f200a68bf97f55
MD5 04b40bf7a929bde60fd5818a9f436f9a
BLAKE2b-256 9cd52c908bac31ddac7636318b89c7724a6d892f52352ba4fb947d2b7d4c2080

See more details on using hashes here.

Provenance

The following attestation bundles were made for wcheck-0.3.0.tar.gz:

Publisher: publish.yml on PastorD/wcheck

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wcheck-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: wcheck-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for wcheck-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6708ab795edbd78f363e73695269ce1befcc078becb6854d806ac2d910559e43
MD5 eb4534a34be86cff8455516f2ac9d35e
BLAKE2b-256 8a7a87c76ef43497215913e4551b82f472d0a6c40b5efd9867369109d10c6a8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wcheck-0.3.0-py3-none-any.whl:

Publisher: publish.yml on PastorD/wcheck

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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