Skip to content

Releases: narnaud/git-loom

v0.16.0

22 Mar 16:04

Choose a tag to compare

0.16.0 (2026-03-21)

Features ✨

  • continue-abort: add completion (abd4be4)
  • continue-abort: infrastructure for conflict pause/resume (phases 1-2) (fbed373)
  • continue-abort: wire pause/resume into all resumable commands (phases 3-4) (7318793)
  • diff: add loom diff command with short ID support (53c3e3c)
  • swap: add completion for swap (7436636)
  • swap: add swap command to reorder commits or branches (1b697d0)
  • swap: remove branch swapping (18b5c48)

Bug Fixes 🐞

  • absorb: restore pre-absorb HEAD on abort via reset_hard_to (db8889a)
  • docs: preserve existing docs when deploying stable or latest (8d4193b)
  • status: compute short IDs before hiding branches for stability (534d22c)
  • suppress editor on git rebase --continue (a2f85be)
  • weave: place merge commits before loose picks, not at HEAD (b2f3e9f)

Documentation

  • continue-abort: document loom continue and loom abort (22c4eaf)
  • continue-abort: inform the user he can remove the state file (31c9d9b)
  • diff: add spec and user docs for loom diff command (f1c933c)
  • guides: add conflict resolution guide (a33c015)
  • only update docs on release, have the main doc on /latest (f8b43a6)
  • rework documentation deployment (a5fe772)
  • swap: add spec 015 for swap command (21a96e2)
  • swap: add swap command documentation (01bd3e8)
  • update command list (8daa5d6)

Changes

  • absorb: split run() and extract rollback_pre_rebase() (8658fe5)
  • continue-abort: add aliases c and a for continue and abort (09e5c43)
  • deduplicate conflict warning and restore_staged helpers (c05636e)
  • tests: extract commit_sid_from_status and branch_sid_from_status helpers (f2e2a4e)
  • transaction: simplify Rollback — trust git rebase --abort for refs (993db36)
  • update: consistency with other commands, remove unused argument (779f587)
  • update: force delete branches with gone upstream (7027142)

Tests

  • abort: add working-state preservation tests for all transaction commands (4168a43)
  • absorb: add integration tests (8545b6c)
  • add bash integration test suite for the final binary (021012c)
  • add describe calls to all integration test files (01c553f)
  • add integration tests for gl init (9774f2c)
  • branch: expand integration tests with comprehensive coverage (3a378e5)
  • commit: add integration tests (a4f5e59)
  • continue-abort: add integration tests for continue/abort flow (a0ca291)
  • drop: add comprehensive integration tests; fix spec error message (277e471)
  • fold: add integration tests (5c644fa)
  • integration: add real conflict continue/abort tests for commit, fold, drop, absorb (3b6e983)
  • integration: add swap integration tests and fix CRLF warning (c737988)
  • reword: expand integration tests with comprehensive coverage (c9e41ce)
  • show: add integration tests (e40927b)
  • split: add integration tests (53706da)
  • status: comprehensive integration tests for gl status (f77dae1)
  • update: add integration tests (74440ca)

Other

  • claude: add more permissions (788d81d)
  • claude: add update-docs skill for creating and updating command docs (6c79ab6)
  • claude: add write-integration-tests skill (2ebe2a2)
  • claude: add write-spec skill for creating and updating specs (9eca3a4)
  • claude: update update-docs skill to always update command list (b22ca66)
  • deps: bump clap from 4.5.60 to 4.6.0 (3bac005)

v0.15.1

15 Mar 10:53

Choose a tag to compare

0.15.1 (2026-03-15)

Bug Fixes 🐞

  • fold: fix folding on branch, add an integration test (7f6c514)

v0.15.0

14 Mar 17:55

Choose a tag to compare

0.15.0 (2026-03-14)

Features ✨

  • absorb: absorb chunks instead of full files (bdb27e3), closes #48
  • add centralized resolve_arg() and migrate all callers (df8b365)
  • branch: add subcommands (new, merge, unmerge) (1b1f8f6)
  • fold: allow folding staged files with single-arg loom fold <target> (16997ef)

Bug Fixes 🐞

  • commit,fold,absorb: isolate staged files when explicit paths are given (043a2f8)
  • commit: accept staged renames and typechanges as valid changes (02d9fad)
  • commit: only delete newly-created branches on rollback (056d220)
  • drop: skip unnecessary rebase for non-woven co-located branch drop (ddec730)
  • drop: support filenames, paths, and directories as targets (d7aff5f)
  • fold: reject moving commits to out-of-scope branches (a96a90b)
  • fold: restore branch refs in non-HEAD uncommit rollback paths (54f3b9d)
  • git: fix index status precedence in get_working_changes (07b476e)
  • git: warn on partial failures in restore_branch_refs (5da62cb)
  • main: correct stale comment about logging exclusions (757ff80)
  • push: show 'Pushed' success message before PR operations (4d10e8a)
  • push: skip PR creation when pushing upstream target branch (d388c6e)
  • push: use bare branch name for existing PR detection (810c18b)
  • push: use commondir for Gerrit hook detection in worktrees (82fb865)
  • push: use msg::warn for CLI install advisory messages (72db4c1)
  • push: warn on unrecognized loom.remote-type config value (112b36f)
  • push: warn when gh pr create fails instead of silent success (00e50b3)
  • trace: use repo.path() for log directory, fixing linked worktrees (acf0171)
  • unmerge: replace dead .with_context() with .expect() (ebdcc9e)
  • update: use safe delete for gone-upstream branch cleanup (54e1c2f)
  • weave: make move_commit and fixup_commit return Result, validate before removing (650a69c)
  • weave: preserve co-located update_refs when dropping stacked branch (882a901)
  • weave: transfer update_refs when dropping commits (ba115d6)

Documentation

  • add a favicon to the documentation (9112225)
  • add git-loom banner (e585a00)
  • branch: clarify hideBranchPattern uses prefix matching, not glob (03770fb)
  • change tagline for a more specific one (e50c2f6)
  • restructure and add colors for the help (c05acc6)
  • rewrote branch documentation to handle branch subcommands (606b431)
  • update: document intentional auto-abort on rebase conflict (022002d)
  • use a screenshot instead of a screencast (annoying) (e66b626)

Tests

  • branch: add merge + unmerge round-trip test (71ef336)
  • push: add unit tests for extract_gh_repo URL parsing (d64ca79)
  • weave: add unit tests for weave_branch (bf9f549)

Other

  • adapt image for github and mdbook (482ed48)
  • deps: bump tempfile from 3.26.0 to 3.27.0 (282036f)
  • simplify README, link to documentation (f74fd32)
  • update completions scripts (17f2fc4)

v0.14.0

10 Mar 08:14

Choose a tag to compare

0.14.0 (2026-03-10)

Features ✨

  • add common aliases to some commands (1c06ca8)
  • push: Allow ssh host aliases and non-standard remote names (cc620e7)
  • push: auto-generate PR title and description from branch commits (b5d5030)
  • push: display Gerrit review URLs after push (347e337), closes #69
  • status: show conflicted files with !! marker in bold red (3a9a31d), closes #67

Bug Fixes 🐞

  • push: fix Azure PR description and JSON output (291b6d6)
  • push: fix calling az on Windows (b9cc2c7)
  • push: use serde_json to parse Azure and GitHub CLI output (1a71d4c)

Documentation

  • push: document auto-generated PR title and description (42dc767)
  • push: document Gerrit review URL display after push (269c54e)
  • status: document conflict display with !! marker (8280ddd)
  • update help to be more complete (00e61c3)

Changes

  • update warn message and use it for branch deletion (9ea9ffc)

v0.13.0

08 Mar 19:38

Choose a tag to compare

0.13.0 (2026-03-08)

Features ✨

  • add show command for viewing commits by short ID (#36) (fdf954a)
  • branch,reword: warn when branch name matches hidden pattern (54e0b2c)
  • drop: support dropping files and all local changes (5c2727d), closes #50
  • fold: add --create flag to create and move commits into new branches (ba6ef5a), closes #37
  • push: Add a --no-pr flag to push directly (d53e726)
  • push: add AzureDevOps remote type with az CLI integration (71dc11d)
  • show new commit hash after rewrite operations (23904c5), closes #19 #40
  • status: add remote info on the branch name (1ab7d26)
  • status: Allow -f to filter files to specific commits (84e715c), closes #45
  • status: group tracked changes before untracked files (b95e117)
  • status: hide local-* branches by default with --all flag (8664598), closes #38
  • status: multi-column layout for untracked files (0ebc6fa), closes #41
  • theme: add --theme flag with light/dark/auto support (edb251c)
  • update: Remove local branches with gone upstream after update (2634724), closes #56

Bug Fixes 🐞

  • eliminate TOCTOU race in stage_path (a9fc62e)
  • push: detect existing PR and display URL instead of opening browser (554e7df)
  • reword: show reworded commit hash instead of merge commit hash (c435705), closes #35
  • shortid: enforce 2-char minimum and commit-first allocation (5fb0062)
  • status: New file should appear with red ?? (0fbbdc5)

Documentation

  • add show command to README, CLAUDE.md, and docs site (af6c417)
  • Add tutorial and recipe guides (9c9ded2)
  • drop: document file drop and zz drop-all behavior (0ede693)
  • fix code to avoid scrollbar (2d4f5cd)
  • fold: document --create flag (b582ffe)
  • push: document Azure DevOps support in README and user docs (d0573ef)
  • push: update push documentation for PR detection behavior (43a850e)
  • push: Update with the --no-pr flag (e8fa812)
  • reorder configuration settings (377bff1)
  • status,branch,reword: document hidden branches feature (240548f)
  • status: Document -f commit filter option (44b52aa)
  • status: Update the documentation with latest changes (0c04d6c)
  • theme: document --theme flag in README and docs (b98a90a)
  • update status to add remote indicators (2e1fe6a)
  • update usage instructions for the no command case (5e9a3e9)
  • update: Document --yes flag and gone upstream cleanup (4ad9e73)

Changes

  • extract shared run_git_captured helper (69dd5c4)
  • reuse run_git_interactive in git_commit (9f9532b)
  • show: pass branch name directly to git show (5dbdbfb)
  • status: use dedicated theme colors for remote indicators (3367af4)
  • tests: extract common git ops into TestRepo helpers (65af6cd)

Other

  • add show command to completion scripts (cd7f32a)
  • claude: Update permissions (1c84efe)

v0.12.0

06 Mar 17:24

Choose a tag to compare

0.12.0 (2026-03-06)

Features ✨

  • commit: allow loose commits even when local commits exist (c5ee426)
  • support fold zz <commit> to fold all working tree changes (f0b76ba)
  • trace: add per-invocation command audit trail (667b13e)

Bug Fixes 🐞

  • branch: Fix creation of branch on a commit which resolves to HEAD (6c7e8d9)
  • detect upstream remote for GitHub PR target repo (6a0f19e)
  • don't recurse into untracked dirs (too noisy) (bdb3cf5)
  • fold commit to branch without section in Weave graph (b043cb2)
  • hide upstream's local counterpart from status when at merge-base (0715f7d)
  • not giving a new name for a branch in git reword is a noop (be3ae12)
  • only create loose commits when branch name matches upstream (942cf85)
  • push: Fix re-pushing a branch to github (408e4c2)
  • trace: Don't show '' on Linux. Show '/' on Windows instead ;) (2bb0a26)
  • weave: add # comment marker before commit messages in todo (7f9c8e1)

Performance Improvements ⚡

  • skip file gathering in resolve_shortid when not needed (028c1f5)

Documentation

  • add trace command documentation (48cb8f3)
  • Fix pre-commit command in README (c874c5f)
  • reorder commands in documentation (0bfaa7b)
  • update all specifications and documentation based on last changes (74b154e)

Changes

  • add Target::expect_branch() and use it in push and commit (4b7fdc8)
  • avoid double path construction in detect_remote_type (41518ee)
  • compute find_owned_commits once in drop_branch_with_info (403e4a8)
  • extract pending_refs helpers in weave::to_todo (090533f)
  • remove duplicate do_split_at_pause in split.rs (d675669)
  • reuse git::upstream_local_branch in extract_target_branch (112a21b)
  • Update the help to organize commands (66147ec)
  • use e.to_string() instead of format!("{}", e) (777ce87)

Tests

Other

  • Add split command to shell completions (a0bcbcf)
  • deps: bump actions/checkout from 4 to 6 (0990c22)
  • deps: bump actions/upload-pages-artifact from 3 to 4 (c5db278)
  • deps: bump chrono from 0.4.43 to 0.4.44 (124b448)
  • deps: bump clap from 4.5.57 to 4.5.60 (3a7ced9)
  • deps: bump tempfile from 3.24.0 to 3.26.0 (dbfc4a4)
  • deps: Update all dependencies (0156d99)
  • fix clippy error (if-let chain) (f7f0baa)

v0.11.0

01 Mar 15:54

Choose a tag to compare

0.11.0 (2026-03-01)

Features ✨

  • Add context commits before base in loom status (aa9bb99)
  • Add split command to split a commit into two (98b8ce6)
  • Auto-create loose commit when integration branch matches remote (8274135)
  • Drop on a file restores it with confirmation (a07697d)

Bug Fixes 🐞

  • Preserve woven merge topology during update rebase (5af65cf)
  • Skip PR creation when pushing the upstream branch on GitHub (0a11b3c)
  • Use git editor instead of inquire prompt for split commit message (3d0dc19)

Documentation

  • Add absorb command and missing drop --yes flag (4b5f0e7)
  • Add context commits to status spec and documentation (d76301d)
  • Add split command and loose commit documentation (484ff6b)
  • Update drop specs and docs (5546494)

Other

  • Add CODEOWNERS (148978f)
  • Add release profile for optimized binary size (d6c10af)
  • Fix pre-commit codespell skip file (7fbf725)
  • Fix spelling (e25a2d7)
  • Update pre-commit hooos (0afe346)

v0.10.0

28 Feb 08:05

Choose a tag to compare

0.10.0 (2026-02-28)

Features ✨

  • Add absorb command to auto-distribute changes into originating commits (ec44642)

Bug Fixes 🐞

  • ci: Vendor OpenSSL for aarch64-linux cross-compilation (39624d4)

Performance Improvements ⚡

  • Avoid multiple calls to gather_repo_info (4a86dfb)

Documentation

  • Add screencast to README and documentation introduction (a2c9806)

Other

  • ci: Remove x86_64 macOS target and suppress brew warning (d9c85e8)
  • Update shell completions for absorb, drop --yes, and status --files (2165feb)

v0.9.1

27 Feb 19:00

Choose a tag to compare

0.9.1 (2026-02-27)

Bug Fixes 🐞

  • Add missing version flag (2bc087c)
  • ci: Fix build on Linux and Mac (7483944)
  • cli: Add --files bare option, to match status (5eba86a)
  • commit: Preserve working-tree changes on rebase conflict rollback (db02745)
  • drop: Add confirmation prompt and preserve inner branches when dropping stacked branches (1a08451)
  • Fail early in bare repository (b110efd)
  • fold: Prevent autostash conflicts when folding files into woven branch commits (818ac4a)
  • Strip misleading hint lines from aborted rebase errors (0e44089)
  • update: Show clean error on rebase conflict instead of raw git hints (c0e0fb4)
  • weave: Update merge commit message when commit moves between branches (56042c8)

Other

v0.9.0

26 Feb 19:41

Choose a tag to compare

0.9.0 (2026-02-26)

Features ✨

  • ci: Publish to crates.io and package on Linux and Mac (8cbe96e)
  • update: Show latest upstream commit after successful update (a607fd1)

Documentation

  • Update installation steps (f4a1fe9)

Other

  • Add crates.io package metadata (938a2bc)