github gitbutlerapp/grit v0.5.27

3 hours ago

What's changed

  • Merge branch 'factory/fix-2393-clone-reflog-injected-store' (a8fc212)
  • Merge branch 'factory/fsck-injected-reflog-roots-6147' (05a49e6)
  • Merge branch 'factory/rewrite-reflog-required' (3fb2620)
  • Merge branch 'factory/merge-eof-newline-2392' (e61d54b)
  • Merge branch 'factory/workspace-snapshot-persist-6123' (12456b1)
  • Add default-CI test for clone reflogs on injected RefStore (3a14cea)
  • Fix clone reflogs for injected RefStore (258c2c7)
  • Fix fsck reachability roots for injected ref store reflogs (fc37f8e)
  • Fixes #2395: require RefStore::rewrite_reflog for custom backends (716afca)
  • Fix stateless v0 upload-pack shallow section before ACKs for deepen (4ee672d)
  • Fix merge EOF newline when side also changes line count (dc8de49)
  • Use externally tagged RawRef serde for bincode persistence (413dc70)
  • Fixes #2387: persist workspace snapshots and pin worktree trees for gc (d7aadd0)
  • Fix workspace snapshot restore worktree diff base (430cba1)
  • Strengthen skew repair perf guard against cd3f334b regression (92dfecb)
  • Make skew range paint perf guard exercise capped repair (6ba5c0c)
  • Fix git reset baseline setup in mixed swap perf test (01b4ce9)
  • Fix hard reset Keep on tree-stable paths with staged index content (0cea140)
  • Merge branch 'factory/fix-streaming-since-range-walk-hide-6104' (bfa0a95)
  • fix(odb): avoid private intra-doc link on write_stream (209887f)
  • fix(rev-list): pass RangeWalkHide to since-cutoff streaming walk (e185bee)
  • Bound skew hide-paint repair to BOTH frontier and per-start cap (e4d868f)
  • Extend hide-paint repair through unpainted skew paths (42f8f67)
  • Fix range revwalk hide paint under committer-date skew (bdf8a05)
  • chore: sync integration manifest after rebase onto main (358314e)
  • perf(checkout): fast hard reset for tree-stable paths (29b1bde)
  • Address review: restore hard-reset stat probes and ignore rules (033db78)
  • Fix switch/reset --hard perf on mixed wide tree delete/add (de66452)
  • Merge branch 'factory/fix-2384-clone-url-bundle-auth' (7951694)
  • Merge branch 'factory/fix-2378-fsmonitor-valid-bits' (0cdd8bc)
  • Fix clone URL credentials for same-origin bundle downloads (9b22c2b)
  • Merge branch 'factory/revs-since-frontier-6080' (b2ba280)
  • Mark fsmonitor-valid on parallel content-verified clean path (2c4e2c0)
  • Do not mark fsmonitor-valid on content-only refresh (e239317)
  • Fix fsmonitor valid bits after clean status scan (4fd2a6f)
  • Merge branch 'factory/log-range-pathspec-perf-6081' (fffe90f)
  • Merge branch 'factory/fix-2379-streaming-inflate' (f31fb84)
  • Fix --since regressions for parent filters and count skip (c6f0a2a)
  • Fix rev-list --since to stop at date frontier without -n (393956d)
  • Fixes #2383: paint range hide for bounded rev-list walks (0070689)
  • Merge branch 'factory/fix-reset-hard-perf-2311' (0f33809)
  • chore: rustfmt checkout_incompressible_blob_restore (a114194)
  • Fix pack truncate hang and restore loose buffer growth (97f29c5)
  • Fixes #2379: speed streaming inflate and large blob writes (0d0a8e0)
  • Merge branch 'factory/fix-2381-merge-sibling-dirs' (c4b459e)
  • Scope checkout spool probe to unit tests only (7660278)
  • Fix racy wide tree-diff rollback on cancelled hard reset (58910e6)
  • Fixes #2375: speed hard reset tree-diff checkout like switch (5b99c56)
  • Fix hard-reset stat scan parallelism without index preload (95f6df9)
  • Fixes #2311: parallel hard-reset stat scan and faster merge abort (fb9b71b)
  • Fixes #2381: stop merge stack overflow for sibling dir prefixes (3cc64d9)
  • Merge branch 'factory/ci-green-rustdoc-public-api' (6def0af)
  • Merge branch 'factory/mv-case-dir-2376' (ce4b321)
  • Keep mv destination-directory detection case-sensitive (7ee4c2d)
  • Do not treat symlink pairs as case-only directory mv (34f3aa2)
  • Fix case-only directory mv on ignorecase volumes (6cf8ebc)
  • Reap orphaned next-index hook copies after killed commits (79c4838)
  • Fix CI rustdoc and public-api snapshot on main (fd8575c)
  • Merge branch 'factory/rebase-merge-duplicate-2365' (0bdfd47)
  • Merge branch 'factory/fix-pick-abort-unmerged-cleanup-2367' (d8a18b5)
  • Fix rustdoc intra-doc links for rename detection docs (dc8def8)
  • Fix DiffTarget::Trees with old=None and tree OID on new side (07cba95)
  • Fixes #2371: honor DiffOptions::renames in build_file_diffs (45a4def)
  • Merge branch 'factory/fix-2366-packed-tag-push' (31ac3c1)
  • Fix #2365 regression test parent inspection and fmt (6fbae6e)
  • Fixes #2365: priority topo sort for merge-preserving rebase replay (c619c92)
  • Skip conflict-only hard-reset removal through symlink parents (4bdcd9c)
  • Fix hard reset leaving modify/delete conflict files in worktree (176f708)
  • Merge branch 'factory/blame-move-detection' (7bd852a)
  • Merge branch 'factory/legacy-tree-mode-switch-2372' (882b90b)
  • Merge branch 'factory/fix-2374-commit-request-docs' (6cc3f2f)
  • Address review: drop in-module packed-refs fixture, sync override (43226ac)
  • Fix #2366: list_refs uses tag object for packed annotated tags (147825b)
  • Fixes #2370: blame within-file move detection (-M) (fd3d617)
  • Fixes #2372: canonicalize legacy tree modes in switch/merge transitions (82ef4f5)
  • Fixes #2369: conflict when delete touches adjacent insert (7698f6d)
  • Fixes #2374: compile Identity guide via CommitRequest::new example (0fca658)
  • Document the CLI hot-text layout and record its daily rows (b5b09b2)
  • Lay out the grit binary's own hot code next to grit-lib's (09d390d)
  • Skip linear-chain shortcut for --since bounded rev-list walks (208ff6e)
  • Fix rev-list --since frontier to match Git on skewed dates (0c4fac5)
  • Merge branch 'factory/packed-refs-stream-5994' (8ccac07)
  • Merge branch 'factory/ci-green-6000' (8fd76f3)
  • Stream packed-refs for ref listing without retaining every name (1120634)
  • Refresh grit-lib public-api snapshot for pack_receive and pathspec API (4bf9e3a)
  • Remove test-only rev_list API and the dead ref_exclusions module (2bb3040)
  • Remove unused mapped_arc test helper from reftable (c30c4f1)
  • Drop unused http-body-util dependency from grit-http-server (86cbb71)
  • Document the undo-commit numbers with tags packed before the new work (f30cdeb)
  • Append reset reflog lines instead of logging through transactions (1d50cdd)
  • Skip packed tags the orphaned-commit report cannot need (f78d148)
  • Merge branch 'factory/fix-embedded-repo-no-commit' (aed84ba)
  • Skip hot-text-layout when CI forces GNU bfd linker (a477324)
  • Fix tracked-scan path for unborn embedded gitlinks (013aeb4)
  • Refuse unmerged gitlink staging when nested HEAD is unborn (e9378c2)
  • Fixes #2364: refuse embedded repos without commits (4a3ce99)
  • Report a server's ERR packet and side-band fatal as Error::RemoteFatal (9f24c3e)
  • Merge branch 'factory/packed-refs-stream-f0c2' (183c164)
  • Merge branch 'factory/branch-create-upstream' (2188ced)
  • Fix sorted fallback duplicates and streaming scan cost (3067185)
  • Fix packed-refs streaming strictness and sorted fallback (6c8a52c)
  • Stream packed-refs listing without materializing full maps (93f04f9)
  • Fix remaining status/commit aborts on unreadable directories (b19e946)
  • Fix unreadable directories aborting status and commit (1442fac)
  • Report the configured upstream from create_branch (b881824)
  • Merge branch 'factory/fetch-interrupt-gc-2362' (d631948)
  • Merge branch 'factory/rebase-skip-2363' (838bd12)
  • Merge branch 'factory/embedded-gitlink-warnings-5962' (cb2cd54)
  • Apply rustfmt after rebase (eb995b0)
  • Merge branch 'factory/attr-pathspec-log-add' (e583fb8)
  • Restrict gc install-stage pruning to .pack--install- dirs (a13b650)
  • Fix fetch interrupt temp pack cleanup and gc stale tmp pruning (ca057fb)
  • Fix rebase --skip and --continue after conflict when edits are empty (e9ca77f)
  • Fix commit --dry-run for newly staged gitlinks (00b3989)
  • Warn when nested repositories are staged as gitlinks (8709359)
  • Fix attr pathspec in rev-list, log, and add (f94d0db)
  • Fix file/directory merge conflicts (#2359) (101d059)
  • Merge branch 'factory/status-hot-text-layout-5960' (e41aa10)
  • Merge branch 'factory/pathspec-top-subdir' (247fe19)
  • Document the hot-text layout and record its census baselines (6810658)
  • Merge branch 'factory/rebase-continue-multi-c444' (f9ad748)
  • Add grit-lib hot-text-layout feature to cut code-page RSS (0080094)
  • Require non-empty status output in :(top) CLI test (1f65fbd)
  • Fix CLI regression test for :(top) pathspec from subdirs (26891b7)
  • Fixes #2355: honor :(top) pathspec magic from subdirectories (3180097)
  • Merge branch 'factory/ref-ad-stream-5915' (e7f4d9c)
  • Merge branch 'factory/mv-keep-empty-dirs' (34f2b6f)
  • Fix #2357: add CLI regression tests for multi-commit rebase continue (36799d0)
  • Probe packed-refs order before streaming callbacks (b093b23)
  • Fix packed-refs for_each_ref merge and cancellation (21aa09d)
  • Stream packed-refs listing for ref advertisements (1f80bd3)
  • Fixes #2358: grit mv leaves emptied source directories on disk (d3d0451)
  • Fix #2230: skip pre-since commits on bounded path walk (f572979)
  • Fix #2230: use bounded path walk for since plus filter (3b22dad)
  • Merge branch 'factory/git-index-file-write' (f371cbd)
  • Fix log and revs --reverse -n window truncation (375f515)
  • Merge branch 'factory/switch-typed-branch-errors-a20c' (8892acb)
  • Fix rebase --continue misleading "Already up to date" output (67732b6)
  • Fix rebase continue after conflict resolution with empty edits (98cb3a9)
  • Fix GIT_INDEX_FILE ignored on index writes (9ac871e)
  • Fix switch branch resolution to return typed BranchError (c83221f)
  • Fix rebase continue/skip when first replay commit has no edits (4a45220)
  • Stat hard-reset paths relative to their directory (45a1c36)
  • Mark files a checkout just wrote as content-verified (f81e19f)
  • docs: fix Site check after fetch-stream merge (ea496e8)
  • Fix CI after fetch-stream-cap merge (ad3fc72)
  • Fix blame import after hunk API conflict resolution (c0a7d26)
  • blame: complete uncommitted metadata in grit-lib (f08d5dd)
  • bench: record diff/* daily rows before and after the stale-index memory fixes (539f7d0)
  • worktree_rules: keep attribute stacks for the current directory chain only (90d8544)
  • diff: queue stale-stat hash jobs by index position (fd97f25)
  • Merge branch 'factory/fetch-stream-cap-5886' (78b24ef)
  • Fix review: allow Git-empty ref dirs, tighten D/F race errors (359e971)
  • Fix CI: refstore D/F create race and upstream mapping row (28fa1f3)
  • chore: extend public-api snapshot for RequestBodyLimitExceeded (c29081c)
  • fix: map protocol v2 fetch body limit to HTTP 413 (8be4faf)
  • fix: stream large fetch bodies over smart HTTP (Fixes #2347) (d332ee0)
  • Update grit-lib public-api snapshot for ReftableReader::from_mapped (fced6cf)
  • Fix review blockers: mapped reftable readers, streaming info/refs (c7a307f)
  • Fix #2348: Stream ref ads and mmap reftable stack cache (ae26054)
  • Report invalid object ids in a saved rebase plan as a typed error (ab80367)
  • Reuse shared history helpers in rebase sessions (bf98ffa)
  • Merge branch 'cursor/config-set-fast-path-e424' (42997e6)
  • Merge branch 'factory/head-tree' (c2a0db3)
  • Speed up grit config set/get: locate the repo without opening it, drop config fsync (12b037d)
  • Fix diff_patch_text test build: borrow index line through a fn (2365fa5)
  • Merge branch 'cursor/pick-index-write-memory-422b' (0331bcd)
  • Refresh grit-lib public-api snapshot for Repository::head_tree (aba07d0)
  • Use Repository::head_tree instead of private HEAD-tree helpers (8b21867)
  • Add Repository::head_tree and HeadState::tree (db6c7f0)
  • Record pick/one before/after baselines and the peak-memory ledger (89aa4f7)
  • Name the index chunk sink type for clippy::type_complexity (55f64fc)
  • Stream index writes through a bounded buffer instead of a full in-memory body (28216e1)
  • Remove dead reflog formatter and fix library bench warnings (012c2b3)
  • Merge branch 'cursor/branch-merged-peel-once-0837' (7ce32b6)
  • Merge branch 'cursor/dead-code-round-b0c4' (4639b7e)
  • Record branch --merged many-refs profile and baselines (94ef381)
  • Peel each ref tip once in reachability-filtered listings (183e5ea)
  • Remove the unused rev-list pretty-format renderer (4466dfc)
  • Merge branch 'cursor/rebase-session-shared-helpers-d5b1' (6ebf5fb)
  • Remove test-only grit-lib functions found by the privatizing dead-code scan (ea1f52b)
  • Remove dead reflog formatter, unread fixup counter and stale bench code (0dbe3ca)
  • Use shared history helpers in rebase_session and type invalid plan oids (8a7acaa)
  • Build CommitRequest via new() in rebase session tests (4ca11f3)
  • Document and baseline the per-directory ignore stack change (59ff522)
  • Use RepoPathNormalizer and move results into output in grit ignore check (6fa237d)
  • Reuse the query path stat to skip per-directory file checks in ignore_check (b08ce7a)
  • Build ignore exclude stacks once per directory and match without per-path allocation (e5cf883)
  • Honor protocol.version on SSH fetch, list_refs, and remote refs (e46dc72)
  • Merge branch 'factory/sparse-switch-unique' (fcd91f9)
  • Document the sparse switch numbers for changed excluded trees (3829818)
  • Keep changed excluded sparse directories opaque on switch (d1ce825)
  • Refresh grit-lib public-api snapshot for blame hunk lines (49c17c7)
  • Move blame hunk lines and uncommitted author naming into grit-lib (19cf613)
  • Merge branch 'factory/fix-2345-chunk-bounds' (3c14b84)
  • Fixes #2343: write remote-tracking reflog on fetch (34a2249)
  • Fix repack chunking so same-path large blobs share one delta base (e5c71e7)
  • Fixes #2341: hash worktree content for patch-text index lines (b704da1)
  • Merge branch 'factory/status-untracked-cwd-paths' (a6ee9dd)
  • Fix cwd-relative status paths for untracked directories (7c3ec0c)
  • Fixes #2342: stop pairing untracked paths in unstaged rename detection (f8543ad)
  • Fix stash list --json to return a list object (22dd4f2)

Full Changelog: v0.5.26...v0.5.27

Don't miss a new grit release

NewReleases is sending notifications on new releases.