grit v0.3.0
grit v0.3.0
A massive correctness release: 845 commits since v0.2.1, driving compatibility with upstream Git's test suite from 53.6% to 93.4% of subtests passing.
Git test-suite compatibility
| v0.2.1 | v0.3.0 | |
|---|---|---|
| Subtests passing | 22,417 / 41,831 (53.6%) | 39,430 / 42,220 (93.4%) |
| Fully passing test files | 437 | 1,150 / 1,372 |
Highlights
Rebase (t34xx) — completed the rebase mega-family: --skip, merge backend, --update-refs (including worktree handling), quiet mode, malformed-todo handling, and abort/continue flows.
Diff & log (t4xxx) — true combined diffs (-c/--cc with @@@ hunks), --combined-all-paths with per-parent rename detection, word diff (--word-diff, POSIX word regexes), whitespace error highlighting (--ws-error-highlight), rename detection fixes (--no-abbrev raw format, same-path exact-rename suppression), diff-files unmerged-stage diffs and diffstat Unmerged lines, diff-tree --root --check, and reading .gitattributes from the index in bare/worktree-less repos.
Merge (t6xxx) — recursive-merge corner cases: rename/rename (1→2) content merges, directory/file conflicts (virtual D/F bases, relocated rename destinations, symmetric conflicts), nested virtual merge-base conflict preservation, criss-cross submodule conflicts, and fork-point cherry-pick filtering.
Plumbing & porcelain — ls-files --format placeholders, -k (killed), and submodule-aware -m; update-index --chmod no longer touches the worktree; apply -b, --ignore-space-at-eol, --ignore-cr-at-eol; add -p now honors -U/--inter-hunk-context/diff.context, renders additions like Git, and reports "Only binary files changed."; explicit divergent-pull exit codes; partial directory-pathspec deletes.
Other
- New root
Makefilewrapping cargo and test-harness workflows - Hundreds of additional fixes across revision walking (t1xxx), transport/pack (t5xxx), submodules (t7xxx), blame/annotate (t8xxx), and fast-import/export (t9xxx)
Full changelog: v0.2.1...v0.3.0
What's Changed
- docs: verify t8 test family fully passing (105/105) by @schacon in #777
- fix: make t7800-difftool fully pass (95/95) by @schacon in #776
- T9 family tests passing by @schacon in #778
- T1 tests passing by @schacon in #779
- T2 family test passing by @schacon in #780
- fix(clean): make t7300-clean fully pass by preserving harness config and surfacing unreadable-dir failures by @schacon in #782
- fix: t7600/t7601/t7611 merge tests fully pass by @schacon in #781
- fix: t7 family test improvements (t7418, t7505 rebase hooks) by @schacon in #784
- T1 tests passing by @schacon in #785
- Add grit-http-server PoC and fix upload-pack ref advertisement by @schacon in #783
- fix: materialize empty tree in unpack-objects (t5300-unpack-objects 2… by @schacon in #786
- T5 tests passing by @schacon in #788
- T3 tests passing by @schacon in #787
Full Changelog: v0.2.1...v0.3.0