Skip to content

v0.5.25

Choose a tag to compare

@github-actions github-actions released this 29 Oct 22:31
· 679 commits to main since this release
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