Releases: narnaud/git-loom
Releases · narnaud/git-loom
v0.16.0
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
candafor 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
v0.15.0
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
v0.14.0
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
azon 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
0.13.0 (2026-03-08)
Features ✨
- add
showcommand 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
v0.12.0
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
- Fix tests on Linux (08ae7f7)
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
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
v0.10.0
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
v0.9.1
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)