Skip to content

v0.5.17

Choose a tag to compare

@github-actions github-actions released this 22 Oct 23:10
· 2617 commits to main since this release

What's changed

  • reftable: typed ReftableError instead of string errors (f9e3b92)
  • fix(grit-bench): harden remote daily fetch/pull/push benchmarks (3b1c4ba)
  • ci: serialize workspace test links to avoid lld bus errors (a4e5e07)
  • test: avoid TreeSha256 false positives in hash guard (098ab34)
  • fix(cli): remove duplicated revert module and keep argv order (8aac80f)
  • fix(cli): address review on branch, fetch depth, and revert order (a1285d1)
  • docs: extend grit skill and tutorial for remote workflows (96b8857)
  • Merge branch 'factory/ci-green-3209' (31aa4ac)
  • fix: remove duplicate operation key in canonical-modules.toml (63d6ee1)
  • fix: validate every grit revert revision as a commit (cf804cf)
  • test: refresh skill and revert CLI snapshots (c191c37)
  • refs: recheck packed-refs freshly before creating refs (544d7f8)
  • bench: record branch and tag daily rows on many-refs before and after (7f23ee8)
  • refs: map large packed-refs files instead of copying them (0fb1774)
  • refs: create refs without loading every ref and reflog (f84f544)
  • fix(pull): drop operation autostash after conflict-free abort restore (1abc43c)
  • fix(pull): review — autostash on errors, dry-run, path remotes, branch API (3017491)
  • feat(pull): explicit refspecs, --autostash, --check, and shared fetch flags (3a988dc)
  • Merge branch 'factory/revert-no-commit-3187' (cb1f717)
  • Refresh CLI skill output snapshots after main rebase (0c9fa5d)
  • Update grit-lib public-api snapshot for push flags (33aa49e)
  • Sync json_output tests with commit and merge JSON shapes (31cca92)
  • Fix follow-tags for custom ref destinations and restore push planner (af279e0)
  • Follow-tags: commit-graph ancestor checks instead of full walk (e56a209)
  • Address push review: upstream JSON, follow-tags, push-options (75bee3e)
  • Add grit push -u, --atomic, push options, and --follow-tags (ca92528)
  • feat: wire grit pick --continue, --abort, and --skip (027c55c)
  • fix: replay sequence start state, continue ordering, and mainline messages (d7b5138)
  • fix: preserve HEAD when continuing a no-commit revert sequence (e553775)
  • Address revert review: revision range order and replay created records (91acca9)
  • Merge branch 'factory/fetch-all-3010' (bc829b6)
  • Merge branch 'factory/pick-revert-status-3189' (bd3775b)
  • test(fetch): refresh fetch_prune snapshot for prune output (f4ed9de)
  • fix(fetch): address Bugbot CLI refspec and dry-run findings (9092c4f)
  • feat(fetch): add --all and RepositoryRemotes::fetch_all (5a71f1e)
  • fix(branch): rename positional OLD, upstream preview, and flag guards (6f24300)
  • replay: check empty continue before advancing sequencer (4f9ea23)
  • replay: Grit merge-revert wording and continue fixes (3758624)
  • status: expose pick/revert operation hints for Git sequencer state (ec3e6ef)
  • Merge branch 'factory/perf-pick-one' (95af83e)
  • Merge branch 'factory/ci-green-3128' (89f1ea8)
  • fix: daily headline roadmap table length and push_plan rustdoc (5d18b6b)
  • fix: apply force-with-lease to delete ref updates (c250d13)
  • grit push: force-with-lease and --force in push planner and CLI (301fe03)
  • Merge branch 'factory/status-clean-speed' (d8ab763)
  • test: raise root pub mod budget for new grit-lib modules (ed8da7d)
  • fix: reject embedded newlines in --author values (781931e)
  • fix: commit dry-run staging uses real blob oids (d226032)
  • fix: add module doctests for operation and repo_relpath (0daa61c)
  • fix: restore daily scenario registry entries and CI doc checks (06b9044)
  • fix: drop unused mut in fetch_deepen daemon helper (51bf91f)
  • fix(fetch): deepen-relative framing and review follow-ups (c9721a5)
  • docs: update public API snapshot for FetchDepth (88feeeb)
  • feat(fetch): shallow depth, deepen, and unshallow (9d8d6ce)
  • status: reset the walk's ignore matcher per directory task (0b21618)
  • docs: describe how the status untracked walk is parallelized (d843816)
  • status: test the split untracked walk (33bd983)
  • worktree scans: fewer allocations and cheaper sorts (d4302ba)
  • status: split the untracked walk below the top level (b70a630)
  • status: cut per-entry allocations in the worktree scans (dfc3928)
  • bench: restore status/paths and status/renamed matrix registrations (80df2cb)
  • tests: rustfmt the wide-pick replay tests (b680361)
  • docs: record the pick/revert/merge apply-path speedup and refresh hot-paths baseline (77e1f26)
  • diff: trust the scan's lstat for clean entries in the dense worktree pass (c002274)
  • pick/revert: write the merge checkout index once, keeping fresh stat rows (8b1d8f3)
  • merge_trees: index touched and sparse paths by prefix instead of scanning them (48bdb09)
  • Merge branch 'factory/revert-sequence-3025' (f2f316c)
  • Merge branch 'factory/fetch-fetchargs-3008' (ecd62ff)
  • Merge branch 'factory/branch-mutation-3001' (ef8ab4a)
  • chore: fmt remotes imports; sync public-api.txt (114bbcf)
  • fix(fetch): scp remote DWIM, rejected output, restore pull docs from main (1d45127)
  • fix(fetch): dry-run classify via quarantine ODB; update prune snapshot (ce80f4c)
  • fix(fetch): review — tag dest rules, dry-run, trailing flags, tests (1a5dc52)
  • fix(gate): daily fetch matrix, rejected-fetch tests, and layout map (2916c8d)
  • fix(rustdoc): repair intra-doc links blocking workspace doc (74f56b7)
  • feat(fetch): shared FetchArgs, refspec CLI, and fetch JSON v1 fields (b023363)
  • Address revert review: topo range order, ReplayCreated, Grit merge messages (7c5501b)
  • grit revert: multi-commit sequences, mainline, and continue/abort/skip (7928903)
  • cargo fmt (73fcc03)
  • public-api: WtStatusState.grit_replay_sequencer field (218119a)
  • replay_sequence: abort-safety, no-commit empty compare, status hints (48bb8bd)
  • Fix guide_replay_conflicts clippy; document commit JSON change_id field (37c9e6f)
  • replay_sequence: ReplayCreated records and maintainer steering (684a526)
  • grit-lib: fix replay sequence abort, no-commit, and git opts (e80f51b)
  • docs: fix rustdoc, pull schema docs, and module doctests for gate (13bf6b9)
  • grit-examples: use public index handle in replay conflicts guide (f35fda9)
  • grit-lib: pick/revert sequence engine that stops on conflict (f6ebf41)
  • fix(branch): usage JSON for delete --force, restore upstream API (24ec6b9)
  • fix(branch): review — force-delete usage, -M args, upstream dry-run validation (4699f7b)
  • feat(branch): create at start, track, upstream, rename, and force-delete (c8491e7)
  • fix(pull): replay parallel merge roots onto rebased mainline (93c51c2)
  • fix(pull): rebase merge side branches and daily pull/rebase verify (61027aa)
  • feat(pull): rebase integration via history engine and pull --rebase (925fdd1)
  • Add grit tag --verify CLI (98edf6c)
  • Update grit-lib public-api snapshot for push plan API (4583b6e)
  • Apply configured negative push refspecs as exclusions on the plan (551c0de)
  • Fix push review blockers: JSON fields, remote DWIM, matching refspec, src (0fdbfb2)
  • Fix push command doc JSON field table for schema CI (7a415cd)
  • Sync push JSON schema with schemars output (f9419c9)
  • Add grit-lib push plan and grit push refspecs with dry-run (6d072ec)
  • ident_resolve: drop test-only identity helpers and fold the loose committer chain (a1f952a)
  • Merge branch 'factory/log-refs-config-dedupe' (f7dee3a)
  • Merge branch 'factory/branch-rename-2999' (da0e302)
  • Merge branch 'factory/push-plan-3080' (74b63dd)
  • Align push command JSON field table with PushOutcome schema (61025f1)
  • Route branch-rename HEAD retarget through repository RefStore (ab29913)
  • Address branch-rename review: atomic reflog txn, validation order, case-only refs (bd8568f)
  • grit-lib: branch rename with ref transaction, config, and worktree HEADs (945cb3d)
  • refs: parse core.logAllRefUpdates in one place (1493b64)
  • Sync push JSON schema and PushRefSpec src_ref test fixtures (67039e2)
  • Wire push plan into main after rebase (799a33a)
  • Rename push CLI helper to satisfy transport hygiene guard (57a3601)
  • Fix push matching default, literal remotes, and config refspec mapping (6cfec79)
  • Update grit-lib public-api.txt for push_plan surface (eb77aa2)
  • fix(merge-check): check UX, benchmark git argv, baseline, rebase gate prep (222c8cf)
  • fix(merge-check): benchmark git shell quoting, lib driver, review blockers (dc4391f)
  • feat(merge): add in-memory merge --check prediction (97f8671)
  • fix(merge): review — branch/continue conflict, label before finish, snapshots (2890920)
  • feat(cli): grit merge --continue with docs and status hints (f1645a5)
  • feat(merge): add continue_merge to finish in-progress merges (b218a7b)
  • grit-lib: restore branch inventory bench and coverage hooks (c3df07a)
  • grit-lib: match Git subject whitespace and empty messages (fec7ee0)
  • grit-lib: fix branch inventory upstream, subject, and Names sort (4f99376)
  • Merge branch 'factory/commit-p1-date-tz-3079' (7f24b0d)
  • merge: restore integration outcome mapping after rebase (78a2669)
  • pull: preserve main API while applying integration fixes (7f0fbe6)
  • pull: resolve and integrate the upstream in grit-lib (c4945b4)
  • merge: compare-and-swap the branch move through the ref store (c0fcfcc)
  • branch_tracking: map the upstream through the remote's fetch refspecs (3e923e4)
  • commit: normalize --date timezone suffixes like Git (d7f6a9a)
  • commit: P1 flags (--date, --trailer, signoff, -C, signing) (aacd999)
  • Use canonical config::ident import in grit commit CLI (fd564ef)
  • Add canonical map entries and regenerate public-api snapshot (706a930)
  • Fix commit review blockers: message stripspace, post-commit, author parse, amend author (af48b22)
  • commit: message file, author override, and no-verify hooks (ed50610)
  • tree_sha256: do not double-qualify nested missing submodule paths (f37100e)
  • Merge branch 'factory/version-sort-fix-3069' (17364c0)
  • Merge branch 'factory/ci-green-3085' (2df9237)
  • fix: rebase integration after origin/main (056cccf)
  • chore: refresh dashboard baselines at branch HEAD (7ba2aff)
  • fix: path-scoped commit dry-run preview and CLI review items (8298dcb)
  • Polish: dry-run staging, hostile path validation, docs, schemas, baselines (fdb97b8)
  • Workflow test, commit/add dry-run stack, and skill docs (9a20664)
  • fix: add dry-run without ODB writes and pathless -u unmerged resolution (9428765)
  • add: -u/--update, --dry-run, and path lists in stage outcome (40a801a)
  • fix(ci): restore main CI (tag tests, rustdoc, pull docs, coverage install) (bb840e9)
  • grit-lib: fix version:refname sort and ref query edge cases (3a9cf27)
  • Merge branch 'factory/perf-log-all' (c78aa9c)
  • Merge branch 'factory/commit-dry-run-3068' (6491cea)
  • Merge branch 'factory/switch-dry-run-overwrite-3cb0' (c67f607)
  • Move commit parents into the walk cache unless retaining (4b8f01b)
  • docs: rev-list early stop at any limit and retain_commit_data (d0db4c7)
  • Reuse the walk's parsed commits when rendering grit log (00d78e3)
  • Stream default-order --max-count walks at any limit (fb33b6a)
  • fix(grit-cli): restore markdown change-id output for history operations (07c964c)
  • switch: typed WouldOverwrite errors and --dry-run (6ce589d)
  • Merge branch 'factory/remote-refs-query-662d' (825ea13)
  • Update grit-lib public API snapshot for remote ref query (cdbb5cc)
  • remote refs: empty ls-remote pattern matches nothing (c326833)
  • remote refs: shared ls-remote query sort, patterns, and limit (e977d58)
  • Merge branch 'factory/fetch-named-fetch-head-fb09' (2cdace9)
  • Merge branch 'factory/branch-mutation-typed-errors' (03e4020)
  • commit: P1 flags on origin/main without #2810 (04ef887)
  • docs: clarify fetch_source is set by Remote::fetch (e122dec)
  • fix: set fetch_source for named Remote explicit fetches (0f65cf2)
  • grit-lib: branch create/delete/upstream with typed BranchError (62b4be9)
  • Merge branch 'factory/fetch-refspec-resolution-3007' (65b1000)
  • Update grit-lib public API snapshot after main rebase (29a34bb)
  • Restore immutable FetchOptions on public fetch progress APIs (a9b1672)
  • Address fetch refspec review: mixed refspecs, HEAD/OID, FETCH_HEAD, HTTP tests (7d26d81)
  • Update grit-lib public API snapshot for fetch refspec types. (ccf3f5c)
  • grit-lib: typed fetch refspec resolution for explicit refspecs (f3a5b45)
  • Merge branch 'factory/ci-green-3046' (e340995)
  • Address review: preserve merge/pull v1 schemas and fix skill snapshot (c6a7e0f)
  • Add shared operation conflict model and merge JSON v2 (cb9a92f)
  • Merge branch 'factory/blame-walk-speed' (1eeea6f)
  • fix: advance harness clock for commit-tree in DAG builder (bbb77e6)
  • fix: Windows lone-blob scan types and fixup git history oracle parity (19d1dff)
  • tag: force, message file, positional target, and dry-run (1aafaa3)
  • Merge branch 'factory/ref-query-listing' (613453a)
  • docs: describe how blame skips unchanged history (c65e78f)
  • blame: walk first parents without retaining trees or full commits (199d72b)
  • objects: stop tree entry lookup at the entry's sorted position (ef6bc84)
  • pack: create the single-pack reader's inflater on first use (3a133ab)
  • grit-lib: add shared ref query listing (sort, patterns, limit) (eeaacdd)
  • pack-bitmap: read only the pack trailer when validating a bitmap (625a993)
  • revwalk: classify first-parent ancestry with one two-sided walk (bab71c7)
  • fix(pull): do not implicit-upstream when merge config unset only (1fcd1d9)
  • fix(pull): pull.ff=false, upstream default, schema and docs (6220b90)
  • feat(pull): lib pull engine with ff-only and pull.ff config (0e32ed0)
  • chore: refresh public-api snapshot after rebase onto main (e92a740)
  • fix(restore): match git --merge for add/add and binary conflicts (70dbdf0)
  • docs(public-api): record restore conflict error variants in prelude (93270aa)
  • feat(restore): add --ours, --theirs, --merge, and --conflict for unmerged paths (4439cd9)
  • bench: hash-after baselines and hashing performance docs (b962942)
  • test: expect intent_to_add in add JSON schema keys (5c56eff)
  • fix: adapt intent-to-add empty blob to hash_object Result API (acc87b9)
  • fix: include intent-to-add paths in add --markdown output (4418563)
  • fix: intent-to-add empty blob uses repository hash algorithm (2fab782)
  • add: -N/--intent-to-add and -f/--force for staging (eb221f5)
  • Merge branch 'factory/tree-sha256-tag-claim' (e2770e1)
  • chore: withdraw redundant change-id API; fix already on main (63352e1)
  • Merge branch 'factory/add-update-dry-run-2807' (60805b4)
  • chore: rustfmt hash_collision_cli after hash_object API change (d86342b)
  • fix: pathless add -u removes unmerged paths deleted in worktree (28721db)
  • fix: add dry-run without ODB writes and pathless -u unmerged resolution (5cabda2)
  • add: -u/--update, --dry-run, and path lists in stage outcome (ff8d796)
  • chore: map repo_relpath in canonical-modules.toml (092d27e)
  • chore: refresh grit-lib public-api snapshot for quote_c_style_bytes (06a29b2)
  • Add tree-sha256 tag header codec in grit-lib (1552a76)
  • test: fsck --strict for sha1Collision CLI exit code (93562c5)
  • Merge origin/main into factory/checked-object-hash-2718 (b556f9b)
  • fix: rebase fallout for fallible hash_object API (47ce4a5)
  • bench: use repacked pack for hash index-pack scenario (b6ea6d6)
  • hash: propagate HashCollision through copy detection and thin-pack fix (296727d)
  • hash: make object-id hashing fallible and collision-checked (8f7e831)
  • Fix SHA-1 ingestion for SHAttered blobs (Git-compatible object ids) (8854c0d)
  • Merge branch 'factory/empty-subtree-1413' (f9807dd)
  • Fix push --delete --json reporting branch as --delete (f8c0b9c)
  • Fixes #1413: omit empty subdirectory entries from merged trees (1170481)
  • test: move add FIFO CLI regression to grit-cli and fix JSON field (66793ea)
  • fix: skip FIFOs and sockets in untracked scan and add (f23ea01)
  • fix: hash all regular-file modes and unify stale-cache worktree diff (aeecc29)
  • fix: pass --repo to tree-sha256 in golden generator (5c8b790)
  • Review: public-api snapshot and trailing-slash symlink pathspecs (bcb18b8)
  • Fixes #1403: reject pathspecs beyond symlink directories (c0f398a)
  • Add tree-sha256 content digest in grit-lib (44b47ee)
  • Fixes #1401: materialize empty tree on commit write path (88864ff)
  • Merge branch 'factory/non-utf8-gitlink-checkout-2963' (1738984)
  • Merge branch 'factory/diff-no-newline-eof-1402' (9ed2ebb)
  • fix: Bugbot non-UTF-8 path regressions in checkout, status, and restage (be53380)
  • fix: decode stored paths for non-UTF-8 gitlink checkout additions (f6ea5b9)
  • Fix non-UTF-8 checkout deletions in checkout_between_trees (24d093b)
  • Fix review blockers for non-UTF-8 paths (injective encoding, restore, tests) (049a4a9)
  • Fix non-UTF-8 path handling in status, diff, add, and clone (4bc882c)
  • fix: resolve rustdoc trait method links in site check (8e41fa7)
  • fix: keep gitbutler-change-id when canonical change-id exists (6211211)
  • Emit markdown EOF markers and fix -w line compare keys (f7f0465)
  • Fix diff alignment when appending to a file without trailing newline (711dc7b)
  • Merge branch 'cursor/commit-dry-run-steering-19cd' (ebbb16f)
  • test: set CreateTagRequest force and dry_run after tag API rebase (8a9f0e2)
  • tree_sha256: accumulate global prefix for deep submodule exclusions (955c708)
  • Fix nested tree-sha256 exclusions, public-api snapshot, and review fixtures (62e6c1b)
  • tree_sha256: add tag verification API with concurrent signature and digest checks (203038e)
  • fix(grit-lib): commit dry-run auto-stage and rebase parity with main (4749fe2)
  • fix: restore main add staging checks after dry-run rebase (3383969)
  • chore(grit-lib): refresh public-api for commit dry-run API (66a249b)
  • bench(grit-utils): register commit/dry-run daily scenario (c886ca9)
  • test(grit-cli): commit dry-run JSON contract and CLI coverage (efec539)
  • feat(grit-lib, grit-cli): commit dry-run without disk writes (f4ab51a)

Full Changelog: v0.5.16...v0.5.17