A lightweight version control system written in Go. MVS provides basic init, add, remove, commit, amend, log, branch, checkout, status, and tree commands, with msgpack metadata, Ed25519 signatures for tamper-evident history, and global configuration via YAML.
- Repository Initialization: Create a new
.mvsrepository withmvs init. - Content Tracking: Stage (
add) and unstage (remove) files, then snapshot changes withcommit. - History & Integrity: Browse history with
log; each commit is MsgPack-serialized, gzip-compressed, and signed with Ed25519. - Branching & Checkout: Lightweight branches in
.mvs/refs/heads; switch contexts viabranchandcheckout. - Status & Tree Views:
statusshows staged, modified (including deletions), and untracked files;treerenders your branches in an ASCII UI. - Global Configuration: Set your name and email in
~/.local/mvs/globals.yamlfor commits.
| Command | Description |
|---|---|
init |
Initialize a new repository |
branch [name] |
List or create a branch |
checkout <name> |
Switch to branch or commit |
add <paths> |
Stage file changes |
remove <paths> |
Unstage or remove file changes |
commit -m <msg> |
Commit staged changes |
amend -m <msg> |
Amend the message of previous commit |
log |
Show commit history |
status |
Show staged/modified/untracked files |
tree |
Render an ASCII branch tree |
This project is licensed under the MIT License. See the LICENSE file for details.

