github GitoxideLabs/gitoxide gitoxide-core-v0.61.0
gitoxide-core v0.61.0

latest releases: v0.57.0, gix-tix-v0.2.0
53 minutes ago

New Features

  • expose git notes in gix::Repository

    Add the notes feature and Repository::notes as the porcelain layer over gix-note
    for repeated queries and mutations.

    Select the default notes ref from core.notesRef, including the GIT_NOTES_REF
    environment override represented in config::tree, and fall back to
    refs/notes/commits. Discover additional display refs from notes.displayRef or
    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 verify

    Replace 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 with rev_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, while git 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 blame from 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)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.