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. -
track semantic emptiness across continuations
A bunch of refactoring, and more white-space and continuation related conformance with Git.Quote delimiters do not append bytes to Git's parsed value, so a raw non-empty
continuation chunk may still leave the value empty. Track logical bytes and open
quote state when deciding whether continuation indentation is significant. -
don't indent a value that starts on a continuation line
gitdiscards whitespace for as long as the value it has accumulated is
still empty, so the indentation of the line a value starts on is
insignificant — whether that is the line with the=on it, or a later
line reached through a\continuation.parse::from_bytes::value()only
applied this to the first line: after a continuation it setvalue_start
to the first byte of the next line, so the indentation became part of the
value.Given this
.git/config:[alias] lg = \ log --oneline --graph
git config --get alias.lgreportslog --oneline --graph, while
File::raw_value("alias.lg")reported\t\tlog --oneline --graph. The
leading tabs are silently carried into whatever runs the alias, and the
same happens to any continued value written in this shape, such as a
core.pagerset over two lines.value()now emits that indentation asEvent::Whitespacefor as long as
every chunk seen so far has been empty — the very sequence that
Event::ValueNotDonealready documents ("ANewlineevent usually
follows, followed by eitherValueDone,Whitespace, or another
ValueNotDone"). Because the events keep the bytes,to_bstring()still
round-trips the file unchanged, and every consumer already ignores
Whitespacewhen concatenating value chunks.Indentation that follows actual content is untouched, matching
git:
k = abc\+\n\tdefstaysabc\tdef, and multi-line aliases that begin
on the=line keep their interior whitespace.
Changed (BREAKING)
-
migrate errors to gix-error
rubberstamp
-
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
- 20 commits contributed to the release over the course of 33 calendar days.
- 34 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)
- Use borrowed error inspection throughout the workspace (daf73b5)
- Migrate errors to gix-error (7670cef)
- Merge pull request #2993 from youdie006/fix-blank-space-character-classes (65c5dfe)
- Review (0695cd5)
- Merge pull request #2990 from GitoxideLabs/various-improvements (c609062)
- Keep rust workspace tests inside disposable repositories and isolated environments (4e0f8ff)
- Merge pull request #2984 from justonemorenight/fix/config-path-tilde-parity (92b6508)
- Auto-review (2742f05)
- Review (181297c)
- Merge pull request #2964 from GitoxideLabs/error-conversion-review (36b6310)
- 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 #2950 from jaideeppyne/fix/config-continuation-indentation (2f154e2)
- Refactor config parsing to advance input slices (26e8c68)
- Track semantic emptiness across continuations (01e9d06)
- Don't indent a value that starts on a continuation line (a441bb2)
- Merge pull request #2933 from GitoxideLabs/report-august (b8914ff)