github GitoxideLabs/gitoxide gix-path-v0.13.0
gix-path v0.13.0

one day ago

Bug Fixes

  • Keep rust workspace tests inside disposable repositories and isolated environments

    Direct Git launches inherited repository selectors and user configuration even
    when tests supplied a fixture working directory. Tests of default-environment
    APIs and local Git transports also shared the runner's environment. A few
    journey tests wrote beneath source directories or used the source checkout as
    the repository under test.

    Use the shared gix-testtools Git command builder for subprocess setup, isolated
    repository options for fixtures, and isolated child processes where the real
    environment-reading API must be exercised. Scope CWD changes, copy the fixture
    used by an object-write test, and run shell journeys through jtt run. Keep
    journey worktrees and example output within their disposable sandboxes and
    replace the attributes checkout test with a representative fixture repository.
    Prompt examples also run in isolated children and must build successfully; the
    old tests could ignore build failures and execute stale cached binaries.

    The affected Rust crate suites, internal test-tool build, and max-pure journey
    suite pass from a source copy without Git metadata. Signing and Git-daemon
    checks use only disposable keys, repositories, and local sockets.

  • isolate path discovery from ambient overrides

    gix-path caches installation and system configuration locations globally,
    while gix-config may read environment variables through a permission-filtered
    accessor. Letting the Git probe inherit ambient configuration overrides made the
    cached paths depend on process state and could bypass that accessor.

    Run the read-only Git query with system, global, command, and repository
    configuration overrides disabled. Preserve whether the installation path had
    system scope, then let Source::storage_location() apply GIT_CONFIG_NOSYSTEM
    before using GIT_CONFIG_SYSTEM only for system-scoped paths. This replaces
    ordinary system configuration while retaining Apple Git installation
    configuration reported with unknown scope.

    Centralize the conventional etc/gitconfig fallback, document that the path
    APIs return unoverridden locations, and consolidate the environment-isolation
    regressions.

  • query distinct configuration paths with one Git process and add env::system_config()

    On Windows, enabling both Git-installation and system configuration could launch
    Git twice: once to inspect configuration origins and once for --exec-path.
    This is especially visible where process startup costs about 50 ms.

    Request --show-scope alongside --show-origin, parse both the
    highest-precedence file and the first distinct system-scoped file, and cache
    the pair. Keeping the paths distinct matters when Git for Windows reports its
    installation file before the ProgramData system file. gix-config now consumes
    the direct system-config path, so both sources share one probe.

    Fall back to an origin-only query when Git predates --show-scope, which was
    introduced in Git 2.26. Keep system-config environment overrides authoritative
    by hiding paths obtained through ambient configuration when those overrides
    are present.

Changed (BREAKING)

  • migrate errors to gix-error

  • raise MSRV to Rust 1.88

    The newly published dua-core 3.3 release used by linked-worktree removal
    requires Rust 1.88, so raise every workspace crate and the advertised badge
    together.

    Keep the MSRV checks buildable by selecting the latest sysinfo and rusqlite
    release lines that support Rust 1.88.

Commit Statistics

  • 12 commits contributed to the release over the course of 24 calendar days.
  • 24 days passed between releases.
  • 5 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2847 from GitoxideLabs/gix-error-completion (6356013)
    • Merge pull request #2989 from GitoxideLabs/error-conversion-review (4b9ff51)
    • Migrate errors to gix-error (6137f62)
    • Merge pull request #2990 from GitoxideLabs/various-improvements (c609062)
    • Keep rust workspace tests inside disposable repositories and isolated environments (4e0f8ff)
    • Merge pull request #2964 from GitoxideLabs/error-conversion-review (36b6310)
    • Isolate path discovery from ambient overrides (76a55b2)
    • Query distinct configuration paths with one Git process and add env::system_config() (a7ac414)
    • Merge pull request #2958 from GitoxideLabs/sign-on-windows (c16300c)
    • Merge pull request #2949 from GitoxideLabs/error-conversion-review (a095334)
    • Raise MSRV to Rust 1.88 (4b42e0c)
    • Merge pull request #2955 from GitoxideLabs/transport-url-encoding (7e35849)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.