Repository navigation
v0.5.25
What's changed
- Keep blobs an offload leaves in main in its promisor pack, and check the LOP before dropping (86d224a)
- Add grit gc drop-large-blobs (383cc37)
- Drop promised large blobs from partial clones (5bd7f6d)
- Skip clone bundles for repositories with promisor remotes (47c2388)
- Serve and receive into repositories whose large blobs live on a promisor (d279098)
- Never lazy-fetch during fsck, and accept promised objects as Git does (953e741)
- Offload large blobs to a large-object promisor with grit gc offload (dbe123b)
- Write pack .keep markers before publish and add a promisor rewrite (dfa7987)
- Stop stat-ing every pack per object when packing for a fetch (ee98527)
- Serve local filtered fetches in-process instead of spawning git (c5cbeb8)
- Lazy-fetch from all promisor remotes in Git order (c8a8af4)
- Accept advertised promisor remotes in fetch and clone (05fd86a)
- Advertise promisor-remote in upload-pack and record client acceptance (ca8c9d0)
- Push to / on the default grit host (7443671)
- Stream fetch responses and bound pack-writing memory (22d6dad)
- Report a pack that fails partway instead of hiding it (eaf207e)
- Default grit login to grithub unless origin is on GitHub (5f74c4f)
- Serve snapshot checkouts for any CheckoutHost (259c2db)
- Recognize GitButler workspaces in status, log and commit (58484ba)
- Page grit log through a pager on a terminal, with cursor tokens elsewhere (128a45c)
- Merge branch 'factory/status-cancel-stat-40b8' (1d054b5)
- Refresh grit-lib public-api snapshot for ref transaction partial failure API (9ff05a6)
- Use persist_noclobber for reftable table publication (4ca53fc)
- Keep StackCancelPoll off public DiffIndexToWorktreeOptions (5d64a41)
- Poll ProgressSink during parallel stat preload on owner thread (66d479d)
- Fix status stat scan ignoring cancel during blob preload (e3a622a)
- Merge branch 'factory/reset-hard-perf-5655' (83c279f)
- Merge branch 'factory/branch-list-json-speed' (272bf9c)
- Fix reset --hard and merge --abort wide-tree performance (04ffe88)
- Merge branch 'factory/merge-conflict-memory-2312' (1ac1f76)
- Merge branch 'factory/merge-detached-head-8155' (d0ae560)
- Keep checkout journal until conflict merge index is written (63f3ff8)
- Fixes #2312: single-index conflict merge checkout (1b3097d)
- bench: record config loading before and after the parser and revalidation changes (4f031ff)
- Revalidate the config session by re-statting its files (1ac791c)
- Parse config files with fewer allocations (184572a)
- Merge branch 'factory/fix-rustdoc-ci-5671' (5466297)
- Fixes #2314: merge into detached HEAD like git (b6ad0a8)
- Merge branch 'factory/reftable-receive-pack-batch-8b81' (800be0f)
- Wire receive-pack non-atomic fallback through commit_receive_ref_updates_on_store (a77a963)
- Fix allowing_failures rename-only prepare shortcut in checked store (545758d)
- Fix allowing_failures object checks in ObjectCheckedRefStore (594bf7e)
- Fixes #2307: batch non-atomic receive-pack ref updates on reftable (4efd755)
- Fix rustdoc links on pathspec_wants_descent_into_tree (b4572aa)
- Fix indexed reftable lookup and multi-namespace ref limits (ff8e6bd)
- Fix reftable stack ref listing performance (0b43704)
- Fix reftable table publish to never clobber existing files (bce373b)
- Address review: real OIDs in interop stress test and hygiene exempt (2accc19)
- Fixes #2306: reftable readers reload stack on concurrent compaction (52c48a2)
- Merge branch 'factory/receive-pack-ref-batch' (83e219a)
- Merge branch 'factory/win-serve-db-long-path-2310' (9387225)
- Merge branch 'factory/wildcard-pathspec-rev-list-2299' (a52c6f2)
- Merge branch 'factory/json-revision-error-kind-5619' (981f197)
- Fixes #2309: batch receive-pack ref creates in one packed-refs transaction (e0813a9)
- Fixes #2310: open grit-serve.db with extended path on Windows (b237ff3)
- Fixes #2299: rev-list pathspec descent for wildcard directory segments (48016f4)
- Merge branch 'factory/colon-message-youngest-a87a' (d4c8207)
- Fix pick/revert JSON kind for reflog and change-id errors (e26b5f8)
- Fixes #2304: add revision_not_found JSON kind across commands (68f45e7)
- Fixes #2300: resolve :/text to youngest committer-date match (dd472f5)
- Reorder persist_rebase_stopped_head re-export in history mod (4b77b90)
- Validate legacy stopped_head inference against replay base (890b5fe)
- Harden rebase continue after resolution commit (f889890)
- Update public-api for RebaseSessionError::ResolutionHeadChanged (264a20c)
- Fix rebase --continue after grit commit during conflict (260eae0)
- Merge branch 'factory/log-pathspec-double-resolve-7bce' (c2b8ad0)
- Merge branch 'factory/fix-bare-worktree-add-5622' (d377cd4)
- Fixes #2305: treat bare repo HEAD as not checked out for worktrees (7c686e7)
- Fix subdir rev-walk pathspecs for excludes and glob magic (bbeaf2b)
- Fix double cwd prefix on log/revs pathspecs from subdirectories (8e2de69)
- Fixes #2301: honor gc config for commit-graph, pack-refs, and bitmaps (6e889c4)
- Fix patch-id stable mode for non-UTF-8 text blobs (126cb2f)
- Merge branch 'factory/reset-hard-recovery-hint-ac43' (3b7d852)
- Merge branch 'factory/rebase-in-progress-errors-00f9' (101cfba)
- Refresh reset hard/soft CLI output snapshots for mode-aware recovery hints (cb68624)
- Fix reset orphan recovery hint to preserve reset mode (b444920)
- Fix mid-rebase misleading errors on pull, merge, pick, and branch rename (ec580af)
- Fix rename similarity scoring to match Git span hashes (3b418e2)
- Merge branch 'factory/log-since-filter-page-5578' (929f50c)
- Merge branch 'factory/fix-n-dry-run-hint' (5d6c8c1)
- Merge branch 'factory/init-environment-2294' (feb91e7)
- Fixes #2230: apply --since frontier on filtered log walks without -n (fd59f51)
- Hint Git-habit -n on mutating commands toward --dry-run (274d32a)
- Fixes #2287: stop inflating large blobs during pack reuse checks (467d7b0)
- Fix init Environment persistence and avoid dangling trees on failed commit (2d1bd43)
- Keep clap global argument tests in sync with the command tree (0144f49)
- bench: record branch listing before and after the clap global flag change (86b6565)
- Attach the root's global flags only to the invoked subcommand (9951281)
- Fix dead-code warnings in grit-lib tests (440f8db)
- Remove grit-lib public items with no production caller (dc14e80)
- Drop the unused imara-diff dependency (4850410)
- Refresh grit-lib public API snapshot for ref store ordering (34492b4)
- Merge branch 'factory/fetch-deepen-haves' (e84d7c9)
- Enable nextest setup-scripts for checkout RSS GRIT_BIN hook (487ff5c)
- Render stash show --stat from the library diffstat (9c3135e)
- Add RepositoryStash::diff_stat and the whitespace-ignored row rule (de90b25)
- Give change-id failures their own HistoryError variant (07d5232)
- Keep library errors typed in history absorb, fixup, squash and drop (2c0ac9a)
- Merge branch 'factory/reflog-rewrite-lock-5521' (5aac5c3)
- docs: benchmark negotiated shallow fetches (28ef335)
- Merge branch 'factory/fmt-rev-list-5552' (d5e8875)
- Run rustfmt on rev_list parent_trees_slice condition (c4b1127)
- Skip per-line String copies when building structured hunks (5ab4009)
- Apply index patches without copying lines or the whole index (bf4a420)
- Stage line ranges from a path-restricted diff with fewer index reads (ec27dfd)
- Keep hard reset at-head worktree tests in default integration gate (21cbfa0)
- Honor GIT_OPTIONAL_LOCKS and StatusOptions.write_index for read-only status (b9eaaed)
- Test shallow fetches against bitmapped repositories and deepen negotiation (93a4cd6)
- Fixes #2280 review: mixed bulk attrs test and GRIT_BIN RSS harness (71dda1c)
- Fixes #2280 review: per-path bulk attrs and hard-reset tree-diff RSS (38e167d)
- Fixes #2280: stream wide-tree checkout writes in bounded chunks (bee1d8a)
- Negotiate haves when fetching with --deepen or into a shallow repository (80339b6)
- Skip bitmaps when the fetching client is shallow (5642e2d)
- Merge branch 'factory/post-integrate-fetch-fix-e4ef' (bf750b9)
- Fix local-fetch progress phases and rustfmt after custom ODB merge (0dacfac)
- Merge branch 'factory/sparse-upload-pack-perf-e608' (89128f9)
- Fix clone_into for custom ODB and regenerate public API (77370a9)
- Update public-api snapshot for fetch_remote_into and clone_into (4b678ed)
- Fixes #2288: fetch and push through custom ODB primary stores (0409738)
- Fix #2286 review: recompute reflog rewrites under lock (1762dde)
- Fixes #2286: serialize reflog rewrites under ref locks (3d6561f)
- Fix stateful v2 UploadOutcome aggregation and guide_serve lint (7bae7a3)
- Fixes #2289: serve API push options, upload stats, and cancel (9904887)
- Merge branch 'factory/upload-pack-stream-large-blobs-a2e6' (79f1850)
- Merge branch 'cursor/fix-rebase-rename-cache-5456-5b71' (8f7bb9c)
- Propagate I/O errors during verbatim pack reuse streaming (3a64411)
- Fix sparse walk: no parent-tree skip; guard sparse completion (029edc2)
- Fix sparse complete-tree cache to include path prefix (d366822)
- Fixes #2212: speed sparse:oid upload-pack enumeration (4a266fc)
- Stream upload-pack large blobs without buffering whole objects (7c12789)
- Box overlap transplant conflict output for clippy large_enum_variant (a7362c9)
- Address review: hygiene metrics, replay merge path, overlap tests (9f0ac5a)
- Fixes #2271: cache upstream renames for rebase replay transplants (5a2b28d)
- Fix link_source_objects progress to count pack objects, not sidecar files (65f0190)
- Update public-api snapshot for EnumeratingObjects progress phase. (ccfb822)
- Fixes #2278: report incremental progress on local file fetch (5460891)
- Merge branch 'factory/log-startup-5443' (e97f684)
- Merge branch 'factory/ref-store-doc-5506' (045c658)
- bench: record log rows before and after the log startup changes (1db7f26)
- Read log walk commits through one single-pack reader (09dc3c2)
- Render plain human and Markdown log rows from summaries only (6043e73)
- List local pack indexes through the object database's own pack store (6ef9a52)
- Parse the config cascade once per repository open (6b5cf58)
- Fix rustdoc -D warnings for git_dir ref bypass docs (de3990d)
- Fixes #2285: document git_dir ref bypass and use Repository ref store (896b83a)
- Fix review: set got_other on every absent have in v0 negotiation (78fb27c)
- Fixes #2283: emit ACK ready in upload-pack v0 multi_ack_detailed negotiation (9dda014)
- Merge branch 'factory/diff-po-perf-2273' (c762ed9)
- Sort DiffOptions methods in public-api snapshot. (8520619)
- Look up single tree paths through Odb::tree_entry_at_path (52f1fb9)
- Add Odb::tree_entry_at_path for single-path tree lookups (bb07775)
- Document with_no_index_stat_only in public API snapshot. (512fb94)
- Address review: hygiene exempt xdiff scratch, restore diff_paths API (f1a6072)
- Fixes #2273: speed up Myers diff on repetitive text files (b4a6bea)
- Merge branch 'factory/ref-txn-o1-push' (9a6eddb)
- Merge branch 'factory/reftable-autocompact-5492' (8d7d2d3)
- Skip ref txn scaling ratio test in debug builds (8375446)
- public-api: reftable_delete_ref_with_write_options (2995b01)
- Thread Environment into reftable ref-store write options (000d640)
- Fixes #2279: run reftable auto-compaction after ref-store commits (93e709c)
- Fixes #2281: track ref names in RefTransaction with HashSet (06649e4)
- Fixes #2284: skip blob payloads in strict unpack verify (05c0751)
- Merge branch 'factory/check-transaction-o-touched-9cdf' (08f13c4)
- Merge branch 'factory/integrate-branch-short-ref' (3a4ffb2)
- Fixes #2282: make ref transaction check O(touched refs) (5554fb5)
- Fixes #2277: accept short branch names in integrate_branch into_ref (41e930f)
- Fix public-api snapshot ordering for RefStore::ref_lock_wait (1bfa138)
- Fixes #2276: parallel stat preload splits fat directories by index entry (b5c045a)
- Fixes #2275: batch promisor fetch before tree diffs (157a819)
- Fixes #2274: record history-last after rebase continue/skip reattach (99d0f51)
- Fixes #2181: honor filesRefLockTimeout for injected ref stores (1a06473)
- Merge branch 'factory/win32-ref-reserved-names' (bc94313)
- Fix ignorecase directory collision auto-stage rewriting sibling blobs (fc769fe)
- Fixes #2257: reject Win32 reserved loose ref paths in files store (9f6e091)
- Fixes #2270: widen umask before pack sidecar chmod on Darwin (accb7a5)
- Restore target cache-tree after hard-reset index align (4854ec3)
- Fix hard-reset-at-HEAD worktree restore and deterministic RSS probe (bcbf6df)
- Lower hard-reset-at-HEAD peak RSS on wide trees (02a1dc4)
- Address review: lockstep hard-reset index align and restore tests (9dfa4be)
- Fixes #2268: hard reset without flattening the target tree (97fe828)
- Merge branch 'factory/status-clean-10k-5414' (b0617c6)
- Read commits in grit-cli through Odb::read_commit (d23f90d)
- Read commits through Odb::read_commit and Odb::commit_tree across grit-lib (1815bce)
- Document virtual merge bases for criss-cross merges (f981349)
- Merge several merge bases into a virtual base (de6f016)
- Keep Git's order for merge bases with equal commit dates (1f50890)
- docs: benchmark the clean-status untracked walk changes (1cb2f40)
- diff: skip the per-entry refresh-check table when nothing needs hashing (daca759)
- Release the diff index before building grit diff outcomes (3e1f0e0)
- Pin expected rows in the uncommitted diff git-compat tests (c6aaaff)
- Build grit diff's staged and working-tree outcomes from grit-lib (2d0a738)
- Load staged, unstaged and working-tree diff sides in one library API (cf9bbdb)
- Fixes #2264: speed up log --oneline on packed histories (1e65b2e)
- Merge branch 'factory/fix-ci-public-api-rustdoc' (d79df80)
- Fix replay fast-path directory pruning and hygiene ratchet (22c4ce7)
- Fixes #2263: cache upstream delta for rebase replay fast path (b7a92f8)
- Fix rustdoc link and refresh public-api snapshot for replay errors (1b09f28)
- status: drop tracked files while listing each directory in the untracked walk (43aceac)
- Fixes #2269: derive tree cat types from mode bits only (2f71eed)
- Merge branch 'factory/pack-large-offset-o1' (d2b2221)
- Merge branch 'factory/windows-replace-retry-8e3e' (684b043)
- Merge branch 'factory/win32-reserved-refs-49e0' (e21fa76)
- Merge branch 'factory/fix-pick-commit-2262' (739acbe)
- Merge branch 'factory/blame-encoding-lossy-5387' (0ffd2cb)
- Fix Windows in-process commit index/ref replace contention. Fixes #2261 (eb7a363)
- Merge branch 'factory/push-delete-output' (3cae0dc)
- Fix Windows files ref store creating unreadable reserved names (97a1ca3)
- Merge branch 'factory/fix-reset-unreachable-warning-5405' (89cca99)
- Apply rustfmt to pick_sequence test (c635874)
- Leave CommitRequest.author unset on ordinary CLI commits (d0a6a23)
- Fix pick/revert state when grit commit finishes a conflicted step (1a2c340)
- Merge branch 'factory/absorb-head-backup-ref' (162100c)
- Fix push delete human, markdown, and JSON output (97bfc2a)
- Fix reset orphan warning tense and recovery hint (9b40fbd)
- Review: per-line encoding_lossy, restore dropped tests (1469426)
- Fix blame encoding_lossy and content_bytes for non-UTF-8 lines (5836a76)
- Merge branch 'factory/symref-target-validation' (2102b29)
- Merge branch 'factory/fix-clippy-dead-rebase-helper' (46eade7)
- pack index: O(1) v2 large-offset lookup via direct slot index (70358da)
- Merge branch 'factory/fix-merge-crlf-conflict-2259' (aaccba1)
- Fix history absorb when a backup branch points at HEAD (3704c03)
- Remove unused mainline_anchor_for_parallel_root to fix clippy dead_code (99dedca)
- Fix log-only updates with new_value: None skipping oid check (ae27f35)
- Fixes #2258: reject invalid symref targets in ref prepare (30fde6b)
- Make filesystem case probe collision-safe with create_new (430e5a2)
- Address review: safe case probe, hash-safe dir fold, disk vs index paths (410fba1)
- Fix ignorecase auto-stage rewriting index path case on folding volumes (3aff555)
- Fix incomplete-line lone CR in merge compare (d1be414)
- Fixes #2259: treat CRLF vs LF as merge content differences (dcbf6ac)
- Merge branch 'factory/wide-merge-index-6527' (acaa4cc)
- Fixes #2254: single-pass merge index updates for wide branches (fb265fd)
- Fixes #2251: finalize installed pack sidecar modes for shared repos (7293992)
- Restore MSRV integration test and Unix rebase_exec_interrupt gating (4e725e9)
- Fixes #2250: map commit-time ref D/F races to NameUnavailable (bd304a9)
- Fixes #2250: allow concurrent files ref transactions on disjoint refs (633ce4c)
- Refresh grit-lib public-api.txt for for_each_physical_stack_ref (f4258f2)
- Address reftable fsck review: store layer and worktree stacks (da76d3c)
- Fix reftable fsck false positives on HEAD and refs/heads stubs (5bfb109)
- Merge branch 'factory/rebase-exec-up-to-date-5344' (6f4b012)
- Include stacked branches in identity exec rebase plans (212d6e4)
- Fix rebase --exec when branch is already up to date (692011f)
- Fix single-branch clone tag following and bare remote refs (2239c9d)
- Fix #2255: git rebase --continue only replays primary branch commits (ca4d468)
- Fix binary patch-text: retain blob bytes when force_read_content (5a2ba92)
- Merge branch 'factory/fix-stat-line-align-5316' (e6e6f6c)
- Merge branch 'factory/rebase-merge-2245' (66509e8)
- Fix rebase merge replay dropping side branches and merge parents (fe190b9)
- Fixes #2236: align stat and pickaxe counts with patch line ops (b34bc61)
- Fixes #2253: roll back auto-stage on hook failure (132060b)
- Fix rustdoc link to line_change_counts in diff core (6565b24)
Full Changelog: v0.5.24...v0.5.25