github GitoxideLabs/gitoxide gix-discover-v0.57.0
gix-discover v0.57.0

4 hours ago

Bug Fixes

  • derive trust from all detected repository paths

    There are some concerns over performance, but it seems the work it does is
    required after all. There are possible optimisations left on the table,
    as it might do duplicate IO to check ownership.
    More tests are read-only now as well, it really does like its tempdirs and
    direct Git invocations.

    Checking ownership of only the discovery candidate or resolved git directory
    can grant full trust to a linked repository with foreign-owned paths. Add
    gix_discover::repository::trust() to compute the minimum trust of the
    original candidate, resolved git directory, common directory referenced by
    commondir, and existing worktree. Use it during upward discovery and direct
    and environment-based gix opens, before selecting trust-dependent options
    or reading repository configuration.

    Never upgrade an untrusted candidate. Skip a duplicate git-directory check
    only when its spelling exactly matches the candidate after joining with the
    current directory; filesystem aliases can still cause repeated checks. Skip
    a missing worktree so a private git directory remains usable after checkout
    removal, but propagate missing git or common-directory errors.

    Preserve TrustPolicy::Assume and explicit opening trust overrides, and
    document the distinction between ownership-derived trust, required thresholds,
    and assumed trust. Add deterministic ownership regressions through private
    callbacks, including linked paths, duplicate checks, and missing directories.
    Replace the ancestor-discovery test's dependency on the source checkout with
    read-only nested repository fixtures.

    Git reference: setup.c::ensure_valid_ownership at
    d38352cd43ab9745686d697872408bc3249a153f checks gitfile, worktree and gitdir.
    The common directory is also checked here as a configuration source.

Commit Statistics

  • 9 commits contributed to the release over the course of 13 calendar days.
  • 13 days passed between releases.
  • 1 commit was 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 #3038 from cruessler/run-gix-discover-tests (d78005a)
    • Review (b9093f8)
    • Add test for detached HEAD discovery (9572ce0)
    • Merge pull request #3032 from GitoxideLabs/sec-audit (1d7bac7)
    • Derive trust from all detected repository paths (fcc9eac)
    • Merge pull request #3033 from GitoxideLabs/gix-cli-progress-cleanup (80f4b03)
    • Merge pull request #3022 from GitoxideLabs/release-testtools (f819565)
    • Merge pull request #3020 from GitoxideLabs/report-september (5fb3dcf)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.