Bug Fixes
-
preserve the refs directory when pruning loose references
Packing or deleting the final loose reference released its lock with the
Git directory as the cleanup boundary. Empty-parent cleanup could then
removerefsitself, leaving an otherwise valid repository undiscoverable.
Rollback had the same problem, and its existing test explicitly accepted
removal of the root.Bound loose-reference lock cleanup at the resolved physical
refsroot,
while continuing to prune empty descendants. Respect namespaces, shared
and private worktree routing, and worktree aliases, including a worktree
namedrefs; keep top-level pseudorefs within their containing directory.
Apply the same boundary policy to update and deletion locks so commit,
rollback, and failed preparation retain the repository structure.Add disposable Git-produced baselines for packing and deleting the final
flat and nested reference. Compare packed contents, verify that the loose
source and locks disappear, and check that repository discovery still
works. Update rollback expectations and cover namespace, pseudoref, and
linked-worktree cleanup.This is a prerequisite for clone reference handling, which can now rely
ongix-refpreserving the root instead of recreating it after fetching. -
preserve arbitrary bytes in reflog messages
Reference transactions formatted their byte-oriented reflog message with
Display, which replaced invalid UTF-8 with replacement characters. Write
the message bytes directly between the existing tab and newline delimiters.The regression covers empty, ASCII, and invalid-UTF-8 messages through the
transaction API. It failed before the correction and passes with both
GIX_TEST_FIXTURE_HASH=sha1andsha256.
Commit Statistics
- 7 commits contributed to the release over the course of 14 calendar days.
- 14 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Merge pull request #3037 from ameyypawar/gix-remote-default-branch (ad0202e)
- Preserve the refs directory when pruning loose references (cf55f83)
- Merge pull request #3054 from GitoxideLabs/pygix (09f85be)
- Preserve arbitrary bytes in reflog messages (efe3b11)
- Merge pull request #3053 from GitoxideLabs/various-improvements (2d8dcc4)
- Release gix-error v0.5.1, gix-utils v0.5.1 (6d1b686)
- Merge pull request #3048 from GitoxideLabs/new-release (5fccccf)