github GitoxideLabs/gitoxide gix-v0.57.0
gix v0.57.0

10 months ago

Chore

  • upgrade MSRV to v1.70
    Our MSRV follows the one of helix, which in turn follows Firefox.

New Features

  • Repository::rev_parse*() now supports branch@{upstream|push|u|p}.
    Previously it would be parsed, but always error as the implementation didn't exist.
    Now it will return the fetch and push tracking branches respectively.

  • Add Reference::remote_tracking_ref_name() and *::remote_ref_name().
    These methods mirror their respective Repository::branch_* prefixed versions.

  • add Repository::branch_remote_tracking_ref_name().

  • add push.default config key

  • add config::Snapshot::trusted_program().
    That way it's possible to obtain an executable, program or script
    from a key in the configuration that is in a trusted section of the
    configuration.

    This goes along with a new command feature that brings in the command
    module at the top level to be able to execute such commands.

  • add clone::PrepareFetch::with_in_memory_config_overrides().
    With it one can affect the repository configuration right before fetching.

New Features (BREAKING)

  • Repository::remote_names|remote_default_name() now returns Cow<'_, BStr> instead of Cow<'_, str>.
    That way information won't degenerate due to enforcement of UTF-8.

Bug Fixes (BREAKING)

  • rename Repository::branch_remote_ref() to Repository::branch_remote_ref_name(), add direction argument (also to Repository::branch_remote_name() and Repository::branch_remote()).
    This better differentiates the return value from the corresponding ref objects,
    which would require the named ref to exist in the repository.

    The direction argument allows to get the reference to push to as well.
    Further, it now takes a full ref name to support deriving the name of branches
    to push to.

    Regarding Repository::branch_remote(), previously, this functionality
    was only available from a Reference,
    but now it's more generally available with just a branch name.

    The method was also adjusted to permit looking up non-symbolic remote
    names, like remotes that are specified by their URL.

  • mark gix::interrupt::init_handler() as unsafe
    The passed interrupt() argument will be called from a signal
    handler, so that needs to be documented and the call sites need to
    state that they fulfill the contract.

    Thanks to @Manishearth for pointing this out.

Commit Statistics

  • 40 commits contributed to the release over the course of 22 calendar days.
  • 22 days passed between releases.
  • 10 commits were understood as conventional.
  • 4 unique issues were worked on: #1158, #1165, #1178, #1191

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #1158
    • Remove extra-lines from changelog (11c9f66)
  • #1165
  • #1178
    • Add config::Snapshot::trusted_program(). (3f84213)
  • #1191
    • Add note to clarify what users might want to do (2e04403)
  • Uncategorized
    • Prepare changelogs of next release (e78a92b)
    • Merge branch 'maintenance' (4454c9d)
    • Upgrade MSRV to v1.70 (aea89c3)
    • Thanks clippy (d38d1cc)
    • Merge branch 'tracking-branch' (0fe20e8)
    • Refactor (530c15d)
    • Repository::rev_parse*() now supports branch@{upstream|push|u|p}. (3fba5b8)
    • Add Reference::remote_tracking_ref_name() and *::remote_ref_name(). (270322e)
    • Add Repository::branch_remote_tracking_ref_name(). (4aa4b05)
    • Rename Repository::branch_remote_ref() to Repository::branch_remote_ref_name(), add direction argument (also to Repository::branch_remote_name() and Repository::branch_remote()). (404fde5)
    • Repository::remote_names|remote_default_name() now returns Cow<'_, BStr> instead of Cow<'_, str>. (5c07c76)
    • Add push.default config key (8ac2dcc)
    • Merge branch 'match_ceiling_dir_or_error' (cda5b51)
    • Merge branch 'main' into fix-1183 (1691ba6)
    • Release gix-ref v0.39.1 (c1cfe6e)
    • Merge branch 'patch-1' (20dce42)
    • Differentiate between Executable and Program (56d1d09)
    • Add core.editor key (ff71e07)
    • Merge branch 'archive-handling' (7549559)
    • Check all git-lfs managed files into the repository (35439de)
    • Git-lfs might fail early; let's rely on these caches to be recreated, where possible (b6f2b81)
    • Release gix-hash v0.13.3, gix-index v0.27.1 (98b08f4)
    • Merge branch 'mailmap-config-section' (8dda069)
    • Use new mailmap keys and make a few improvements. (7f65ffd)
    • Assign more suitable types to mailmap keys (1bf3e88)
    • Add config section for mailmap.{blob,file}. (86c7fa1)
    • Merge branch 'configure-prepare-fetch' (281fda0)
    • Add clone::PrepareFetch::with_in_memory_config_overrides(). (b5c36b8)
    • Allow overriding Git configuration when cloning. (9833b45)
    • Merge branch 'push-yvzxzqrkkvry' (4917beb)
    • Fixup new unsafe interrupt handler (c23bb87)
    • Mark gix::interrupt::init_handler() as unsafe (59b8104)
    • Reduce size of unsafe block in signal handler (d77bc0e)
    • Release gix-config v0.32.1 (cd26fd8)
    • Merge branch 'adjustments-for-cargo' (56588a9)
    • Fix import/prevent warning (ec0211a)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.