2070 lines · 174.0 KB · Markdown
RawDownload

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.13.0 (2022-12-19)

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)

0.12.0 (2022-11-21)

New Features

  • read worktree specific configuration of main worktrees. Supporting this is useful when interacting with worktrees that have been created with sparse worktree support, which moves some configuration values into those for the worktree at hand.

    Note that linked worktrees are not supported - for that use git-repository instead.

New Features (BREAKING)

  • upgrade edition to 2021 in most crates. MSRV for this is 1.56, and we are now at 1.60 so should be compatible. This isn't more than a patch release as it should break nobody who is adhering to the MSRV, but let's be careful and mark it breaking.

    Note that git-features and git-pack are still on edition 2018 as they make use of a workaround to support (safe) mutable access to non-overlapping entries in a slice which doesn't work anymore in edition 2021.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release git-hash v0.10.0, git-features v0.24.0, git-date v0.3.0, git-actor v0.14.0, git-glob v0.5.0, git-path v0.6.0, git-quote v0.4.0, git-attributes v0.6.0, git-config-value v0.9.0, git-tempfile v3.0.0, git-lock v3.0.0, git-validate v0.7.0, git-object v0.23.0, git-ref v0.20.0, git-sec v0.5.0, git-config v0.12.0, git-command v0.2.0, git-prompt v0.2.0, git-url v0.11.0, git-credentials v0.7.0, git-diff v0.23.0, git-discover v0.9.0, git-bitmap v0.2.0, git-traverse v0.19.0, git-index v0.9.0, git-mailmap v0.6.0, git-chunk v0.4.0, git-pack v0.27.0, git-odb v0.37.0, git-packetline v0.14.0, git-transport v0.23.0, git-protocol v0.24.0, git-revision v0.7.0, git-refspec v0.4.0, git-worktree v0.9.0, git-repository v0.29.0, git-commitgraph v0.11.0, gitoxide-core v0.21.0, gitoxide v0.19.0, safety bump 28 crates (b2c301e)
    • prepare changelogs prior to release (e4648f8)
    • Merge branch 'version2021' (0e4462d)
    • read worktree specific configuration of main worktrees. (7d7bd02)
    • refactor (747b9e9)
    • upgrade edition to 2021 in most crates. (3d8fa8f)

0.11.0 (2022-11-17)

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release git-glob v0.4.2, git-config-value v0.8.2, git-lock v2.2.0, git-ref v0.19.0, git-config v0.11.0, git-discover v0.8.0, git-index v0.8.0, git-transport v0.22.0, git-protocol v0.23.0, git-worktree v0.8.0, git-repository v0.28.0, gitoxide-core v0.20.0, gitoxide v0.18.0, safety bump 9 crates (0c253b1)
    • prepare changelogs prior to release (fe5721f)
    • order matters (166f349)
    • update docs (aab6a33)
    • naive approach to loading worktree configs… (9d8cb1f)

0.10.0 (2022-11-06)

Bug Fixes

  • File::boolean() now correctly handles implicit bools across sections. This means it will return the last implicit value as true, instead of ignoring it to fall back onto an explicit boolean value that might be false.

  • file::SectionMut::push() now properly creates empty values. Previously, when calling .push("key", None), the resulting internal state would be slighly wrong causing certain invariants and expectations to be unfulfilled even though it might have looked OK to most users.

    Now it will uphold the invariant for empty values, those without an = character.

Commit Statistics

  • 13 commits contributed to the release over the course of 20 calendar days.
  • 27 days passed between releases.
  • 2 commits were understood as conventional.
  • 1 unique issue was worked on: #450

Thanks Clippy

Clippy helped 2 times to make code idiomatic.

Commit Details

view details
  • #450
    • File::boolean() now correctly handles implicit bools across sections. (839f776)
    • be sure to globally order section ids when traversed by name. (21a5229)
    • file::SectionMut::push() now properly creates empty values. (7d92c61)
    • refactor (041ede9)
  • Uncategorized
    • Release git-features v0.23.1, git-glob v0.4.1, git-config-value v0.8.1, git-tempfile v2.0.6, git-object v0.22.1, git-ref v0.18.0, git-sec v0.4.2, git-config v0.10.0, git-prompt v0.1.1, git-url v0.10.1, git-credentials v0.6.1, git-diff v0.21.0, git-discover v0.7.0, git-index v0.7.0, git-pack v0.25.0, git-odb v0.35.0, git-transport v0.21.1, git-protocol v0.22.0, git-refspec v0.3.1, git-worktree v0.7.0, git-repository v0.26.0, git-commitgraph v0.10.0, gitoxide-core v0.19.0, gitoxide v0.17.0, safety bump 9 crates (d071583)
    • prepare changelogs prior to release (423af90)
    • Merge branch 'main' into write-sparse-index (upgrade to Rust 1.65) (5406630)
    • thanks clippy (04cfa63)
    • adjust memory-size expectations to deal with Rust 1.65 and below (a93c470)
    • Merge branch 'main' into write-sparse-index (c4e6849)
    • make fmt (ea2136b)
    • Merge branch 'gix-clone' (def53b3)
    • thanks clippy (d2f56df)

0.9.0 (2022-10-10)

New Features

  • add parse::section::header::is_valid_subsection() function. It can be useful to validate subsection names without having to construct an entire Header (which also includes a name).

  • Add various methods to iterate sections along with their id, and mutate them. As section names are not unique, it was previously not possible to iterate sections and then mutate them as one wouldn't be able to refer to the exact section that was just traversed, after all, there can be many sections named remote "origin".

    With the new methods it's possible to uniquely refer to each section for mutation and removal.

Bug Fixes

  • greatly improve whitespace handling when removing values. Previously, newlines would remain past a value, and whitespace could remain before one.

    Now both are removed to simulate removing an actual line.

  • File::remove_section() was fixed to allow re-adding a similarly named section. We also add File::remove_section_by_id() to make it possible to remove specific sections.

Commit Statistics

  • 15 commits contributed to the release over the course of 20 calendar days.
  • 20 days passed between releases.
  • 4 commits were understood as conventional.
  • 1 unique issue was worked on: #450

Commit Details

view details
  • #450
    • adapt to changes in git-ref (d40beb3)
  • Uncategorized
    • Release git-hash v0.9.11, git-features v0.23.0, git-actor v0.13.0, git-attributes v0.5.0, git-object v0.22.0, git-ref v0.17.0, git-sec v0.4.1, git-config v0.9.0, git-url v0.10.0, git-credentials v0.6.0, git-diff v0.20.0, git-discover v0.6.0, git-traverse v0.18.0, git-index v0.6.0, git-mailmap v0.5.0, git-pack v0.24.0, git-odb v0.34.0, git-packetline v0.13.1, git-transport v0.21.0, git-protocol v0.21.0, git-revision v0.6.0, git-refspec v0.3.0, git-worktree v0.6.0, git-repository v0.25.0, safety bump 24 crates (104d922)
    • prepare changelogs for release (d232567)
    • Merge branch 'fix-smart-release' (aa80b60)
    • make fmt (7b9c065)
    • Merge branch 'clone' (507dc7e)
    • add parse::section::header::is_valid_subsection() function. (aa5d66f)
    • greatly improve whitespace handling when removing values. (9c1e639)
    • Add various methods to iterate sections along with their id, and mutate them. (5df2a2a)
    • File::remove_section() was fixed to allow re-adding a similarly named section. (e533993)
    • improve clarity docs related to mutating sections (769e897)
    • Merge branch 'main' into new-http-impl (702a161)
    • Merge branch 'fetch-pack' (3c49400)
    • Merge branch 'fix-git-features' (82fd251)
    • Merge branch 'diff' (25a7726)

0.8.0 (2022-09-20)

Changed

  • git-config now uses git-config-value.

Changed (BREAKING)

  • Add Kind::GitInstallation for a way to obtain special git-installation configuration paths. Note that these are lazily cached as they call the git binary.
  • upgrade bstr to 1.0.1

Commit Statistics

  • 18 commits contributed to the release over the course of 22 calendar days.
  • 22 days passed between releases.
  • 3 commits were understood as conventional.
  • 2 unique issues were worked on: #450, #470

Commit Details

view details
  • #450
    • Add Kind::GitInstallation for a way to obtain special git-installation configuration paths. (27fb1ce)
    • upgrade bstr to 1.0.1 (99905ba)
    • git-config now uses git-config-value. (5ad2965)
    • port tests over as well (9b28df2)
  • #470
    • update changelogs prior to release (caa7a1b)
  • Uncategorized
    • Release git-hash v0.9.10, git-features v0.22.5, git-date v0.2.0, git-actor v0.12.0, git-glob v0.4.0, git-path v0.5.0, git-quote v0.3.0, git-attributes v0.4.0, git-config-value v0.8.0, git-tempfile v2.0.5, git-validate v0.6.0, git-object v0.21.0, git-ref v0.16.0, git-sec v0.4.0, git-config v0.8.0, git-discover v0.5.0, git-traverse v0.17.0, git-index v0.5.0, git-worktree v0.5.0, git-testtools v0.9.0, git-command v0.1.0, git-prompt v0.1.0, git-url v0.9.0, git-credentials v0.5.0, git-diff v0.19.0, git-mailmap v0.4.0, git-chunk v0.3.2, git-pack v0.23.0, git-odb v0.33.0, git-packetline v0.13.0, git-transport v0.20.0, git-protocol v0.20.0, git-revision v0.5.0, git-refspec v0.2.0, git-repository v0.24.0, git-commitgraph v0.9.0, gitoxide-core v0.18.0, gitoxide v0.16.0, safety bump 28 crates (29a043b)
    • make fmt (429cccc)
    • Merge branch 'filter-refs' (3773b92)
    • Merge branch 'filter-refs' (fd14489)
    • Release git-features v0.22.6 (c9eda72)
    • upgrade all dependencies, except for windows (2968181)
    • make fmt (535e967)
    • Merge branch 'filter-refs-by-spec' (5c05198)
    • Merge branch 'main' into filter-refs-by-spec (9aa1d3d)
    • Release git-features v0.22.4, git-url v0.8.0, safety bump 4 crates (1d4600a)
    • Merge branch 'main' into index-from-tree (bc64b96)
    • Release git-path v0.4.2, git-config-value v0.7.0 (c48fb31)
    • Merge branch 'main' into filter-refs-by-spec (cef0b51)

0.7.1 (2022-08-28)

Maintenance release without user-facing changes.

Commit Statistics

  • 5 commits contributed to the release over the course of 4 calendar days.
  • 4 days passed between releases.
  • 0 commits were understood as conventional.
  • 1 unique issue was worked on: #XXX

Commit Details

view details
  • #XXX
    • prepare changelogs prior to release (8c0bca3)
  • Uncategorized
    • Release git-object v0.20.3, git-ref v0.15.4, git-config v0.7.1, git-diff v0.18.0, git-traverse v0.16.3, git-pack v0.22.0, git-odb v0.32.0, git-url v0.7.3, git-transport v0.19.3, git-protocol v0.19.1, git-refspec v0.1.1, git-repository v0.23.0, safety bump 6 crates (85a3bed)
    • Release git-attributes v0.3.3, git-ref v0.15.3, git-index v0.4.3, git-worktree v0.4.3, git-testtools v0.8.0 (baad4ce)
    • Release git-features v0.22.3, git-revision v0.4.4 (c2660e2)
    • Merge branch 'main' into filter-refs-by-spec (cfa1440)

0.7.0 (2022-08-24)

Chore

  • uniformize deny attributes

New Features

  • File::set_raw_value_filter() to set values only in sections passing a filter.
  • File::section_mut_or_create_new_filter() to allow chosing which sections to add values to.
  • File::section_mut_or_create_new(…) to obtain an existing or new section for mutation.
  • use docsrs feature in code to show what is feature-gated automatically on docs.rs
  • pass --cfg docsrs when compiling for https://docs.rs

Bug Fixes

  • Properly handle boolean values such that a is true but a= is false. This is even consistent when no booleans are used, such that a has no value as if it is not present, it's only available for booleans which must be specified.
  • Keep track of a severe limitation and prepare tests for fixing it. This also changes behaviour, but merely removes a hack in Boolean which considered empty strings true, even though they are supposed to be false.

Changed (BREAKING)

  • Add File::set_raw_value() to unconditionally set single values, and make the value itself easier to provide.

New Features (BREAKING)

  • file::SectionMut::push() now supports values without key-value separator. These make a difference as those without = are considered boolean true. Currently pushing onto a section is the only way to write them.

Other (BREAKING)

  • File::set_raw_[multi_]value() to ::set_existing_raw_[multi_]value. This makes clear that the method will fail if the value doesn't yet exist.

Commit Statistics

  • 20 commits contributed to the release over the course of 5 calendar days.
  • 6 days passed between releases.
  • 11 commits were understood as conventional.
  • 1 unique issue was worked on: #450

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #450
    • Properly handle boolean values such that a is true but a= is false. (08c50a4)
    • fix config tests on windows (7a871c2)
    • Keep track of a severe limitation and prepare tests for fixing it. (7c58516)
    • file::SectionMut::push() now supports values without key-value separator. (b6cd6ac)
    • refactor (5415449)
    • File::set_raw_value_filter() to set values only in sections passing a filter. (9937d0e)
    • File::section_mut_or_create_new_filter() to allow chosing which sections to add values to. (17455c9)
    • Add File::set_raw_value() to unconditionally set single values, and make the value itself easier to provide. (2b2357e)
    • File::section_mut_or_create_new(…) to obtain an existing or new section for mutation. (5902f54)
    • File::set_raw_[multi_]value() to ::set_existing_raw_[multi_]value. (69ec594)
  • Uncategorized
    • Release git-date v0.0.5, git-hash v0.9.8, git-features v0.22.2, git-actor v0.11.3, git-glob v0.3.2, git-quote v0.2.1, git-attributes v0.3.2, git-tempfile v2.0.4, git-lock v2.1.1, git-validate v0.5.5, git-object v0.20.2, git-ref v0.15.2, git-sec v0.3.1, git-config v0.7.0, git-credentials v0.4.0, git-diff v0.17.2, git-discover v0.4.1, git-bitmap v0.1.2, git-index v0.4.2, git-mailmap v0.3.2, git-chunk v0.3.1, git-traverse v0.16.2, git-pack v0.21.2, git-odb v0.31.2, git-packetline v0.12.7, git-url v0.7.2, git-transport v0.19.2, git-protocol v0.19.0, git-revision v0.4.2, git-refspec v0.1.0, git-worktree v0.4.2, git-repository v0.22.0, safety bump 4 crates (4974eca)
    • Release git-path v0.4.1 (5e82346)
    • Merge branch 'remote-ls-refs' (39d585d)
    • thanks clippy (2770431)
    • Merge branch 'main' into remote-ls-refs (e2ee3de)
    • Merge branch 'docsrs-show-features' (31c2351)
    • use docsrs feature in code to show what is feature-gated automatically on docs.rs (b1c40b0)
    • uniformize deny attributes (f7f136d)
    • pass --cfg docsrs when compiling for https://docs.rs (5176771)
    • Merge branch 'main' into remote-ls-refs (bd5f3e8)

0.6.1 (2022-08-17)

A maintenance release without user facing changes.

Commit Statistics

  • 17 commits contributed to the release over the course of 26 calendar days.
  • 26 days passed between releases.
  • 0 commits were understood as conventional.
  • 1 unique issue was worked on: #482

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #482
  • Uncategorized
    • Release git-date v0.0.3, git-actor v0.11.1, git-attributes v0.3.1, git-tempfile v2.0.3, git-object v0.20.1, git-ref v0.15.1, git-config v0.6.1, git-diff v0.17.1, git-discover v0.4.0, git-bitmap v0.1.1, git-index v0.4.1, git-mailmap v0.3.1, git-traverse v0.16.1, git-pack v0.21.1, git-odb v0.31.1, git-packetline v0.12.6, git-url v0.7.1, git-transport v0.19.1, git-protocol v0.18.1, git-revision v0.4.0, git-worktree v0.4.1, git-repository v0.21.0, safety bump 5 crates (c96473d)
    • prepare changelogs prior to reelase (c06ae1c)
    • Merge branch 'submodule-open' (8f5f3ab)
    • Release git-hash v0.9.7, git-features v0.22.1 (232784a)
    • Merge branch 'main' into write-index-v2 (a938986)
    • Merge branch 'main' into remote-ls-refs (de61c4d)
    • thanks clippy (4bd747c)
    • Merge pull request #2 from SidneyDouw/main (ce885ad)
    • Merge branch 'Byron:main' into main (9b9ea02)
    • Merge branch 'main' into rev-parse-delegate (6da8250)
    • commit strange changes to be able to do anything. (237b21d)
    • Merge branch 'main' into pathspec (7b61506)
    • commit strange crlf-file that makes everything impossible (1dd9f9a)
    • make fmt (47724c0)
    • Merge branch 'kianmeng-fix-typos' (4e7b343)
    • Fix typos (e9fcb70)

0.6.0 (2022-07-22)

New Features

  • following includes is now non-fatal by default

Lines 1–500 of 2070.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t