Releases: widefix/squash-tree
Releases · widefix/squash-tree
v0.1.0
squash-tree v0.1.0
squash-tree is a Git extension that preserves, visualizes, and reverses squash commits by maintaining an explicit logical squash graph alongside Git’s native commit DAG. Git discards history during squash operations; squash-tree makes that history explicit, inspectable, and reversible using Git notes and refs — without modifying Git itself.
What’s in this release
- Show squash tree —
git squash-tree <commit>prints the logical squash tree for a commit (e.g.git squash-tree HEAD). - Init hooks —
git squash-tree init(orinit --global) installs Git hooks so squash metadata is recorded automatically on rebase, merge --squash, etc. - Add metadata —
git squash-tree add-metadata --root=<ref> --base=<ref> --children=<refs>to attach squash metadata to a commit manually. - Spec & design — Formal Squash Tree spec and design doc in the repo.
Install
- Download the archive for your platform from the assets below.
- Extract the binary, put it on your
PATH(e.g./usr/local/binor~/bin). - Register the Git alias:
git config --global alias.squash-tree '! git-squash-tree' - In a repo:
git squash-tree init(orgit squash-tree init --globalfor all repos).
Status
This is an early implementation (RFC / design-first). The data model and behavior may evolve. Feedback and contributions are welcome — see the design and spec before proposing changes.