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
.mvs
repository 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 viabranch
andcheckout
. - Status & Tree Views:
status
shows staged, modified (including deletions), and untracked files;tree
renders your branches in an ASCII UI. - Global Configuration: Set your name and email in
~/.local/mvs/globals.yaml
for 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.