Skip to content

pmqueiroz/memento

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Memento

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.

Features

Currently, Memento supports the following commands:

  • init — Initialize a new repository
  • add — Add files to the staging area
  • commit — Commit staged changes

Installation

Install via Homebrew

Warning

Soon

brew tap pmqueiroz/tap
brew install pmqueiroz/tap/memento

Build Locally

To 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-fast

The compiled binary will be at:

./zig-out/bin/memento

You can move it into your $PATH:

cp ./zig-out/bin/memento ~/.local/bin/

Configuration

Memento doesn’t require any global config. Each repo is self-contained in a .memento/ directory.

Repo config options go in .memento/config.

Usage

Run memento <command> in your terminal:

init

memento init

Creates a .memento/ directory with internal metadata.


add <file> [...]

memento add file.txt other.txt

Stages files for the next commit.


commit -m "<message>"

memento commit -m "Initial commit"

Commits all staged changes with your message.


About

🌵 a git like version control system written in zig

Resources

License

Stars

Watchers

Forks

Contributors

Languages