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

18 months ago

New Features

  • gix index entries also prints attributes.
  • add Repository::attributes() and Worktree::attributes().
  • add index.threads configuration to gix::config::tree
  • Before writing new objects, check if they exist.
    That way we safe expensive IO at the cost of some CPU.
  • add Object::into_tag() and Tag::decode() methods.
    This makes the API more symmetric as similar methods exist for commits
    and trees.
  • Allow USE_NSEC and USE_STDEV compile time flags to configured at runtime.
    Right now git may be compiled without these capabilities, even though on some platforms
    it might make perfect sense to enable them by default or enable them on a per repository
    basis. This is now possible thanks to added gitoxide specific functions.
  • open::Options now allow controlling where gitattributes files are loaded from.
    That way it's possible to, for example, isolate all operations that rely on the gitattribute
    system, like checkouts or additions to the index.
  • revision::walk::Platform::selected(filter) to selectively prune parts of the commit graph.

Bug Fixes

  • When removing all shallow commits from shallow file, delete it.
    Previously it would leave an empty file, which will be ignored by the implementation
    but might be confusing to users.
  • gix::open() can handle bare repositories with index.
    These are mis-classified as non-bare repository, which previosuly
    caused it to get off-track.

New Features (BREAKING)

  • add Repository::excludes() and simplify signature of Worktree::excludes().
    Further, this change removes the permission module without replacement,
    and moves permissions into open.

    This corrects an artifact of this crate previously being name gix-repository and brings
    these types semantically closer to where they are actually used.

  • support configuring the connection (i.e. for auth) during clone.
    This change also removes the generic type for Progress from Connection
    which forces it to be passed to every potentially long-running method.

  • Rename serde1 cargo feature to serde and use the weak-deps cargo capability.
    With it it's possible to not automatically declare all optional dependencies externally visible
    features, and thus re-use feature names that oterwise are also a crate name.

    Previously I thought that serde1 is for future-proofing and supporting multiple serde versions
    at the same time. However, it's most definitely a burden I wouldn't want anyway, so using
    serde seems to be the way to go into the future.

  • remove types that are now available in gix-os

Commit Statistics

  • 47 commits contributed to the release over the course of 26 calendar days.
  • 27 days passed between releases.
  • 14 commits were understood as conventional.
  • 2 unique issues were worked on: #801, #814

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #801
    • revision::walk::Platform::selected(filter) to selectively prune parts of the commit graph. (ec93f75)
  • #814
    • Rename serde1 cargo feature to serde and use the weak-deps cargo capability. (b83ee36)
  • Uncategorized
    • Release gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0 (d7173b2)
    • Release gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0 (e4df557)
    • Release gix-hash v0.11.1, gix-path v0.7.4, gix-glob v0.6.0, gix-attributes v0.11.0, gix-config-value v0.11.0, gix-fs v0.1.1, gix-tempfile v5.0.3, gix-utils v0.1.1, gix-lock v5.0.1, gix-object v0.29.1, gix-ref v0.28.0, gix-sec v0.7.0, gix-config v0.21.0, gix-prompt v0.4.0, gix-url v0.17.0, gix-credentials v0.13.0, gix-diff v0.29.0, gix-discover v0.17.0, gix-hashtable v0.2.0, gix-ignore v0.1.0, gix-bitmap v0.2.3, gix-traverse v0.25.0, gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0, safety bump 7 crates (91134a1)
    • Prepare changelogs prior to release (30a1a71)
    • When removing all shallow commits from shallow file, delete it. (2cd5054)
    • Merge branch 'index-entries-attrs' (f37a930)
    • gix index entries also prints attributes. (08e8fc2)
    • Adjust to changes in gix-worktree (27a39ca)
    • Add Repository::attributes() and Worktree::attributes(). (bc28443)
    • Add Repository::excludes() and simplify signature of Worktree::excludes(). (26e6a66)
    • Add index.threads configuration to gix::config::tree (40a1b74)
    • Adjust to changes in gix-worktree (f722d6b)
    • Merge branch 'attributes-cache' (3456c84)
    • Adjust to changes in gix-worktree (13a070f)
    • Merge branch 'fix-823' (6ebd61e)
    • gix::open() can handle bare repositories with index. (43f695a)
    • Thanks clippy (14e64e7)
    • Merge branch 'clone-auth' (1a65308)
    • Support configuring the connection (i.e. for auth) during clone. (cb34376)
    • Merge branch 'fix-819' (69faad0)
    • Before writing new objects, check if they exist. (afe7faa)
    • Add Object::into_tag() and Tag::decode() methods. (037f52d)
    • Release gix-utils v0.1.0, gix-hash v0.11.0, gix-date v0.5.0, gix-features v0.29.0, gix-actor v0.20.0, gix-object v0.29.0, gix-archive v0.1.0, gix-fs v0.1.0, safety bump 25 crates (8dbd0a6)
    • Support native zlib-ng via flate2's zlib-ng feature (9a6e0d7)
    • Make fmt (5d2b5d0)
    • Merge branch 'main' into dev (cdef398)
    • Minor adjustments to the worktree structure. (8920229)
    • Rename the serde1 feature to serde (19338d9)
    • Create new gix-fs crate to consolidate all filesystem utilities (f8cc33c)
    • Allow USE_NSEC and USE_STDEV compile time flags to configured at runtime. (35cb6b4)
    • Merge branch 'main' into dev (23ee47f)
    • Merge branch 'worktree-stack' (3d47919)
    • open::Options now allow controlling where gitattributes files are loaded from. (358500f)
    • Adjust to changes in gix-attributes (1755c81)
    • Remove types that are now available in gix-os (b645d28)
    • Refactor (0677406)
    • Centralize index entry Stat creation/comparison (870bdb2)
    • Release gix-hash v0.10.4, gix-hashtable v0.1.3 (b574a39)
    • Merge branch 'patch-1' (b02bf24)
    • Add test to run tests on 32 bit systems (fb31ee8)
    • Merge branch 'patch-1' (d0052c1)
    • Upgrade serial-test to v2 (6932017)
    • Release gix-revision v0.12.2 (ec64a88)
    • Merge branch 'fix-801' (a884121)
    • Prevent env-altering tests to affect shallow tests (61eec5a)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.