Passively snapshots working tree changes efficiently.
A utility that passively monitors your Git working tree and periodically creates snapshot commits of any changes. This is useful for creating a detailed history of your work during development sessions, allowing you to recover any intermediate state. Run git monitor in your project directory before starting work, and snapshots will be saved to refs/snapshots/refs/heads/$BRANCH. Supports both regular Git repositories and Git worktrees.
git-monitor
Passively snapshots working tree changes efficiently.
Building
This package is part of the gitlib multi-package repository. Build from the repository root:
# From the gitlib repository root
nix build # Builds git-monitor (default package)
Or from this directory:
# From git-monitor directory
nix build ../#default
Development
For development with direnv:
# From git-monitor directory
direnv allow # The .envrc file loads the parent flake
Or manually enter the development shell:
nix develop ../#default
Dependencies
- gitlib >= 3.3.0
- gitlib-libgit2 >= 3.3.0
- Other dependencies listed in git-monitor.cabal
All dependencies are managed at the repository root level via the main flake.nix and cabal.project files.