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

2 years ago

New Features

  • Add Repository::head_name().
    A convenient way to obtain the name of a head, if not detached.

Bug Fixes

  • Commit::describe() now returns annnotated tags before lighweight ones and prefers more recent ones as well
  • Support for in truncated history in git-describe
    This allows describe() to work on shallow clones.

Other

  • allow reading information about remote branch

  • :discover()now returns the shortest path. If and only if it canonicalized the source path. That way, users will still get a familiar path. This is due toparent()not operating in the file system, which otherwise would be equivalent to..`,
    but that's not how we work.

    Maybe we should overhaul the way this works to use ../ instead
    and just 'absoluteize' the path later (std::path::absolute()) is
    on the way for that.

  • remove unused variant

Changed (BREAKING)

  • integrate trust model into repository discovery
    That way it's possible to ignore repositories which effectively
    aren't owned by the current user, or to not ignore them (default)
    but assign tigher permissions to the repository.

  • path::discover::existing() -> path::discover()

  • remove values::*Error in favor of value::parse::Error.
    This makes it easier to work with errors in practice, we are either
    interested in the value that failed to parse to try something else
    or want a nice user message.

    Having one decode error type facilitates that.

New Features (BREAKING)

  • use git-credentials in git-protocol

Commit Statistics

  • 106 commits contributed to the release over the course of 11 calendar days.
  • 43 days passed between releases.
  • 10 commits where understood as conventional.
  • 9 unique issues were worked on: #298, #301, #331, #382, #383, #384, #386, #389, #393

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #298
    • upgrade dependencies (b039d39)
    • adjust msrv to the one required by windows crates (0f141ca)
    • Support for in truncated history in git-describe (99365f2)
    • fix compile warnings (9a06fe1)
  • #301
    • update changelogs prior to release (84cb256)
    • adapt to changes in git-discover (bd281b8)
    • Adjust permissions mildly to make a little more sense (9c05629)
    • Don't have expectations on the path, rather deal with it gracefully (3a41d5c)
    • REMOVE ME: debug info for failing CI test (b0b3df4)
    • see if this fixes the CI test issue on windows (7697f51)
    • rely on absolutize_components() (e844006)
    • :discover()` now returns the shortest path. (e4f4c4b)
    • brutally fix path handling of common dirs (e120232)
    • Basic prefix support as well the first working version of exclude query (9cb8385)
    • Assure 'commondir' is actually resolved and not kept relative (3de63ff)
    • fix build (cb1c80f)
    • first working worktree tests for git-repository (508cdd2)
    • refactor (a89a667)
    • Permission controlled access to xdg config (42a6c8c)
    • refactor (6d9b2d9)
    • A new version of opening a repository while accepting environment overrides (9d73424)
    • preliminary access to a fully configured exclusion cache (259d015)
    • adjusts to changes in git-ref (b362fb5)
    • basic parsing for git-dir files (e11c677)
    • prepare for refactoring the overrides code (238e1b0)
    • refactor (a86ed7b)
    • fix build (d7dac11)
    • Avoid using Cow at all in favor of a simple &PartialNameref (1bc9a87)
    • remove values::*Error in favor of value::parse::Error. (38dfdcf)
    • See what it means to use Cow<PartialNameRef> (2ae129a)
    • Adjust to git-discovery to support linked worktrees in Kind type (2a99b7d)
    • refactor (807b7f8)
    • refactor repositoryKind adjusted to handle linked worktrees (84677cb)
    • A first version of opening index files with proper configuration (f11cc44)
    • adapt to changes in git-ref (21109ca)
    • Remove IntegerSuffix error which wasn't ever used (732c0fa)
    • Adjust to improvements to the git-config API (ffc5dec)
    • Handle potential issue with overrides using documentation (feb4eb2)
    • refactor how environment overrides work (99d98ec)
    • docs for git-glob (8f4969f)
    • fix build warnings (4496b5a)
    • fix docs (3366696)
    • adjust to changes in git-discover (3271979)
    • fix build (cb56f12)
    • Adapt to changes in git-config (61ea4c4)
    • refactor; add worktree id and determine main status of worktree (54be8e3)
    • properly handle common-dir on repo open (de0cc1b)
    • first step towards getting repos from worktree proxies (60d0433)
    • refactor (7b5fe1d)
    • Keep instantiation options in Repository for worktrees (d25c938)
  • #331
    • Use Integer::to_decimal() in git-repository (8fb95bf)
  • #382
  • #383
    • Use previously unused variable in fixture script (cfaf31f)
  • #384
    • No need to isolate archives by crate name (19d46f3)
    • add archive files via git-lfs (7202a1c)
    • auto-set commit.gpgsign=false when executing git (c23feb6)
  • #386
    • integrate trust model into repository discovery (80e8fd4)
    • path::discover::existing() -> path::discover() (2e39b0e)
    • more expressive and fuiture-proof handling of git dir access controls (b1d319b)
    • A first PoC to show how the permissions model works in practice (67d5837)
    • don't assume repos with work-trees are non-bare; make git-sec manadatory (9c4516d)
    • use git-credentials in git-protocol (32dc182)
  • #389
    • Commit::describe() now returns annnotated tags before lighweight ones and prefers more recent ones as well (a1680b4)
    • test all cases for the names filter in describe (0d9f6c6)
    • first crude fix (35019f2)
    • reproduce commit-describe name ordering issue (6d023e3)
  • #393
    • refactor (5044576)
    • Use the name state() instead of in_progress_operation() (e9b92f0)
    • refactor (6540869)
    • Add Repository::head_name(). (45920da)
  • Uncategorized
    • Release git-worktree v0.2.0, git-repository v0.17.0 (5845934)
    • Release git-ref v0.13.0, git-discover v0.1.0, git-index v0.3.0, git-mailmap v0.2.0, git-traverse v0.15.0, git-pack v0.19.0, git-odb v0.29.0, git-packetline v0.12.5, git-url v0.5.0, git-transport v0.17.0, git-protocol v0.16.0, git-revision v0.2.0, git-worktree v0.2.0, git-repository v0.17.0 (349c590)
    • Release git-hash v0.9.4, git-features v0.21.0, git-actor v0.10.0, git-glob v0.3.0, git-path v0.1.1, git-attributes v0.1.0, git-sec v0.1.0, git-config v0.3.0, git-credentials v0.1.0, git-validate v0.5.4, git-object v0.19.0, git-diff v0.16.0, git-lock v2.1.0, git-ref v0.13.0, git-discover v0.1.0, git-index v0.3.0, git-mailmap v0.2.0, git-traverse v0.15.0, git-pack v0.19.0, git-odb v0.29.0, git-packetline v0.12.5, git-url v0.5.0, git-transport v0.17.0, git-protocol v0.16.0, git-revision v0.2.0, git-worktree v0.2.0, git-repository v0.17.0, safety bump 20 crates (654cf39)
    • make fmt (e043807)
    • refactor (5ab5842)
    • Use a Cow for remote name handling (633a30d)
    • adjust to changes in git-ref (0671586)
    • allow reading information about remote branch (53c06c7)
    • Merge branch 'main' into msrv-for-windows (7cb1972)
    • make fmt (251b6df)
    • fix docs (5ee2307)
    • Merge branch 'main' into repo-status (9679d6b)
    • remove unused variant (da8059c)
    • Merge branch 'main' into repo-status (8122c5c)
    • Merge branch 'main' into git-sec (2fe70f9)
    • Clean up the error message and comments. (463a705)
    • thanks clippy (f802a03)
    • Print out some human readable text if GNU sed cannot be found. (cf19a18)
    • Merge branch 'main' into repo-status (0eb2372)
    • repo_path -> git_dir (53c22ee)
    • Let's try not parsing the git version. (475e7d1)
    • Take a couple more steps to appease the CI gods. (ac3c8c7)
    • Fix the GNU sed detection so it works where /usr/bin/sed is GNU. (5c162e0)
    • Make clippy happier. (a5406b5)
    • Pass version appropriate rebase flags to git. (bb18a13)
    • Add test coverage for RepositoryState::CherryPickSequence… (fc281d8)
    • Merge branch 'main' into repo-status (4086335)
    • Add a few tests for good measure. (499c811)
    • in_progress_operation now returns an Option (172b464)
    • Tweak the naming and comments a bit (56038ed)
    • First pass at Repository::in_progress_state() (c2f66e4)
    • Release git-glob v0.2.0, safety bump 3 crates (ab6bed7)
    • Merge branch 'main' into refs-and-worktrees (9cf0c7b)
    • Merge branch 'worktree-stack' (e90d3fd)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.