gix-commitgraph v0.40.0
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. -
preserve I/O errors for missing graph paths
An absent
.git/objects/infodirectory madeGraph::at()return an
error without its filesystem cause. The optional-cache fallback in
Repository::commit_graph_if_enabled()could not recognizeNotFound,
so operations such asmerge_base(HEAD, HEAD)failed despite having all
required commit objects.Inspect the path with one fallible metadata read and preserve its I/O
error in the chain. Missing paths now reach the existing fallback, while
other metadata failures remain distinguishable. Cover the error source
and merge-base behavior with an empty and then absentobjects/info.
Both regression tests failed before the fix.Git reference:
commit-graph.cat1630431f326e15fcde608827b5ff38422528eb59
usesopen_commit_graph(),load_commit_graph_one(), and
prepare_commit_graph()to fall back when no graph can be opened.
With Git 2.50.1 (Apple Git-155),git -c core.commitGraph=true merge-base
returns the expected commits forHEAD HEADandHEAD HEAD^with either
an empty or an absentobjects/infodirectory.
Changed (BREAKING)
-
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
- 11 commits contributed to the release over the course of 33 calendar days.
- 34 days passed between releases.
- 3 commits were understood as conventional.
- 1 unique issue was worked on: #2978
Commit Details
view details
- #2978
- Preserve I/O errors for missing graph paths (72f3e8f)
- Uncategorized
- Merge pull request #2847 from GitoxideLabs/gix-error-completion (6356013)
- Use borrowed error inspection throughout the workspace (daf73b5)
- Merge pull request #2990 from GitoxideLabs/various-improvements (c609062)
- Keep rust workspace tests inside disposable repositories and isolated environments (4e0f8ff)
- Merge pull request #2979 from GitoxideLabs/absent-objects-info-dir-fix (dfc8e8c)
- 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)
- Release gix-path v0.12.6, gix-error v0.3.2, gix-command v0.10.1, gix-transport v0.59.2 (888677a)
- Merge pull request #2933 from GitoxideLabs/report-august (b8914ff)