1.4 KiB
1.4 KiB
Getting Started
Arc is a delta-based version control system written in Rust. It builds exclusively through Nix.
Building
Arc uses a Nix flake (nixpkgs-unstable, flake-parts, fenix, crane):
nix build
Enter a dev shell with nix develop (provides rustc, cargo, clippy, rustfmt, git, pkg-config, cmake, perl).
Run Arc with nix run or result/bin/arc after building.
Configuration
arc config set user.name "yourname"
arc config set user.email "you@example.com"
Global config lives at $XDG_CONFIG_HOME/arc/config.yml (or ~/.config/arc/config.yml).
Creating a Repository
arc init [path]
This creates a .arc/ directory containing:
commits/— commit storagebookmarks/— branches (default:main)tags/— tagged commitsstashes/— stashed changesconfig.yml— repository configHEAD— current position
The default remote is origin.
Tracking Changes
Arc tracks changes automatically — there is no staging area.
arc status # see what changed
arc commit <message> # commit all changes
arc log # view history
arc diff # see diffs
Ignoring Files
Create a .arcignore or .ignore file with gitignore-like glob syntax. Prefix a pattern with ! to negate it.
Working with Git Repositories
Clone a git repo:
arc clone <url> [path]
Migrate an existing git repo (run inside the repo):
arc migrate