Repository navigation
gix-worktree v0.58.0
New Features
-
remove linked worktrees safely
Provide the
gix-worktreeplumbing needed to recursively remove a linked
checkout and its private Git directory without following symbolic links or
crossing Unix mount boundaries.Use
dua-corefor traversal and parallel deletion with progress reporting,
bounded retries for directory-not-empty races, and errors distinguishing
checkout and administration failures. Keep repository validation, dirty-state
checks, lock policy, and branch decisions with higher-level callers. -
create linked worktrees
Add transactional linked-worktree administration with rollback, then compose
it in gix with existing reference, checkout, index, progress, and interruption
machinery.Support attached and detached worktrees from bare or non-bare repositories while
rejecting occupied branches and destinations. Keep move, remove, repair, hooks,
sparse checkout, and relative-link configuration out of scope.
Bug Fixes
-
skip symlinked ignore files and protect checkout writes
A tracked
.gitignoresymlink was absent from the skip-worktree ID
mapping, so ordinary ignore lookup could parse arbitrary external files.
An endless target could also exhaust memory.Always request no-follow reads for worktree
.gitignorefiles, regardless
of their index entry. Usegix_fs::open_read_only_no_follow()when pattern
loading disallows symlinks, treating skipped links as absent files so
skip-worktree blob fallback remains available. Discard partially read
pattern bytes on failure.Use the same helper for the worktree
.mailmap, reporting symlinks as
errors without reading their targets and identifying worktree read errors
correctly. Explicitly configured pattern files andmailmap.filemay
still follow symlinks.On Windows, inspect nonexclusive checkout handles for symlinks before
truncating withset_len(0)or writing. Retain forced unlink-and-replace
behavior and route symlinks checked out as ordinary files through the
same validated open path. No-follow protection applies to the final path
component on Unix and Windows; leading components can still be symlinks.Compare ignore lookup and skip-worktree fallback against isolated Git
check-ignorecalls. Cover mailmap policies and checkout collisions with
file, directory, and dangling symlink targets, including links created
after the Windows path check and validation before truncation.
Commit Statistics
- 10 commits contributed to the release over the course of 13 calendar days.
- 13 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Prepare changelogs prior to release (794eeef)
- Merge pull request #3032 from GitoxideLabs/sec-audit (1d7bac7)
- Skip symlinked ignore files and protect checkout writes (218db27)
- Merge pull request #3033 from GitoxideLabs/gix-cli-progress-cleanup (80f4b03)
- Merge pull request #3022 from GitoxideLabs/release-testtools (f819565)
- Merge pull request #3025 from GitoxideLabs/worktree-create (acf906f)
- Remove linked worktrees safely (e0240ee)
- Merge pull request #2977 from GitoxideLabs/worktree-create (d9f7c85)
- Create linked worktrees (6910a50)
- Merge pull request #3020 from GitoxideLabs/report-september (5fb3dcf)