Skip to content

Releases: widefix/squash-tree

v0.1.0

04 Feb 16:56
0ae702a

Choose a tag to compare

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 treegit squash-tree <commit> prints the logical squash tree for a commit (e.g. git squash-tree HEAD).
  • Init hooksgit squash-tree init (or init --global) installs Git hooks so squash metadata is recorded automatically on rebase, merge --squash, etc.
  • Add metadatagit 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

  1. Download the archive for your platform from the assets below.
  2. Extract the binary, put it on your PATH (e.g. /usr/local/bin or ~/bin).
  3. Register the Git alias:
    git config --global alias.squash-tree '! git-squash-tree'
  4. In a repo: git squash-tree init (or git squash-tree init --global for 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.