An open API service indexing awesome lists of open source software.

https://github.com/nthnn/mvs

Lightweight version control system written in Go. MVS provides basic init, add, remove, commit, log, branch, checkout, status, and tree commands, with msgpack metadata, Ed25519 signatures for tamper-evident history, and global configuration via YAML.
https://github.com/nthnn/mvs

version-control version-control-system version-manager versioninfo versioning

Last synced: 12 days ago
JSON representation

Lightweight version control system written in Go. MVS provides basic init, add, remove, commit, log, branch, checkout, status, and tree commands, with msgpack metadata, Ed25519 signatures for tamper-evident history, and global configuration via YAML.

Awesome Lists containing this project

README

          




Minimal Versioning System


Build MVS

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 with `mvs init`.
- **Content Tracking**: Stage (`add`) and unstage (`remove`) files, then snapshot changes with `commit`.
- **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 via `branch` and `checkout`.
- **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.

## Commands

| Command | Description |
| ------------------- | ------------------------------------ |
| `init` | Initialize a new repository |
| `branch [name]` | List or create a branch |
| `checkout ` | Switch to branch or commit |
| `add ` | Stage file changes |
| `remove ` | Unstage or remove file changes |
| `commit -m ` | Commit staged changes |
| `amend -m ` | Amend the message of previous commit |
| `log` | Show commit history |
| `status` | Show staged/modified/untracked files |
| `tree` | Render an ASCII branch tree |

## License

This project is licensed under the **MIT License**. See the [LICENSE](https://github.com/nthnn/mvs/blob/main/LICENSE) file for details.