Skip to content

Snapshotting

Take full or partial snapshots, restore them, and browse history.

Snapshots are the unit of history in ver. Every snapshot has a name (or you can use its BLAKE3 ID) and an optional description.

Full snapshots

ver snap full --name my-snapshot --description "before the big refactor"

Snapshots every tracked file in the project. The previous head becomes the new snapshot’s parent.

Partial snapshots

Snapshot only specific files:

ver snap from --name config-only --file ver.toml --file README.md

A partial snapshot is marked partial: true. Restoring one never deletes files it doesn’t mention.

Patching a snapshot

Add or update files in an existing snapshot:

ver snap patch --identifier my-snapshot --file forgot-this.txt

The snapshot keeps its ID and name; its file map is updated in place. Patching a full snapshot keeps it full.

Restoring: ver goto

ver goto my-snapshot

Reconstructs the snapshot’s files in the project and moves the head pointer. With a full snapshot, files on disk that aren’t in the snapshot are deleted; pass --no-delete to keep them:

ver goto my-snapshot --no-delete

Restore only specific paths:

ver goto my-snapshot --path src/main.rs --path Cargo.toml

If you’re already on the requested snapshot, goto says so and does nothing.

Browsing history: ver log

ver log
ver log --limit 5

Prints history entries (date, snapshot ID, name, description), newest first, in a pager.

History entries are individual files under .ver/snapshots_history/, so entries can go missing independently (e.g. after a partial sync). By default a missing entry is an error; pass --incomplete-ok to print what exists with a warning:

ver log --incomplete-ok

Type to search…

↑↓ navigate↵ selectEsc close