filesnap 0.3.0

Git-free file snapshots and rewind: a content-addressed store that puts a directory back the way it was, without a repository and without touching the user's version control.
Documentation

filesnap

Git-free file snapshots and rewind: a content-addressed store that puts a directory back the way it was at an earlier moment.

  • Never touches your version control. Git is read, never written — and the engine works in a directory that has never seen git init. Nothing is stored inside your repository or worktree.
  • Deletes only against evidence. A restore removes a file only when the capture it is restoring to looked for that path and did not find it. A file the engine has never observed is never touched in any direction.
  • Reversible before it begins. Every restore captures a rescue point first, so a rewind can be rewound.
  • Bounded by the project, not by the tree. The tracked set is a union of partitions, none of which grows with the size of the directory. On a working repository, a subtree walk enumerated 70,609 files and 116 GB; the union came to 6,096 files and 59 MB.

Content-addressed blobs, per-checkpoint manifests with a persistent stat cache, per-session logs, and mark-and-sweep collection.

The engine knows nothing about its host: it takes opaque string ids and absolute paths. Reproduce the scope figures on your own repository with:

cargo run -p filesnap --example scan_bench -- /path/to/repo

The rules this crate is built to keep are in .specify/memory/constitution.md; the places it does not yet keep them are in .specify/memory/compliance.md.