New Features
-
following includes is now non-fatal by default
Otherwise it would be relatively easy to fail gitoxide startup,
and we want to be closer to the behaviour in git which ignores
most of the errors. -
File::from_git_dir()
as comfortable way to instantiate most complete git configuration. -
File
now compares actual content, ignoring whitespace and comments. -
File::new_environment_overrides()
to easily instantiate overrides from the environment. -
File::new_globals()
can instantiate non-local configuration with zero-configuration. -
Source::storage_location()
to know where files should be located. -
file::ValueMut::(section|into_section_mut)()
to go from value to the owning section.
This can be useful if the value was obtained usingraw_value_mut()
. -
Source::is_in_repository()
to find out if a source is in the repository. -
parse::key
to parse aremote.origin.url
-like key to identify a value -
Add
File::detect_newline_style()
, which does at it says. -
File::frontmatter()
andFile::sections_and_postmatter()
. -
parse::Event::to_bstr_lossy()
to get a glimpse at event content. -
File::append()
can append one file to another rather losslessly.
The loss happens as we, maybe for the wrong reasons, automatically
insert newlines where needed which can only be done while we still know
the file boundaries. -
file::Section::meta()
to access a section's metadata. -
File::sections()
to obtain an iterator over all sections, in order. -
place spaces around
key = value
pairs, or whatever is used in the source configuration. -
proper escaping of value bytes to allow round-tripping after mutation
-
whitespace in newly pushed keys is derived from first section value.
That way, newly added key-value pairs look like they should assuming
all keys have the same indentation as the first key in the section.If there is no key, then the default whitespace will be double-tabs
like what's commmon in git. -
File::from_str()
implementation, to supportlet config: File = "[core]".parse()?
-
whitespace in mutable sections can be finely controlled, and is derived from existing sections
-
parse::Header::new(…)
with sub-section name validation -
Add
parse::(Event|section::Header|Comment)::write_to(…)
.
Now it's possible to serialize these types in a streaming fashion and
without arbitrarily enforcing UTF-8 on it -
serde1
feature to add limited serde support
Bug Fixes
-
maintain insertion order of includes on per-section basis at least.
Note that git inserts values right after the include directive,
'splitting' the section, but we don't do that and insert new values
after the section. Probably no issue in practice while keeping
our implementation simple. -
maintain newline format depending on what's present or use platform default.
Previously implicit newlines when adding new sections or keys to
sections was always\n
which isn't correct on windows.Now the newline style is detected and used according to what's present,
or in the lack of content, defaults to what's correct for the platform. -
validate incoming conifguration keys when interpreting envirnoment variables.
-
Boolean
can use numbers to indicate true or false, drops support forone
andzero
. -
file::MutableSection::remove()
now actually removes keys and values. -
file::MutableMultiValue
escapes input values and maintains key separator specific whitespace. -
value normalization (via
value::normalize()
handles escape sequences.
The latter ones are\n
,\t
and\b
which are the only supported
ones in values of git-config files. -
stable sort order for
File::sections_by_name_with_header()
-
count newlines (for error display) in multi-line values as well
-
auto-normalize string values to support quote removal in case of strings.
Related to starship/starship#3883 .
Other
- :Events::from_bytes()
with
filter` support.
Changed (BREAKING)
-
add
File::resolve_includes()
and move its error type tofile::includes
. -
add
File::from_bytes_owned()
and removeFile::from_path_with_buf()
-
remove
File::from_env_paths()
.
It's replaced by its more comfortablenew_globals()
. -
untangle
file::init::…
Option
andError
types.
This moves types to where they belong which is more specific instead
of having a catch-allError
andOptions
type. -
rename
parse::Comment::(comment_tag|comment)
to::tag|text
andparse::Section::section_header
to::header
. -
Associate
file::Metadata
with eachFile
.
This is the first step towards knowing more about the source of each
value to filter them based on some properties.This breaks various methods handling the instantiation of configuration
files asfile::Metadata
typically has to be provided by the caller
now or be associated with each path to read configuration from. -
rename
file::SectionBody
tofile::section::Body
. -
Remove
File::sections_by_name_with_header()
as::sections_by_name()
now returns entire sections. -
create
resolve_includes
options to make space for more options when loading paths. -
rename
path::Options
intopath::Context
.
It's not an option if it's required context to perform a certain
operation. -
All accessors in
File
are now usingimpl AsRef<str>
where possible for added comfort. -
Much more comfortable API
file::*Mut
types thanks toimpl Into/AsRef
. -
Rename
Mutable*
into$1Mut
for consistency. -
conform APIs of
file::MutableValue
andfile::MutableMultiValue
.
There are more renames and removals than worth mentioning here given the
current adoption of the crate. -
rename
file::MutableSection::set_leading_space()
toset_leading_whitespace()
.
The corresponding getter was renamed as well toleading_whitespace()
. -
Enforce
parse::section::Header::new()
by making its fields private. -
Add
File::write_to()
andFile::to_bstring()
; remove someTryFrom
impls.
NowFile
can be serialized in a streaming fashion and without the
possibility for UTF8 conversion issues.Note that
Display
is still imlpemented with the usual caveats. -
remove
Integer::to_bstring()
as well as someTryFrom
impls.
Note that it can still display itself like before via
std::fmt::Display
. -
remove
Boolean::to_bstring()
along with a fewFrom
impls.
These were superfluous and aren't useful in practice.
Note that serialization is still implemented viaDisplay
. -
allocation free
File::sections_by_name()
andFile::sections_by_name_with_header()
. -
Path::interpolate()
now takespath::interpolate::Options
instead of three parameters. -
remove
String
type in favor of referring to theFile::string()
method.
The wrapper had no effect whatsoever except for adding complexity. -
Simplify
Boolean
to be a wrapper aroundbool
.
Previously it tried hard not to degenerate information, making it a
complicated type.However, in practice nobody cares about the exact makeup of the boolean,
and there is no need to serialize a boolean faithfully either.Instead, those who want to set a value just set any value as a string,
no need for type safety there, and we take care of escaping values
properly on write. -
Use bitflags for
color::Attribute
instead ofVec
of enums.
This is less wasteful and sufficient for git, so it should be sufficient
for us, especially since attributes are indeed a set and declaring
one twice has no effect. -
simplify
Color
API.
For now we only parse and serialize for display, but more uses are
enabled when needed and trivially. -
remove
parse::Events::from_path
andFile::at
The latter has been replaced withFile::from_path_with_buf(…)
and
is a low-level way to load just a single config file, purposefully
uncomfortable as it will not resolve includes.The initialization API will need some time to stabilize.
-
Slim down API surface of
parse::Events
.
It's more of a 'dumb' structure now than before, merely present
to facilitate typical parsing than something special on its own. -
remove
File::new()
method in favor ofFile::default()
. -
rename
parse::event::List
toparse::Events
-
rename
parse::State
toparse::event::List
-
move
value::*
into the crate root, except forError
andnormalize_*()
. -
rename
value::parse::Error
tovalue::Error
. -
rename
value::TrueVariant
tovalue::boolean::True
-
rename
IntegerSuffix
tointeger::Suffix
-
rename
value::Color(Attribute|Value)
tovalue::color::Attribute
andvalue::color::Name
. -
Turn
parse::ParseOrIoError
intoparse::state::from_path::Error
-
rename
parse::ParsedComment
intoparse::Comment
-
rename
parse::Section*
related types.
These are now located insection::*
. -
rename
parse::Parser
toparse::State
.
Furthermore, makeState
the entry point for all parsing, removing
all free-standing functions that returned aState
. -
rename
parser
module toparse
-
rename
normalize_cow()
tonormalize()
and move allnormalize*
functions fromvalues
to thevalue
module -
move
Path
fromvalues
tovalue
module -
Move
Boolean
andString
fromvalues
intovalue
module -
move
values::Integer
intovalue
module -
move
Color
to ownvalue
module -
remove
values::Bytes
- usevalues::String
instead.
Note that these values are always normalized and it's only possible
to get a raw values using theraw_value()
API.
New Features (BREAKING)
-
Support for
lossy
load mode.
There is a lot of breaking changes asfile::from_paths::Options
now
becamefile::init::Options
, and the same goes for the error type. -
add
_filter()
versions to most access methods.
That way it's possible to filter values by their origin.Note that the
remove_section()
methods now return the entire
removed section, not just the body, which yields more information
than before including section metadata. -
section names are now validated.
-
filtering supportort for
parse::Events
.
That way it's possible to construct Files which are not destined to be
written back as they only keep events necessary for value access,
greatly reducing allocations. -
change mostily internal uses of [u8] to BString/BStr
-
Path-interpolation makes
home-dir
configurable.
That way the caller has full control over how the environment is used,
which also allows more fine-grained control over which config files
can be included.
Bug Fixes (BREAKING)
-
Simplify specifying keys when mutating config values.
-
File::rename_section()
with validation of input arguments. -
improve normalization; assure no extra copies are made on query.
We now return our own content, rather than the originals with their
lifetimes, meaning we bind lifetimes of returned values to our own
File
instance. This allows them to be referenced more often, and
smarter normalization assures we don't copy in the simple cases
either.More tests were added as well.
This is breaking as lifetime changes can cause distruptions, and
values?_as()
was removed as well as it's somewhat duplicate
to higher-level APIs and it wasn't tested at all. -
Remove
git-config
test utilities fromgit-path
.
Other (BREAKING)
-
File::raw_multi_value()
toFile::raw_values()
-
File::raw_multi_value_mut()
toFile::raw_values_mut()
-
File::multi_value()
toFile::values()
.
The latter is better in line withstring()/strings()
Commit Statistics
- 314 commits contributed to the release over the course of 33 calendar days.
- 39 days passed between releases.
- 93 commits where understood as conventional.
- 1 unique issue was worked on: #331
Thanks Clippy
Clippy helped 19 times to make code idiomatic.
Commit Details
view details
- #331
- final documentation review + adjustments prior to release candidate (06b86e0)
- refactor (4dc6594)
- exclude particular assertion which fails on the linux CI. (5e0f889)
- first sketch of using configuration and environment variables for author/committer (330d0a1)
- remove
Permissions
as there is no need for that here. (1954ef0) - following includes is now non-fatal by default (1bc96bf)
- Allow to skip non-existing input paths without error (989603e)
File::from_git_dir()
as comfortable way to instantiate most complete git configuration. (f9ce1b5)- Add a way to load multiple configuration files without allocating a read buffer (acb4520)
- refactor (ec21e95)
- move
Env
test utility intogit-testtools
(bd3f4d0) - refactor (b073e29)
- another failing tests that can't be fixed without a refactor (e4d8fd7)
- an attempt to hack newline handling into place for windows newlines (dac1463)
- Serialize lossily-read configuration files correctly anyway. (cfda0c3)
- multi-path include test (3d89a46)
- refactor (8a7fb15)
- fix windows tests (fbcf40e)
- finally proper whitespace handling in all the right places for perfect roundtripping to/from string (97e5ede)
- serializations maintains some invariants about whitespace where possible. (ee10dd5)
- refactor (9c248ee)
File
now compares actual content, ignoring whitespace and comments. (14a68a6)- maintain insertion order of includes on per-section basis at least. (6c1588f)
- allow insertion of sections while preserving order (f5580a3)
- a test showing that include ordering isn't correct compared to the including config. (4e47df5)
- add
File::resolve_includes()
and move its error type tofile::includes
. (17c83d5) - add
File::from_bytes_owned()
and removeFile::from_path_with_buf()
(5221676) - make it necessary to deal with the possibility of no-input in
from_paths_metadata()
. (612645f) - Don't fail on empty input on the comfort level (61ecaca)
File::new_environment_overrides()
to easily instantiate overrides from the environment. (7dadfd8)- prepare for supporting comfortable version of environment overrides (45c964a)
- remove
File::from_env_paths()
. (98d45c2) File::new_globals()
can instantiate non-local configuration with zero-configuration. (146eeb0)- Classify
Source
in accordance for what git actually does. (97374e4) Source::storage_location()
to know where files should be located. (e701e05)file::ValueMut::(section|into_section_mut)()
to go from value to the owning section. (fff0884)Source::is_in_repository()
to find out if a source is in the repository. (f5f2d9b)parse::key
to parse aremote.origin.url
-like key to identify a value (91e718f)- maintain newline format depending on what's present or use platform default. (f7bd2ca)
- prepare for passing through newline (3c06f88)
- Add
File::detect_newline_style()
, which does at it says. (26147a7) - fix docs (78e85d9)
- a test for lossy File parsing (5e8127b)
- 'lossy' is now inherited by includes processing (88c6b18)
- untangle
file::init::…
Option
andError
types. (230a523) - Support for
lossy
load mode. (d003c0f) - :Events::from_bytes()
with
filter` support. (32d5b3c) - try to fix attributes, once more (a50a396)
File::frontmatter()
andFile::sections_and_postmatter()
. (0ad1c9a)- add
_filter()
versions to most access methods. (1ea26d8) - even better handling of newlines (50c1753)
- refactor (df94c67)
- rename
parse::Comment::(comment_tag|comment)
to::tag|text
andparse::Section::section_header
to::header
. (3f3ff11) parse::Event::to_bstr_lossy()
to get a glimpse at event content. (fc7e311)- finally fix newline behaviour (c70e135)
- Be smarter about which newline style to use by guessing it based onprior events (25ed92e)
File::append()
can append one file to another rather losslessly. (09966a8)- A test to validate frontmatter isn't currently handled correctly when appending (4665e87)
file::Section::meta()
to access a section's metadata. (56ae574)- refactor (d60025e)
File::sections()
to obtain an iterator over all sections, in order. (6f97bf0)- Associate
file::Metadata
with eachFile
. (6f4eea9) - rename
file::SectionBody
tofile::section::Body
. (b672ed7) - Remove
File::sections_by_name_with_header()
as::sections_by_name()
now returns entire sections. (3bea26d) - A way to more easily set interpolation even without following includes. (9aa5acd)
- create
resolve_includes
options to make space for more options when loading paths. (41b3e62) - rename
path::Options
intopath::Context
. (cabc8ef) - try to fix attributes, once more (207e483)
- validate incoming conifguration keys when interpreting envirnoment variables. (0d07ef1)
- try to fix filter settings, but it doesn't seem to work (9750b7a)
- sketch new section and metadata (9cb9acb)
- add
Source
type to allow knowing where a particular value is from. (c92d5c6) Boolean
can use numbers to indicate true or false, drops support forone
andzero
. (6b90184)- All accessors in
File
are now usingimpl AsRef<str>
where possible for added comfort. (3de0cfd) - Much more comfortable API
file::*Mut
types thanks toimpl Into/AsRef
. (3d25fe6) - Rename
Mutable*
into$1Mut
for consistency. (393b392) file::MutableSection::remove()
now actually removes keys and values. (94dde44)- many more tests for MutableSection (ac843cb)
- refactor (701266e)
- conform APIs of
file::MutableValue
andfile::MutableMultiValue
. (0a7391a) file::MutableMultiValue
escapes input values and maintains key separator specific whitespace. (048b925)- place spaces around
key = value
pairs, or whatever is used in the source configuration. (5418bc7) - avoid extra copies when setting values and escaping them (a7eff01)
- refactor (15cd1d2)
- more empty-value tests (511985a)
- default space is just a single tab, not two ones (7e03b83)
- proper escaping of value bytes to allow round-tripping after mutation (8118644)
- refactor (afa736a)
- a few tests for
MutableValue
showing that it's too buggy right now (5e6f9d9) - rename
file::MutableSection::set_leading_space()
toset_leading_whitespace()
. (83a0922) - whitespace in newly pushed keys is derived from first section value. (9f59356)
File::from_str()
implementation, to supportlet config: File = "[core]".parse()?
(db1f34d)- whitespace in mutable sections can be finely controlled, and is derived from existing sections (9157717)
- refactor (c88eea8)
- refactor (a0d6caa)
- auto-compute whitespace for sections, even though it probably needs to be better than that (ee9ac95)
- validation for Keys and header names (59ec7f7)
- Simplify specifying keys when mutating config values. (a93a156)
File::rename_section()
with validation of input arguments. (895ce40)- re-add newlines after multi-line values (9a2f597)
- more header escaping tests (12cf005)
- Enforce
parse::section::Header::new()
by making its fields private. (219cf7a) parse::Header::new(…)
with sub-section name validation (ae3895c)- section names are now validated. (cfd974f)
- prepare for validation of
parse::section::Header
(00592f6) - basic escaping of subsection names during serialization (00d1a9b)
- refactor (9fac8e0)
- new roundtrip test on file level (78bb93c)
- Add
File::write_to()
andFile::to_bstring()
; remove someTryFrom
impls. (4f6cd8c) - remove
Integer::to_bstring()
as well as someTryFrom
impls. (0e392f8) - remove
Boolean::to_bstring()
along with a fewFrom
impls. (b22732a) - Add
parse::(Event|section::Header|Comment)::write_to(…)
. (d087f12) - fix tests on windows (3d7fc18)
- value normalization (via
value::normalize()
handles escape sequences. (f911707) - refactor normalization and more tests (cf3bf4a)
- more escape characters for normalization (b92bd58)
- review docs of
file::mutating
(2d5703e) - stable sort order for
File::sections_by_name_with_header()
(44dfec0) - review
file::raw
module (6acf4a4) - don't over-normalize in comfort layer - all values are normalized now (b979a3b)
- docs for comfort level File API (eafc6ce)
- review and refactor 'File::value' module (7aa8a0b)
- allocation free
File::sections_by_name()
andFile::sections_by_name_with_header()
. (65c520c) - refactor (2abffd6)
- refactor (539c2f6)
- refactor (f1668e9)
- refactor (2599680)
- refactor (879fad5)
- fix docs (b2b82da)
- once again zero-allocation for SectionBodyIter (ba69124)
- refactor (33efef6)
- docs and refactor (700d6aa)
Path::interpolate()
now takespath::interpolate::Options
instead of three parameters. (ac57c44)- refactor
from_env
(c8693f9) - make fmt (a7d7751)
- more doc adjustments (95fc20a)
- review docs of 'parse' module; refactor (a361c7f)
- refactor (8e84fda)
File::raw_multi_value()
toFile::raw_values()
(9cd9933)File::raw_multi_value_mut()
toFile::raw_values_mut()
(0076dcf)File::multi_value()
toFile::values()
. (a8604a2)- remove
String
type in favor of referring to theFile::string()
method. (0915051) - fix docs (8fa7600)
- refactor (b78e3fa)
- change! Add
home_for_user
inPath::interpolate(…)
. (f9e0ef3) - Simplify
Boolean
to be a wrapper aroundbool
. (9cadc6f) - Use bitflags for
color::Attribute
instead ofVec
of enums. (703922d) - A bitflag version of color attributes (23ec673)
- refactor (4f21d1e)
- simplify
Color
API. (3fc4ac0) - deduplicate (c1b9cd4)
- first tests for colors specifically; fix space between tokens (e2bd055)
- count newlines (for error display) in multi-line values as well (1ea919d)
- zero-copy for section names (25b9760)
- prepare for copy-on-write subsections (7474997)
- another normalization case (637fe8f)
- allow backspaces in value parser (199e546)
- another failing test pointing at issues with normalization/escaping in parser (3c29321)
- found failing test with complex multi-line value (117401d)
- review
git-config::File
docs and rename some internal symbols (5a8b111) - more correctness for sub-section parsing (910af94)
- reduce top-level docs (cdfb13f)
- refactor; remove unnecessary docs (c95e0b9)
- assure no important docs are missed (f5026fb)
- filtering supportort for
parse::Events
. (6ba2f80) - deduplicate events instantiation (ead757c)
- unclutter lifetime declarations (e571fdb)
- remove redundant documentation about errors (183c7ae)
- adjust to changes in
git-config
(c52cb95) - remove
parse::Events::from_path
andFile::at
(14149ee) - try to strike a balance between allocations and memory footprint (52bd1e7)
- allocation-free parsing as callback is passed through (ed00e22)
- foundation for allocation free (and smallvec free) parsing (307c1af)
- Slim down API surface of
parse::Events
. (73adcee) - remove
File::new()
method in favor ofFile::default()
. (2e47167) - a greatly simplified Events->File conversion (c5c4398)
- fix docs (5022be3)
- about 30% faster parsing due to doing no less allocations for section events (050d0f0)
- allocation-free fuzzing, with optimized footprints (2e149b9)
- allocation-free sections (d3a0c53)
- allocation-free frontmatter (6c3f326)
- remove last duplicate of top-level parse function (cd7a21f)
- workaround lack of GAT! (4fb327c)
- remove duplication of top-level parser (0f5c99b)
- a minimally invasive sketch of a parse Delegate (5958ffb)
- fix docs (2186456)
- fix fuzz crash in parser (86e1a76)
- rename
parse::event::List
toparse::Events
(ea67650) - rename
parse::State
toparse::event::List
(89f5fca) - update fuzz instructions and make it work (19300d5)
- improve normalization; assure no extra copies are made on query. (4a01d98)
- refactor; assure
normalize
doesn't copy unnecessarily (ce069ca) - normalize values in all the right places (91ba2dd)
- avoid unnecessary clones (e684488)
- adapt to changes in
git-config
(363a826) - move
value::*
into the crate root, except forError
andnormalize_*()
. (3cdb089) - rename
value::parse::Error
tovalue::Error
. (748d921) - rename
value::TrueVariant
tovalue::boolean::True
(7e8a225) - rename
IntegerSuffix
tointeger::Suffix
(8bcaec0) - rename
value::Color(Attribute|Value)
tovalue::color::Attribute
andvalue::color::Name
. (d085037) - refactor (a0f7f44)
- refactor (0845c84)
- keep str in value API (ef5b48c)
- Keep BStr even though str could be used. (aeca6cc)
- Turn
parse::ParseOrIoError
intoparse::state::from_path::Error
(a0f6252) - rename
parse::ParsedComment
intoparse::Comment
(b6b31e9) - Allocation-free hashing for section keys and names (44d0061)
- allocation-free case-inequality tests for section keys and names (94608db)
- rename
parse::Section*
related types. (239cbfb) - adjustments required due to changed in
git-config
(41bfd3b) - rename
parse::Parser
toparse::State
. (60af4c9) - rename
parser
module toparse
(3724850) - fix docs (b05aed1)
- refactor (8bd9cd6)
- refactor (90dd2ce)
- fix docs (0d1be2b)
- rename
normalize_cow()
tonormalize()
and move allnormalize*
functions fromvalues
to thevalue
module (58b2215) - Documentation for feature flags (26e4a9c)
serde1
feature to add limited serde support (5a8f242)- remove unused serde feature (66a8237)
- move
Path
fromvalues
tovalue
module (767bedc) - Move
Boolean
andString
fromvalues
intovalue
module (6033f3f) - move
values::Integer
intovalue
module (d4444e1) - move
Color
to ownvalue
module (38f3117) - Make symlink tests so that they test real-path conversion (d4fbf2e)
- adjustments due to breaking changes in
git_path
(4420ae9) - a test to validate relative includepaths aren't valid for includeIf (7d27dd5)
- reuse the initialized environment for a little speed (6001613)
- Also test against git baseline (adcddb0)
- refactor (0229e25)
- prevent race when calling
git
aroundGIT_CONFIG_*
env vars (53efbf5) - remove duplicate gitdir tests that don't have a baseline (5c71394)
- remove unmotivated forward-slash conversion (3af09e5)
- improved slash/backslash handling on windows (a3b7828)
- fix build warnings on windows (9d48b2f)
- fix windows test (a922f0a)
- refactor (d76aee2)
- conforming subsection parsing handling backslashes like git (6366148)
- Only copy pattern if required (b3a752a)
- Uncategorized
- Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
- prepare changelog prior to release (3c50625)
- thanks clippy (fddc720)
- thanks fuzzy (15a379a)
- thanks clippy (15fee74)
- thanks clippy (0b05be8)
- thanks clippy (693e304)
- fix git-config/tests/.gitattributes (a741766)
- Merge branch 'config-metadata' (453e9bc)
- forced checkin to fix strange crlf issue (5d0a5c0)
- thanks clippy (e5ba0f5)
- thanks clippy (00bfbca)
- thanks clippy (09e2374)
- thanks clippy (e842633)
- thanks clippy (3ca8027)
- make fmt (aa9fdb0)
- thanks clippy (c9a2390)
- thanks clippy (badd00c)
- make fmt (0700b09)
- thanks clippy (b246f0a)
- thanks clippy (08441de)
- thanks clippy (8b29dda)
- thanks clippy (cff6e01)
- thanks clippy (f7be3b0)
- thanks clippy (7a2a31e)
- Allow backslashes in subsections (6f4f325)
- fix build after changes to
git-url
andgit-config
(1f02420) - thanks clippy (9b6a67b)
- remove
values::Bytes
- usevalues::String
instead. (aa630ad) - change mostily internal uses of [u8] to BString/BStr (311d4b4)
- Definitely don't unconditionally convert to forward slashes (146eb0c)
- avoid panics and provide errors instead of just not matching (a0f842c)
- try to fix git-config tests on windows even harder (16778d4)
- try once more to get failing tests under control on windows (c26c2e9)
- thanks clippy (27b2dde)
- fix test with brute force; take some notes for later (2eda529)
- Merge branch 'main' into cont_include_if (daa71c3)
- Take GitEnv by ref. (937d7ee)
- remove leftover debug printing (7d1cf34)
- auto-normalize string values to support quote removal in case of strings. (1e71e71)
- refactor (1d6ba9b)
- avoid unwrap() more as the test code matures (c2d7e80)
- refactor (b5c0b30)
- Merge branch 'main' into cont_include_if (0e9df36)
- make '..' related tests work (5f11318)
- find a few cases that aren't according to spec by failing (and ignored) tests (f0e6ea9)
- refactor (62e5396)
- generally avoid using
target_os = "windows"
in favor ofcfg(windows)
and negations (91d5402) - Invoke git only when necessary (556c7cf)
- Also use git_path::realpath() in other places that used canonicalize before (08af648)
- Our own git_path::realpath doesn't have the questionmark? issue on windows (cfe196b)
- fix windows tests (47f10fe)
- more debugging for windows failures (e0a72e6)
- no need for serial anymore (34bb715)
- Make a note to be sure we use the home-dir correctly in git-repository; avoid
dirs
crate (0e8cf19) - finally all tests work without the need for dirs::home_dir() (180ce99)
- refactor (00ba5d8)
- refactor (0eb7ced)
- Path-interpolation makes
home-dir
configurable. (edd2267) - refactor (aab9865)
- Change last test to new simplified symlink setup (a40e3c9)
- refactor (67677b0)
- assure the IDE doesn't confuse a module with a test (7be0b05)
- refactor (1203a14)
- refactor (a721efe)
- refactor (2c8c6e5)
- refactor (eb0ace1)
- refactor (8f8f873)
- Merge branch 'main' into cont_include_if (41ea8ba)
- Release git-path v0.3.0, safety bump 14 crates (400c9be)
- Remove
git-config
test utilities fromgit-path
. (c9933c0) - Add repo_dir to EnvOverwrite. (ed5c442)
- Use EnvOverwrite struct. (f2e124f)
- tempdir lives long enough for sure. (a41002f)
- Disable symlink tests on windows. (8de6b3d)