New Features
-
expose git notes in
gix::RepositoryAdd the notes feature and
Repository::notesas the porcelain layer overgix-note
for repeated queries and mutations.Select the default notes ref from
core.notesRef, including theGIT_NOTES_REF
environment override represented inconfig::tree, and fall back to
refs/notes/commits. Discover additional display refs fromnotes.displayRefor
GIT_NOTES_DISPLAY_REF, expand glob patterns, preserve display order, and avoid
duplicates.For mutations, accept conventional short notes-ref names, write note blobs and
notes commits, and update refs with compare-and-swap expectations so concurrent
changes are not silently overwritten. -
use Git signature configuration in
gix commit verifyReplace the command-specific GPG invocation with gix::Commit::verify_signature
so the CLI and library share one implementation and one interpretation of
repository configuration.This extends the command from hard-coded OpenPGP verification to the OpenPGP,
X.509, and SSH formats supported by Git, including configured programs and trust
policy. Preserve verifier diagnostics on stderr and fail when a signature is
invalid or insufficiently trusted.Enable the gix command feature in gitoxide-core to make the shared verification
API available. -
support cloning a single revision
A full object ID passed through with_ref_name() produced an object-ID refspec
mapping and panicked while clone assumed every mapping had a name. Branch and
tag checkout also retained ordinary clone tracking semantics instead of offering
a single-revision mode.Add PrepareFetch::with_revision() and gix clone --revision for full refs, HEAD,
and full object IDs. Revision clones use a one source-only implicit refspec,
detach HEAD to the fetched commit, create no ordinary refs, persist no fetch
refspec, and disable tag following. Existing with_ref_name() and --ref behavior
stays unchanged.This follows Git commit 337855629f59 (builtin/clone: teach git-clone(1) the
--revision= option) and its t/t5621-clone-revision.sh behavior.
Bug Fixes
-
peel revspecs to a commit in
gix merge-base
The revspecs were resolved withrev_parse_single()and handed to the
commit-only merge-base traversal unchanged, so a revspec naming an annotated
tag arrived as the id of the tag object. No commit is found for such an id and
no error is raised. In a clone of this repository,
gix merge-base HEAD cargo-smart-release-v0.10.0 cargo-smart-release-v0.1.0
printed 0fa37f5, dropping the tag and
computing the base of the two revspecs that were left, whilegit merge-base
with the same arguments prints ceb6dff - the
commit the annotated tag points at. Git dereferences tags before computing
anything.Each revspec is now peeled to a commit before the traversal. Lightweight tags,
branches and raw commit ids resolve as before, and a revspec that cannot be
peeled to a commit is rejected with the peel error.
Commit Statistics
- 26 commits contributed to the release over the course of 30 calendar days.
- 30 days passed between releases.
- 4 commits were understood as conventional.
- 1 unique issue was worked on: #1930
Commit Details
view details
- #1930
- Support cloning a single revision (b1174b6)
- Uncategorized
- Update manifests prior to release (ebe9095)
- Merge pull request #2930 from GitoxideLabs/gix-notes (7424676)
- Expose git notes in
gix::Repository(d934f5b) - Merge pull request #2926 from cruessler/remove-object-hash-from-options (b2d919a)
- Merge pull request #2905 from GitoxideLabs/various-improvements (f3bbfad)
- Adapt to changes in
gix-object(object signing) (723d3de) - Use Git signature configuration in
gix commit verify(da39b92) - Merge pull request #2919 from cruessler/require-object-hash-in-file-store-at (e5452ba)
- Adapt to changes in
gix-ref(5810922) - Merge pull request #2916 from cruessler/require-object-hash-in-store-at (dd8c759)
- Adapt to changes in
gix-odb(a0b93a3) - Merge pull request #2896 from shuvamk/fix/merge-base-peel-tag (e1af444)
- Peel revspecs to a commit in
gix merge-base(45e6d93) - Merge pull request #2892 from ameyypawar/rev-conformity (453c17c)
- Adapt to changes in
gix-revision. (21c5614) - Merge pull request #2719 from cruessler/blame-untracked-changes (95e0213)
- Review (2ea191f)
- Align line numbers in output and start
gix blamefrom worktree contents (86e90d8) - Adapt to changes in
gix-blame(93d4019) - Merge pull request #2824 from GitoxideLabs/fetch-revision (7a34c17)
- Merge pull request #2879 from GitoxideLabs/remove-jwalk (b6492d3)
- Replace jwalk with dua-core (c49dc45)
- Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing (cc3ee80)
- Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 (ab4fcb0)
- Merge pull request #2812 from GitoxideLabs/report-july (ae8845a)