github GitoxideLabs/gitoxide git-config-v0.13.0
git-config v0.13.0

23 months ago

New Features

  • SectionMut::push_with_comment(key, comment) to add a new variable with a comment.
    This is useful for providing more information about a value at hand, especially if it was
    added programmatically and then shows up in the configuration.

  • Add the Source::EnvOverride to have a place for 'terminal' overrides.
    That way environment variables represented via git-configuration
    can be integrated into git configuration, making clearer what's
    going to happen even when looking at the configuration via
    gix config.

    The implementation has to be careful though about assureing there
    is no more specific configuration key, like http.<URL>.proxy that
    would override the one from the environment, which always has
    the final word.

  • comfort API like string_by_key(key) takes a key like "remote.origin.url", add section_by_key("remote.origin") as well.
    That way it's the most comfortable way to query values and very
    similar to how git does it, too.

    Additionally, sections can be obtained by section key, both mutably and immutably for completeness.

New Features (BREAKING)

  • File::new_section() and related now returns their id as well.
    That way it's possible to more easily interact with it later, for instance
    when one wants to delete it.

Bug Fixes (BREAKING)

  • subsections are identified as &BStr in entire API.
    Technically they can be any value (except for newlines and unescaped double quotes),
    and these values might be paths and everything that comes with it, like
    illformed UTF8. In order to be able to represent everything that
    git can represent, we don't enforce UTF8 anymore for subsection names.

    Note that section names and key names are required to be valid UTF8
    (and even alphanumeric ascii), which makes illformed UTF8 very unlikely
    there.

Commit Statistics

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

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • Uncategorized
    • prepare chnagelogs prior to git-repository release (7114bbb)
    • Merge branch 'adjustments-for-cargo' (083909b)
    • adjust to changes in git-testtools (4eb842c)
    • make fmt (747008d)
    • Merge branch 'main' into http-config (6b9632e)
    • File::new_section() and related now returns their id as well. (2b36d99)
    • SectionMut::push_with_comment(key, comment) to add a new variable with a comment. (5b9bffe)
    • Release git-features v0.24.1, git-actor v0.14.1, git-index v0.9.1 (7893502)
    • Add the Source::EnvOverride to have a place for 'terminal' overrides. (e4bf8f0)
    • thanks clippy (10f4f21)
    • comfort API like string_by_key(key) takes a key like "remote.origin.url", add section_by_key("remote.origin") as well. (5fa9546)
    • subsections are identified as &BStr in entire API. (0c98ec8)
    • Merge branch 'main' into http-config (bcd9654)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.