github GitoxideLabs/gitoxide git-repository-v0.20.0
git-repository v0.20.0

2 years ago

New Features

  • respect safe.directory.
    In practice, this code will rarely be hit as it would require very
    strict settings that forbid any operation within a non-owned git
    directory.
  • permissions for configuration.
    It provides fine-grained control over what sources to load.
  • git-config is now accessible in git-repository::config.
  • gix config lists all entries of all configuration files git considers.
    Filters allow to narrow down the output.
  • repository now initializes global configuration files and resolves includes
  • resolve includes in local repository configuration
  • config::Snapshot::trusted_path() to obtain trustworthy paths.
    We also apply trust-based config query during initialization to assure
    we don't use paths which aren't owned by the current user.
  • Repository::config_snapshot() to access configuration values.
  • Use git-config to write config file on initialization, including logallrefupdates and precomposeunicode.
  • respect core.logallrefupdates configuration setting.

Changed (BREAKING)

  • Make SignatureRef<'_> mandatory for editing reference changelogs.
    If defaults are desired, these can be set by the caller.

  • Repository::committer() now returns an Option, see ::committer_or_default() for a method that doesn't.

  • remove local-time-support feature toggle.
    We treat local time as default feature without a lot of fuzz, and
    will eventually document that definitive support needs a compile
    time switch in the compiler (--cfg unsound_local_offset or something).

    One day it will perish. Failure is possible anyway and we will write
    code to deal with it while minimizing the amount of system time
    fetches when asking for the current local time.

  • Associate file::Metadata with each File.
    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 as file::Metadata typically has to be provided by the caller
    now or be associated with each path to read configuration from.

New Features (BREAKING)

  • Support for lossy load mode.
    There is a lot of breaking changes as file::from_paths::Options now
    became file::init::Options, and the same goes for the error type.
  • change mostily internal uses of [u8] to BString/BStr

Commit Statistics

  • 72 commits contributed to the release over the course of 33 calendar days.
  • 39 days passed between releases.
  • 16 commits where understood as conventional.
  • 1 unique issue was worked on: #331

Thanks Clippy

Clippy helped 5 times to make code idiomatic.

Commit Details

view details
  • #331
    • Make lossy-configuration configurable (b0e4da6)
    • tests for author/committer/user (6d2e53c)
    • refactor (4dc6594)
    • default user signature now with 'now' time, like advertised. (ad40202)
    • Make SignatureRef<'_> mandatory for editing reference changelogs. (68f4bc2)
    • Repository::committer() now returns an Option, see ::committer_or_default() for a method that doesn't. (f932cea)
    • first sketch of using configuration and environment variables for author/committer (330d0a1)
    • remove local-time-support feature toggle. (89a41bf)
    • a first sketch on how identity management could look like. (780f14f)
    • refactor (4f61312)
    • respect safe.directory. (1b765ec)
    • permissions for configuration. (840d9a3)
    • git-config is now accessible in git-repository::config. (6570808)
    • gix config lists all entries of all configuration files git considers. (d99453e)
    • adapt to changes in git-config (b52b540)
    • adapt to changes in git-config (3c57344)
    • adjust to changes in git-config for greater efficiency (e9afede)
    • adapt to changes in git-config (14ba883)
    • refactor (95ed219)
    • repository now initializes global configuration files and resolves includes (ebedd03)
    • adapt to changes in git-config (627a0e1)
    • only a select few early config attributes must be repo-local (be0971c)
    • resolve includes in local repository configuration (de8572f)
    • Adjust to changes in git-config (30cbe29)
    • solve cycle between config and ref-store (1679d56)
    • adapt to changes in git-config (7f41f1e)
    • prepare for resolving a complete config… (9be1dd6)
    • Allow to configure a different filter for configuration section. (e512ab0)
    • adjust to changes in git-config (ca89d0d)
    • refactor (5723730)
    • load configuration with trust information, needs cleanup (d8e41e2)
    • Add remaining config access, and an escape hatch. (81715ff)
    • config::Snapshot::trusted_path() to obtain trustworthy paths. (d5a48b8)
    • Debug for config::Snapshot. (2c21956)
    • Repository::config_snapshot() to access configuration values. (5f9bfa8)
    • adapt to changes in git-config (c9423db)
    • Support for lossy load mode. (d003c0f)
    • Associate file::Metadata with each File. (6f4eea9)
    • adjust to changes in git-config (81e63cc)
    • Use git-config to write config file on initialization, including logallrefupdates and precomposeunicode. (7f67b23)
    • respect core.logallrefupdates configuration setting. (e263e13)
    • adapt to breaking changes in git-config (a02d575)
    • adapt to changes in git-config (858dc8b)
    • adjustments due to breaking changes in git-config (924f148)
    • adjustments for breaking changes in git-config (d3841ee)
    • adjust to changes in git-config (c52cb95)
    • adjustments due to breaking changes in git-config (07bf647)
    • adapt to changes in git-config (363a826)
    • adjust to changes in git-config (920d56e)
    • adjustments required due to changed in git-config (41bfd3b)
    • adjust to breaking changes in git-config (5b66202)
    • adjustments due to breaking changes in git_path (4420ae9)
  • Uncategorized
    • Release 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 (aa639d8)
    • 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 clippy (0346aaa)
    • thanks clippy (b630543)
    • thanks clippy (d9eb34c)
    • avoid extra copies of paths using PathCursor tool during repo init (5771721)
    • make fmt (0700b09)
    • change mostily internal uses of [u8] to BString/BStr (311d4b4)
    • Merge branch 'main' into cont_include_if (daa71c3)
    • Merge branch 'normalize-values' (4e8cc7a)
    • thanks clippy (e1003d5)
    • Merge branch 'main' into cont_include_if (0e9df36)
    • Use git_path::realpath in all places that allow it right now (229dc91)
    • fix build warnings (84109f5)
    • Make a note to be sure we use the home-dir correctly in git-repository; avoid dirs crate (0e8cf19)
    • adjust to changes in git-config (7a1678d)
    • Merge branch 'main' into cont_include_if (41ea8ba)
    • Release git-path v0.3.0, safety bump 14 crates (400c9be)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.