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-testtoolsGit 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 throughjtt 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-purejourney
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-pathcaches installation and system configuration locations globally,
whilegix-configmay 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 letSource::storage_location()applyGIT_CONFIG_NOSYSTEM
before usingGIT_CONFIG_SYSTEMonly for system-scoped paths. This replaces
ordinary system configuration while retaining Apple Git installation
configuration reported withunknownscope.Centralize the conventional
etc/gitconfigfallback, 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-scopealongside--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-confignow 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-core3.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
sysinfoandrusqlite
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)