Skip to content

grit v0.3.0

Choose a tag to compare

@schacon schacon released this 04 Jun 08:44
· 906 commits to main since this release

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 & porcelainls-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 Makefile wrapping 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