Memento is a simple version control system written in Zig.
This is a personal study project—I built it on my own to learn how VCSs work, not for production use.
Currently, Memento supports the following commands:
init— Initialize a new repositoryadd— Add files to the staging areacommit— Commit staged changes
Warning
Soon
brew tap pmqueiroz/tap
brew install pmqueiroz/tap/mementoTo build and use Memento locally, you'll need:
- Zig (tested with version 0.14.0 or newer)
- A POSIX-compliant system (Linux, macOS, or WSL on Windows)
git clone https://github.com/yourusername/memento.git
cd memento
zig build -Drelease-fastThe compiled binary will be at:
./zig-out/bin/memento
You can move it into your $PATH:
cp ./zig-out/bin/memento ~/.local/bin/Memento doesn’t require any global config. Each repo is self-contained in a
.memento/ directory.
Repo config options go in .memento/config.
Run memento <command> in your terminal:
memento initCreates a .memento/ directory with internal metadata.
memento add file.txt other.txtStages files for the next commit.
memento commit -m "Initial commit"Commits all staged changes with your message.