Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 15 additions & 134 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,157 +6,38 @@

**Manage a workspace of git repositories**

wcheck compares different workspaces of git repositories and reports their differences. It supports:
wcheck compares different workspaces of git repositories and reports their differences. It supports local workspaces and YAML configuration files ([vcstool](https://github.com/dirk-thomas/vcstool) format).

- **Local workspaces** - directories containing multiple git repositories
- **Configuration files** - YAML files defining expected repository versions (vcstool format)
## Quick Install

## 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):**
```bash
uv tool install wcheck
uv tool install wcheck # Basic
uv tool install wcheck[gui] # With GUI (PySide6)
uv tool install wcheck[tui] # With TUI (Textual)
```

**Using pip:**
```bash
pip install wcheck
```

**With GUI support:**
```bash
pip install wcheck[gui]
```

## Quick Start

### Check Workspace Status
## Quick Example

```bash
# Check status of all repositories
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

```bash
# Compare with configuration file
wcheck wconfig -c workspace.yaml
```

### Compare Multiple Configs

```bash
wcheck config-list -c robot_a.yaml -c robot_b.yaml
# Interactive terminal interface
wcheck status --tui
```

### Compare Across Branches

```bash
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](https://github.com/dirk-thomas/vcstool)-compatible YAML files:

```yaml
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](https://github.com/dirk-thomas/vcstool) - Version control system tool for managing multiple repositories
- [myrepos](https://myrepos.branchable.com/) - Tool to manage all your version control repos
- [repo](https://gerrit.googlesource.com/git-repo/) - Google's tool for managing multiple Git repositories
- [gita](https://github.com/nosarthur/gita) - Manage multiple Git repos with ease
- [mu-repo](https://github.com/fabioz/mu-repo) - Tool to work with multiple Git repositories

## Documentation

📖 **Full documentation:** [https://dpastorm.github.io/wcheck/](https://dpastorm.github.io/wcheck/)

- [Installation Guide](https://dpastorm.github.io/wcheck/installation/)
- [Quick Start](https://dpastorm.github.io/wcheck/quickstart/)
- [CLI Reference](https://dpastorm.github.io/wcheck/cli/)
- [Configuration Files](https://dpastorm.github.io/wcheck/configuration/)
- [API Reference](https://dpastorm.github.io/wcheck/api/)

## Development

```bash
# 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
📖 **Full documentation:** [https://pastord.github.io/wcheck/](https://pastord.github.io/wcheck/)

# Build documentation locally
uv sync --extra docs
uv run mkdocs serve
```
- [Installation Guide](https://pastord.github.io/wcheck/installation/) - Detailed installation instructions
- [Quick Start](https://pastord.github.io/wcheck/quickstart/) - Get started in minutes
- [CLI Reference](https://pastord.github.io/wcheck/cli/) - Complete command reference
- [Configuration Files](https://pastord.github.io/wcheck/configuration/) - YAML file format

## License

MIT License - see [LICENSE](LICENSE) for details.

## Author

Daniel Pastor (danpasmor@gmail.com)
73 changes: 61 additions & 12 deletions docs/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ wcheck status [OPTIONS]
| `--show-time` | flag | Show time since last commit |
| `--fetch` | flag | Fetch from remotes before checking status |
| `--gui` | flag | Launch GUI interface |
| `--tui` | flag | Launch TUI interface |

### Examples

Expand Down Expand Up @@ -66,6 +67,24 @@ wcheck status --fetch --show-time
wcheck status --gui
```

**Compare multiple workspaces side by side:**

```bash
wcheck status -w /path/to/workspace1 -w /path/to/workspace2
```

This displays a table with one column per workspace, showing branch differences:

```
Comparing 2 workspaces
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Repo Name ┃ workspace1 ┃ workspace2 ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ project-a │ main │ develop │
│ project-b │ v1.0.0 (2M) │ v1.1.0 │
└───────────────┴────────────────┴────────────────┘
```

### Output

```
Expand Down Expand Up @@ -107,6 +126,7 @@ wcheck wconfig [OPTIONS]
| `-v, --verbose` | flag | Show more detailed information |
| `--show-time` | flag | Show time since last commit |
| `--gui` | flag | Launch GUI interface |
| `--tui` | flag | Launch TUI interface |

### Examples

Expand Down Expand Up @@ -261,18 +281,47 @@ Comparing config versions in workspace.yaml

## GUI Mode

When using `--gui` with `status` or `wconfig`, a graphical interface opens.
The `--gui` flag (with `status` or `wconfig`) opens a graphical interface.

**Features:**

- Branch selector dropdown
- Checkout button
- Open in editor button
- Visual status indicators
- Config version comparison

!!! note "Requirements"
Install with: `pip install wcheck[gui]`

---

## TUI Mode

The `--tui` flag (with `status` or `wconfig`) opens an interactive terminal interface.

```bash
wcheck status --tui
wcheck wconfig -c config.yaml --tui
```

**Key bindings:**

| Key | Action |
|-----|--------|
| `↑/↓` | Navigate repositories |
| `Enter` | Open branch selection |
| `b` | Select branch (alternative) |
| `e` | Open in editor (`$EDITOR`) |
| `r` | Refresh |
| `q` | Quit |

The GUI provides:
**Features:**

- **Branch selector** - Dropdown to select branches/tags
- **Checkout button** - Switch to selected branch
- **Editor button** - Open repository in your editor (uses `$EDITOR` or VS Code)
- **Status indicators** - Visual highlighting for dirty repositories
- **Config comparison** - Shows expected vs actual versions (in wconfig mode)
- Repository table with status indicators
- Branch selection modal
- Config version comparison (in wconfig mode)
- Keyboard-driven navigation

!!! note "GUI Requirements"
The GUI requires the optional `gui` dependencies. Install with:
```bash
pip install wcheck[gui]
```
!!! note "Requirements"
Install with: `pip install wcheck[tui]`
40 changes: 16 additions & 24 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,46 +2,38 @@

**Manage a workspace of git repositories**

wcheck is a command-line tool for managing and comparing workspaces containing multiple git repositories. It helps you track the status of multiple repositories, compare them against configuration files, and manage versions across different environments.
wcheck is a command-line tool for managing and comparing workspaces containing multiple git repositories. It helps you track the status of repositories, compare them against configuration files, and manage versions across different environments.

## Features

- 🔍 **Clear Status checking** - See the status of all repositories in a workspace at a glance.
- 📊 **Configuration comparison** - Compare workspaces against YAML configuration files to use with vcs-tools
- 🔍 **Status checking** - See the status of all repositories at a glance
- 📊 **Configuration comparison** - Compare workspaces against YAML configuration files (vcstool format)
- 🔄 **Version tracking** - Compare repository versions across git branches and tags
- 🖥️ **GUI support** - Optional graphical interface for branch management
- **Fast and efficient** - Built with modern Python for quick execution
- 🖥️ **GUI support** - Optional graphical interface for branch management (PySide6)
- 💻 **TUI support** - Optional terminal interface for branch management (Textual)

## Quick Example

```bash
# Check status of all repositories in current directory
# Check status of all repositories
wcheck status

# Compare workspace to a configuration file
wcheck wconfig -c config.yaml

# Compare multiple configuration files
wcheck config-list -c robot_a.yaml -c robot_b.yaml
# Interactive terminal interface
wcheck status --tui
```

## Installation
## Getting Started

```bash
# Using uv (recommended)
uv tool install wcheck

# Using pip
pip install wcheck
```

## Documentation

- [Installation Guide](installation.md) - Detailed installation instructions
- [Quick Start](quickstart.md) - Get started in minutes
- [CLI Reference](cli.md) - Complete command reference
- [API Reference](api.md) - Python API documentation
| | |
|---|---|
| 📥 **[Installation](installation.md)** | Install wcheck using uv or pip, with optional GUI/TUI support |
| 🚀 **[Quick Start](quickstart.md)** | Get started with basic commands in minutes |
| 💻 **[CLI Reference](cli.md)** | Complete documentation for all commands and options |
| 📄 **[Configuration](configuration.md)** | Learn about YAML configuration file format |

## License

MIT License - see [LICENSE](https://github.com/dpastorm/wcheck/blob/main/LICENSE) for details.
MIT License - see [LICENSE](https://github.com/PastorD/wcheck/blob/main/LICENSE) for details.
Loading