github Byron/gitoxide git-repository-v0.15.0
git-repository v0.15.0

2 years ago

New Features

  • support for object replacement
    The Repository now respects replacement refs created by git replace
    and picks up environment variables for its configuration as well.

    Which environment variables are used is fully configurable.

  • support for trimming of whitespace around name and email
    It's separated from parsing to assure we can round-trip, but it's
    made easy to obtain trimmed results using new methods.

    This high-level git-repository will also trim by default now.

  • Repository::head_commit()
    A shortcut to get to the commit much faster.

  • ein tool estimate-hours now supports mailmaps

  • Repository::head_id()
    A long-needed shortcut.

  • gix repository mailmap entries

  • unstable mailmap module

  • Commit::short_id()

  • in-manifest and in-lib documentation of feature toggles

  • easy::Commit::time() to access the committers time conveniently.

  • easy::Head::name() to learn about the name of the HEAD ref
    It's mainly for completeness to provide people with with a FullNameRef
    of HEAD.

  • easy::Head::peel_to_commit_in_place()
    It allows to quickly get a commit from the head, something most people
    want when getting started with any kind of tool.

  • Repsitory::load_index()
    This method makes the index of the default workspace available.

Bug Fixes

  • Properly classify worktrees as non-bare, helps with ein t find
    They use git-files which point to the actual repository data.

Changed (BREAKING)

  • Easier access to local and remote branches

New Features (BREAKING)

  • interrupt::Iter, rename interrupt::Iter -> interrupt::IterWithError
  • Let 'easy::Object::try_into_…()returntry_into::Error. That way, the typical usage of try_into_commit()?will not result in a strange error aboutObject` not being convertible into some
    error. We think having a real error there is the least surprising.

Bug Fixes (BREAKING)

  • do not install signal handlers by default
    The previous behaviour is meant to be convenient for the casual
    user even though it
    ends up being surprising when used in applications that install
    their own signal handlers and need more control over how the program
    shuts down.

    This is now fixed by requiring an explicit setup() call before
    the first tempfile is created, which makes it a breaking change.

Other (BREAKING)

  • Id::prefix -> Id::shorten()
    It's definitely more intuitive that way.

Refactor (BREAKING)

  • disoolve 'easy' module by moving everything one level up
  • clarify different repository types much better

Commit Statistics

  • 85 commits contributed to the release over the course of 68 calendar days.
  • 69 days passed between releases.
  • 21 commits where understood as conventional.
  • 7 unique issues were worked on: #293, #298, #301, #329, #336, #364, #366

Thanks Clippy

Clippy helped 5 times to make code idiomatic.

Commit Details

view details
  • #293
    • easy::Commit::time() to access the committers time conveniently. (9f5663e)
    • easy::Head::name() to learn about the name of the HEAD ref (7c88b62)
    • fix build (d89a587)
    • Repsitory::load_index() (1c22d76)
  • #298
    • actual default hex-len for short-ids is 7, but… (36e004b)
    • quick sketch of how the retrieval of ints from config could look like (af6326f)
    • frame for simplified config access via Repository (eba2b9a)
    • fix docs; consistent naming of 'repo' (1f79bc3)
    • rename sync::Handle into ThreadSafeRepository (1cc4faa)
    • disoolve 'easy' module by moving everything one level up (c10f07c)
    • prepare for moving `git-repository::easy:: one level up (ccecb9a)
    • make config available in easy::Repository (fbdb1a2)
    • refactor (591b533)
    • refactor (a1a846a)
    • clarify different repository types much better (bbc6efe)
    • docs (a45f378)
    • First stab at Oid::prefix() (35e77c1)
    • easy::Head::peel_to_commit_in_place() (3b0913a)
    • Let 'easy::Object::try_into_…()returntry_into::Error`. (813a3be)
  • #301
    • interrupt::Iter, rename interrupt::Iter -> interrupt::IterWithError (8945d95)
    • refactor (9ea1e44)
    • unset the pack cache if GITOXIDE_DISABLE_PACK_CACHE is set (6d8bc49)
    • frame for traversing tree entries (0e55fbb)
    • basic version of index checkout via command-line (f23b8d2)
    • support for unicode-precomposition for gix apps (e90c123)
    • Commit::short_id() (1be00cf)
    • verify that Id::prefix() makes use of the git configuration (76e9110)
  • #329
    • in-manifest and in-lib documentation of feature toggles (c7dff9e)
    • Document all features related to serde1 (72b97f2)
  • #336
    • do not install signal handlers by default (c863ea5)
  • #364
    • support for object replacement (1322dbf)
    • initialize replacements in a configurable way (6a27985)
    • add some precaution to avoid strange interactions with packs (b052a9a)
    • commit traversals on shallow clones are non-fatal by default (1a75357)
    • adapt to changes in git-ref (f606f88)
    • support for trimming of whitespace around name and email (a39bf71)
    • Add and improve Debug implementation on major types (d23c3d4)
    • also inform about average and max commit sizes (5052a4e)
    • Adjust to breaking changes in git-traverse (d79b506)
    • fix install_dir(); refactor (11644bd)
    • Repository::head_commit() (0057804)
    • Repository::head_id() (f0d8a49)
    • fix docs (29822c6)
    • Id::prefix -> Id::shorten() (5f75953)
    • refactor (b1b9871)
    • Easier access to local and remote branches (a8b6589)
    • Fix lifetime declarations to allow ancestors().all() chaining (df24f16)
    • consolidate naming of directories, use same convention as git2 (a7dbed1)
    • Full error handling for CommitRefIter (b94471a)
    • More speedy access to author/committer (6129607)
    • adjust to changes in git-actor (e5c0200)
    • cleaner API for detaching objects, now for commits as well (59d75fc)
  • #366
    • ein tool estimate-hours now supports mailmaps (def80df)
    • gix repository mailmap entries (d2388d8)
    • frame for printing mailmap entries using git-repository (2a01f47)
    • the first possibly working version of loading a mailmap with multiple sources (98d745e)
    • frame for Repository::load_mailmap_into() (c8c87ec)
    • unstable mailmap module (e3bc1b4)
  • Uncategorized
    • Merge branch 'for-onefetch' (8e5cb65)
    • Release git-hash v0.9.3, git-features v0.20.0, git-config v0.2.0, safety bump 12 crates (f0cbb24)
    • Merge branch 'svetli-n-refactor_git_config_tests' (babaa9f)
    • make fmt (7cf3545)
    • Properly classify worktrees as non-bare, helps with ein t find (c329dd7)
    • fix MSRV (1bf5d11)
    • thanks clippy (8e2e4e3)
    • Merge branch 'short-id' (5849d5b)
    • Set the MSRV version explicitly in git-repository (bbf6799)
    • thanks clippy (4618f8a)
    • thanks clippy (5db3993)
    • remove unused dependency (2fbc93c)
    • thanks clippy (d5911b5)
    • Release git-tempfile v2.0.0, safety bump 6 crates (90b1c42)
    • upgrade document-features (c35e62e)
    • Merge branch 'AP2008-implement-worktree' (f32c669)
    • Release git-actor v0.8.1 (08fe550)
    • Release git-bitmap v0.0.1, git-hash v0.9.0, git-features v0.19.0, git-index v0.1.0, safety bump 9 crates (4624725)
    • fix lint (b339b41)
    • remove debug-helper (c243215)
    • Release git-hash v0.9.2, git-object v0.17.1, git-pack v0.16.1 (0db19b8)
    • Don't use bleeding edge features (3de0ab1)
    • reference statistics for stats example (83b99ce)
    • Merge branch 'index-verification' (ad3c803)
    • Release git-config v0.1.11 (a605b67)
    • thanks clippy (2f25bf1)
    • Merge branch 'index-information' (025f157)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.