Repository navigation
What's changed
- Merge branch 'factory/public-api-snapshot-a3fd' (fc70734)
- Refresh grit-lib public-api snapshot for IndexPathSkipPredicate (15e6c15)
- docs: record the pack-refs merge and its gc, clone and ref rows (c6f34d8)
- refs: pack loose refs with one borrowed merge instead of a HashMap rebuild (cde0d65)
- Refresh grit-lib public-api.txt for describe module (8c02c17)
- Fmt describe first-parent test assertion (99721b7)
- Docs: note first-parent tag reachability in describe (a30991e)
- Fix describe tag selection and formatting (962d4cf)
- Add RevWalk::describe and grit describe for nearest tags (0522243)
- Restore custom_odb_porcelain test helpers dropped in merge (c3d399a)
- Merge branch 'factory/push-refspec-snapshot-f7f9' (dc80155)
- Fix push refspec planning scanning all local refs per refspec (1c0ce37)
- Merge branch 'factory/reset-hard-rss-6421' (325bb3c)
- Merge branch 'factory/status-clean-10k' (7094798)
- Merge branch 'factory/ref-tx-delete-reflog' (17f9e61)
- Apply skip_index_path when restrict_to_paths is set on blob scan (3f2ba49)
- Fixes #2439: cut hard-reset peak RSS on wide tree transitions (acecf8e)
- Merge branch 'factory/custom-odb-hotfix-2444' (b3771bd)
- Fix custom_odb_porcelain helpers dropped in rebase conflict (d15113e)
- Merge branch 'factory/fix-is-bare-linked-worktree' (8b52c19)
- Fix reftable reflog visibility after ref delete (8cce2ec)
- Document the workload-set hot text layout and record status baselines (52e1e56)
- Regenerate the hot-text layout for the current tree (4380e14)
- Store each racy entry's attributes once per distinct set (ea8ef3c)
- Lay out hot code by workload set and list every alias of a merged function (1cdb89d)
- Merge branch 'factory/fix-full-tests-compile' (30287d4)
- Fix full-tests migration semantics dropped in review (16167e4)
- Fixes #2444: update full-tests integration for non_exhaustive API (08ed96f)
- Merge branch 'factory/fsck-connectivity-only-perf' (a258013)
- Merge branch 'factory/histogram-perf-6456' (32d68be)
- Fix Repository::is_bare for linked bare worktrees (71eeaaf)
- Merge branch 'factory/custom-primary-contains-2446' (274c154)
- Fix histogram diff memory blow-up and anchor scan cost on repeated lines (894d09c)
- Fixes #2449: fast fsck --connectivity-only via header-only kind map (d639ff3)
- Merge branch 'factory/upload-pack-unshallow-2447' (2d0a4a5)
- Fixes #2445: flush ODB before rebase stop and exec conflict HEAD updates (3dfb05b)
- Fix reftable delete+ReflogUpdate disposition (51f9c78)
- Fix reftable reflog clear order in same-batch transactions (4dfaec2)
- Fixes #2450: drop reflog when RefTransaction deletes a ref (2e5aead)
- Batch custom-primary tag validation through contains_many (52584e6)
- Batch tag target checks for custom-primary local fetch (939cc8c)
- Fix local fetch into custom primary calling contains per object (5e696ac)
- Merge branch 'factory/reftable-compaction-tombstone-e1d3' (191504a)
- Stop depth walk at server shallow boundaries (859fa9c)
- Fix upload-pack bogus unshallow on multi-want re-shallow (40fbeb5)
- Merge branch 'factory/odb-flush-publish-6431' (1d59294)
- Add custom-primary pick, revert, and conflict overlay tests (0a22d95)
- Fix reftable non-bottom compaction dropping delete tombstones (074bfb5)
- Merge branch 'factory/log-follow-absent-path-6420' (d27b549)
- Flush ODB before rebase --exec HEAD updates; refresh public-api (bc42ec0)
- Fix ODB flush before ref and index publish (Fixes #2443) (6690130)
- Fix log --follow when path absent at start commit (9a9f7ed)
- Fix merge overlay persist on custom object store primary (db8fb10)
- Compare post-grit status to baseline from system git reset (f6a04d9)
- Merge branch 'factory/public-api-6409' (3344230)
- Rebase: pass sparse hint into coalesced tree diff (db30623)
- Refresh grit-lib public-api snapshot after ApplyError and revwalk changes (d3aab95)
- Derive coalesced delete paths from old tree OID after index align (c69c4b0)
- Gate coalesced hard-reset deletes on wholesale safety; keep untracked (7797e50)
- Fixes #2439: coalesce hard-reset tree diff to cut peak RSS (fd7d69e)
- Fix exec failure rollback to keep untracked files created while stopped (a60cc44)
- Fix exec restore: do not delete user untracked files on abort (a0f31aa)
- Fix exec continue: preserve grit-plan and rollback failed commands (d719bcd)
- Fix #2432: stop resumably on rebase --exec replay conflict (c7ff580)
- Merge branch 'factory/sparse-switch-reset-perf-6390' (dfff8a1)
- Fix cone sparse switch/reset staying proportional to the checkout cone (a951b4b)
- Review: restore worktree backups on remove_paths partial failure (0fef76a)
- Review: fix cancel rollback, ApplyError::Cancelled, index_apply tests (93782d3)
- Fix #2433: remove index locks when add/mv/rm is interrupted (995710b)
- Fix lazy hide frontier loss on generation cutoff (bcc923a)
- Fix lazy hide misclassifying include-side tips on divergent ranges (a9e35ec)
- Fixes #2438: lazy hide-side paint for path-limited range revwalks (fe03893)
- Merge branch 'factory/diff-basename-o-n-6387' (0ed2521)
- Merge branch 'factory/corrupt-object-errors-6353' (4678808)
- Fix exec restore: do not delete user untracked files on abort (5c20707)
- Fix exec continue: preserve grit-plan and rollback failed commands (2da61a2)
- Fix #2432: stop resumably on rebase --exec replay conflict (1531487)
- Fix quadratic basename rename preflight on disjoint repeated basenames (8e3b303)
- Fix log --follow when path is absent at start commit (ff16d54)
- Merge branch 'factory/log-follow-perf-6382' (72b9e6f)
- Merge branch 'factory/issue-2397-pick-conflict' (6335fb2)
- Merge branch 'factory/dead-env-knobs' (3977b88)
- Run rustfmt on warm-hint pack regression test (fe4c4e1)
- Fix warm-hint regression test to exercise hinted-pack shortcuts (5af1444)
- Address review: hinted-pack wrap, SHA-256 loose paths, public-api (b72a418)
- Fix #2430: name corrupt loose and packed object read failures (9be56ce)
- Fixes #2435: speed up dense revwalk --follow with bloom and cached path lookups (fce443b)
- Merge branch 'factory/merge-histogram-default-6357' (97da458)
- Drop environment knobs read from an empty Environment (063eb68)
- Remove Error and Warning variants nothing constructs (566458c)
- Merge branch 'factory/restore-hunks-speed' (63ede83)
- Apply rustfmt to merge_file after rebase (68121f6)
- Merge branch 'factory/files-refstore-phantom-reflog' (a4d15e4)
- Fixes #2397: scope repeated-anchor guard to EOF tail base range (d446aa9)
- Fixes #2397: align merge-ort tail conflicts without broad EOF heuristic (a6e6719)
- Fixes #2397: conflict when pick appends after deleted tail (2cd8ac6)
- test: fix merge_ort #2431 harness imports and open_grit_repo (2005711)
- Fixes #2431: default ort tree merges to histogram diff (03215c2)
- Document commit-prefix reads and record the one-line log rows (864c8d1)
- Regenerate the hot-text layout for the commit-prefix read path (ce787ef)
- Stream one-line log and revs listings with commit prefixes (bef01f5)
- Read commits only through their subject for one-line walks (915ef1d)
- Merge branch 'factory/push-tag-reject-6335' (9e26e2a)
- Lock every reflog append destination for log-only symrefs (38b4330)
- Address review: symref peel refresh, reflog locks, lock cleanup (59a2d99)
- Fix FilesRefStore phantom reflog on failed CAS (3c563c6)
- Review: wire tag rejection before fetch-first; keep message crate-private (312256d)
- Fixes #2425: reject push that moves existing remote tag without force (9ef18c9)
- Document the hunk restore speedup and record its daily rows (aaded59)
- Apply hunks to a blob without copying line bytes (5132170)
- Shrink the line diff's transient memory (372d4fd)
- Skip redundant hashing when restoring hunks on the worktree (210d384)
- Fixes #2429: use sorted index lookups in clean dir mode (672cd5c)
- Merge branch 'factory/push-relative-path-6345' (da9d6d5)
- Merge branch 'factory/blame-move-dedupe-6337' (8ed4f99)
- Fixes #2428: accept relative paths as grit push remotes (7720efa)
- Fix blame -M/-C duplicate rows for repeated identical lines (6e9b3ed)
- Render fetch and push outcomes from library classification (ff57f1b)
- Classify fetch and push ref updates in grit-lib (74b58a3)
- Sync grit-lib public-api snapshot after DiffEntriesResult return type (6f80f84)
- Fix #2411: basename rename detection follow-up (dc410cd)
- Run rustfmt on grit-lib diff module imports (49c4e51)
- Record before/after daily baselines for the 2026-10-31 regressions (15b5e25)
- Fetch attribute blobs with the checkout batch in chunked checkouts (0721567)
- Read only the pack trailer when writing a .rev sidecar (8a10b5b)
- Read the index once per hard reset and look up restricted paths in order (037f5a8)
- Decide an up-to-date rebase before walking the replay range (a674218)
- Hash racy hard-reset paths up to 1,024 files instead of spooling them (2d0590e)
- Skip hashing size-changed files and old binary blobs in worktree diffs (7bc7b77)
- Look up gitlinks by binary search when probing for embedded repos (d60a2d8)
- Merge branch 'factory/diff-rename-basename-e669' (101be3c)
- Merge branch 'cursor/fix-pack-ingest-rev-rss-02ed' (1058fe5)
- Merge branch 'factory/ci-fmt-worktree-guard' (ce7a31d)
- fix: pack ingest peak RSS by reading pack trailer for rev sidecar (58425b1)
- fix: merge pathspec-limited tree diffs with DiffEntriesResult (10a1f60)
- Fix rustfmt in worktree_guard untracked scan (f7fe91d)
- Merge latest main into rename basename branch (2052787)
- Drop redundant case-variant config lookups (21a765a)
- Return typed errors from config value parsers (237a575)
- Merge branch 'factory/diff-pathspec-rename-2422' (a37035b)
- Merge branch 'factory/rm-dir-perf-2424' (2e58110)
- fix: restore json_error_kinds integration module after rebase (8851056)
- fix: restore pathspec prefilter in diff file targets (b4e1bb0)
- fix: worktree_entries_in arity and rustfmt after rebase (0ffd05e)
- Skip basename similarity when basenames are unambiguous (29c19d2)
- Address review: propagate rename-limit stderr and reuse rename blob cache (4be9dc2)
- Fix rename detection basename pass before renameLimit (a3537f7)
- Fixes #2422: apply pathspecs before rename detection in tree diffs (c0b6593)
- Merge branch 'factory/fsck-alternates-perf-02a9' (ba8a3b5)
- Fixes #2424: speed up grit rm directory pathspec collection (178dc36)
- Merge branch 'factory/fix-public-api-6297' (0ccc2e3)
- Merge branch 'factory/notes-rewrite-2418' (7d1089b)
- Merge branch 'factory/gc-index-roots-6289' (4b7b951)
- Fix pack idx verify and Odb-owned loose negative cache (542aedb)
- Fix alternates ODB pack rescan and fsck over shared object stores (afaf27e)
- Refresh grit-lib public-api snapshot for pathspec exports (832c3d6)
- Address review: preflight notes rewrite and snapshot CAS (b80d942)
- Fixes #2418: copy notes when history rewrites commits (3640483)
- Fix concurrent bundle cache races with flock claim (3edaa6f)
- Fixes #2421: include all worktree indexes in GC reachability roots (b93344d)
- Merge branch 'factory/show-diff-pool-floor' (2e5c937)
- Merge branch 'factory/pager-missing-less' (cbeb673)
- Merge branch 'factory/issue-2415-bulk-dir-file' (d2084c7)
- Keep session_cancel in default integration suite (95319e4)
- Fixes #2413: add JSON error kinds for common CI failures (5eb6141)
- Fix large mixed checkout regression tests (268c350)
- Fix bulk checkout index loss on dir-to-file transitions (f0a803c)
- Honor index modes for attribute pathspec matching (bd1961a)
- Fix attr pathspec matching for restore, stash, and rm (03b6b66)
- Document the diff pool floor and record its daily rows (a6a06cf)
- Diff small commits on the calling thread (a3efc8c)
- Route env-assignment and expansion pagers through the shell (4c69c84)
- Fixes #2408: fall back to terminal when pager cannot start (abde188)
- Merge branch 'factory/gc-worktree-index-roots-e26c' (964d4c3)
- bench: record log rows before and after the streamed JSON listing fixes (3b3ab65)
- Lay out the hot code path for release builds too (06e8355)
- Write each streamed JSON row in one call (de1ce85)
- log: set up a streamed listing once (dc715b9)
- Scan filtered packed-refs listings in one pass (433df60)
- Skip gitlink OIDs in resolve-undo reachability roots (94f750f)
- Fix gc prune dropping blobs reachable only from linked worktree indexes (a49b6a8)
- Fixes #2409: stream --json --filter without extra JSON copies (4c23db8)
- Allow clippy too_many_arguments on tree diff extras entry point (a71d306)
- Fix attr pathspecs in tree pathspec restrict union (c39c3da)
- Fix pathspec prefilter for tree-only staged deletions (3701d96)
- Fixes #2406: warn and continue diff/stash on unreadable worktree dirs (c357c51)
- Remove the shell-harness setup traces from repository discovery (fce803f)
- Merge branch 'factory/public-api-check' (42e4aff)
- Merge branch 'factory/pull-overwrite-hints-6222' (b8806cb)
- Refresh grit-lib public API snapshot after log --follow (98f4f35)
- Merge branch 'factory/switch-symlink-untracked-d695' (325e0c5)
- Fix pull overwrite errors: list paths, hint, and JSON kind (f2ce93e)
- Fix wholesale untrack scan following symlinks on added paths (0787d1e)
- Fix mv destination trailing slash and move error messages (097d7ce)
- Merge branch 'factory/short-hex' (c9349e3)
- Merge branch 'factory/fetch-deepen-speed' (73e8d02)
- Use the library short-hex helpers in grit and grit serve (b9f1510)
- Add ObjectId::to_short_hex and objects::short_hex (361b62a)
- Document v0 smart-HTTP fetch negotiation and its benchmarks (d22ff8f)
- Use no-done on stateless v0 fetches (fe22086)
- Fix v0 smart-HTTP negotiation and offer haves when deepening (f7613ec)
- Serve the system git http-backend in tests (6d2a10a)
- First-parent forward scan for is_ancestor (ac8d1db)
- Fixes #2316: log --follow for file history across renames (82a0279)
- Merge branch 'factory/diff-target-entries' (d2551ae)
- Make issue-2403 test compile and run standalone (ed0d0a0)
- Fix mixed-merge regression test for new auto-merge blob (d0caafb)
- Persist stage-0 merge objects from overlay on conflict stop (3a96771)
- Fix dangling empty blob and merge conflict objects (686496c)
- Thin grit diff onto the library's diff target entries (a178d90)
- Add Diff::entries and UncommittedDiff::{entries, peer_changes} (0a7c925)
- Merge branch 'factory/windows-symlinks-2402' (53ed557)
- Merge branch 'factory/fix-bundle-fetch-no-refspec' (a454050)
- Fix Windows build and address symlink review feedback (039c8f6)
- Fix Windows checkout symlinks when core.symlinks is true (c9cde2c)
- Fix bundle fetch with no refspec when HEAD is missing (44cb7df)
- Fix CI: refresh public-api snapshot and rustdoc link (fa7a7bb)
- Drop unused similar compaction helpers after xdiff merge diffs (7d41ce6)
- Borrow byte interner records; share merge Myers interning (c919642)
- Address review: byte-accurate merge diffs and Myers perf (99ee42f)
- Fix merge false conflicts from diff hunk alignment (Fixes #2391) (a28f5b6)
- Merge branch 'factory/push-labels-2398' (674dd91)
- Merge branch 'factory/odb-write-no-probe-1c25' (3ef8f80)
- Merge branch 'factory/fsck-truncated-parent' (c0d44ea)
- Merge branch 'factory/fix-2400-serve-hooks' (5c98706)
- Merge branch 'factory/revs-log-stream-ddd2' (a7156c5)
- Record post-receive callback errors on ReceiveOutcome (05033dc)
- Fix serve push hooks and protocol serve session API (506477f)
- Fix streamed revs truncated flag and JSON stream test (5d171c8)
- Fixes #2388: stream plain revs and log walks instead of buffering (cbc1216)
- Fix merge compaction keys for non-UTF-8 text blobs (af5742a)
- Fixes #2397: compact merge diffs like git merge-file (7f67af6)
- Fix SQLite example flush before reopen and mutex batch state (dbb4727)
- Fixes #2394: skip Odb contains probes on custom-primary writes (5a50acd)
- Fix push human labels and diverged non-ff hints (8261e7b)
- Fixes #2386: avoid fsck panic on truncated commit parent lines (b61f36e)
- Merge branch 'factory/revwalk-default-order-6470' (fac874b)
- Merge branch 'factory/log-group-by-author-perf' (4d3675b)
- Fix count-only author grouping to use exact name/email keys (4e8f775)
- Fix #2452: speed up log --group-by author vs git shortlog (5c4c723)
- Keep object-filtered rev-list walks on the full engine (d9ce549)
- Fix unlimited default RevWalk order to match git rev-list (ecaf0ab)
Full Changelog: v0.5.27...v0.5.28