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

2 years ago

New Features

  • Object::peel_to_tree() as convenience method.
    It's very common to try to work with trees, so let's make that easier.

  • interrupt::Iter now allows accessing the inner iterator without consumption.
    This is useful if these provide additional out-of-band information.

  • Once a change is obtained, it's easy to obtain changes line by line.

  • obtain a refmap after listing refs via remote::Connection::list_refs_to_map().
    With it it's possible to establish a relationship between what's about
    to be fetched to local tracking branches as established by refspecs for
    fetching.

  • Add permissions::Config::git_binary field
    When true, default false, inject the git installation configuration file
    if present at the cost of one git config invocation.

    Note that we rely on the underlying git-config crate to not load
    duplicate files.

    We also currently lie about the scope which is actually unclear - have
    seen 'unknown' or normal scopes like system.

  • add prompt to top level forwarding #450)

Bug Fixes

  • rev-spec parsing can now handle the empty tree as full hex hash.
    Even though the empty-tree object can be found when searched via
    Repository::find_object(), previously it was not locatable when
    used during rev-spec parsing.
  • Reference::remote() can produce remotes for URLs

Refactor

  • use specific error type for rev_parse_single()

Changed (BREAKING)

  • upgrade bstr to 1.0.1

New Features (BREAKING)

  • Add reference remote name type to make usage of remote_name() result clear

Other (BREAKING)

  • Tree::lookup_path() -> Tree::lookup_entry().

Commit Statistics

  • 95 commits contributed to the release over the course of 19 calendar days.
  • 19 days passed between releases.
  • 12 commits were understood as conventional.
  • 2 unique issues were worked on: #450, #470

Thanks Clippy

Clippy helped 6 times to make code idiomatic.

Commit Details

view details
  • #450
    • adapt to changes in git-refspec (91d1a3a)
    • show fixes as well (2237495)
    • Add method to allow replacing a Remote's refspecs entirely. (d8f1608)
    • produce only a ref-map as it contains all data somebody would want. (c9ff885)
    • adjust to changes in git-config (0f9833a)
    • also provide the spec-index with the returned refmap. (910cedc)
    • Provide all information generated by the handshake into the refmap result (3958d71)
    • adjust to changes in git-refspec (ffa24a1)
    • obtain a refmap after listing refs via remote::Connection::list_refs_to_map(). (7e96d18)
    • A step closer to actually obtaining a validated ref-mapping. (777ba7f)
    • A more concrete sketch of how the API for obtaining mappings should look like (6d1c372)
    • sketch API for obtaining a reflist filtered by refspecs (5d5e211)
    • Extract URL from transport to support custom remotes better and avoid error case (fac87d0)
    • use Rust credential implementation (fb39608)
    • upgrade bstr to 1.0.1 (99905ba)
    • refactor (9e4e4c4)
    • adjust to changes in git-sec (d6ef2ce)
    • adjust to changes in git-ref (296f23f)
    • adjust to changes in git-object (9aadac3)
    • Select gix commands will now load the git installation configuration (23d2dec)
    • Add permissions::Config::git_binary field (d51e7c9)
    • A way to parse the first git-config file path (ea52e4e)
    • first step towards efficiently obtaining git config information (cc78473)
    • fix exports to allow error type to be visible publicly (b978619)
    • Also provide prompt configuration to allow Cascade::invoke() to be called with all arguments (5b4cb83)
    • Add reference remote name type to make usage of remote_name() result clear (2992b1b)
    • refactor (93ac4c3)
    • remark about improvements to the type system around certain remote names. (a872bf7)
    • Reference::remote() can produce remotes for URLs (74ede20)
    • refactor (4fa8a84)
    • test our understanding of case-folding when matching urls (77c27eb)
    • subdomain globbing works (5b19729)
    • tests for domain globbing (60d8997)
    • more default-port tests (eb34156)
    • username matching works (b99e9d8)
    • All but one test work after username handling refactor (64b6b30)
    • better normalization and clear-list support (5aefe66)
    • remove glob-matching as it's not correct (6f4e052)
    • refactor (593e4a8)
    • more tests for better host and protocol matching of http and https urls (2221778)
    • Support for host-based matching (2d81b9f)
    • basic url matching with a simple glob (1b19611)
    • Make tests more robust; fix windows tests (1983fbc)
    • tests as far as possible without implementing url matching (8c686e0)
    • mark a difference in the way credential helper urls are validated (dc57b67)
    • the first successful url matching test (beddce1)
  • #470
    • update changelogs prior to release (caa7a1b)
    • Object::peel_to_tree() as convenience method. (0871a96)
    • fix docs (593f57b)
    • Add note on why we consume the tree for looking up an entry. (b285097)
    • Tree::lookup_path() -> Tree::lookup_entry(). (79c2255)
    • simplify looking up entries by path (15a18e4)
    • a little more complexity for diff tests (5878ad1)
    • interrupt::Iter now allows accessing the inner iterator without consumption. (1027be9)
    • Once a change is obtained, it's easy to obtain changes line by line. (8c2e5c6)
    • Slightly improved docs for traversal docs. (963055b)
    • performance note (0670468)
    • Support for Path tracking (64bbb3d)
    • rev-spec parsing can now handle the empty tree as full hex hash. (ae38660)
    • refactor (9d01fb4)
    • refactor (90b9c90)
    • fix docs (9b7aaa0)
    • improved usability of the Action enum (d04807b)
    • Support for file-name tracking (88c4a57)
    • Provisions for tracking the location of a change. (7fd9b0e)
    • first test for simple file modification detection (a9056fd)
    • allow user callbacks to have any error (5be96b3)
    • break through API surface and sketch delegate calling user-provided function (e51f3cd)
    • diff platform for basic diff configuration (c857b9b)
    • refactor (a938fe4)
    • refactor (6ac7dbe)
  • Uncategorized
    • Release git-hash v0.9.10, git-features v0.22.5, git-date v0.2.0, git-actor v0.12.0, git-glob v0.4.0, git-path v0.5.0, git-quote v0.3.0, git-attributes v0.4.0, git-config-value v0.8.0, git-tempfile v2.0.5, git-validate v0.6.0, git-object v0.21.0, git-ref v0.16.0, git-sec v0.4.0, git-config v0.8.0, git-discover v0.5.0, git-traverse v0.17.0, git-index v0.5.0, git-worktree v0.5.0, git-testtools v0.9.0, git-command v0.1.0, git-prompt v0.1.0, git-url v0.9.0, git-credentials v0.5.0, git-diff v0.19.0, git-mailmap v0.4.0, git-chunk v0.3.2, git-pack v0.23.0, git-odb v0.33.0, git-packetline v0.13.0, git-transport v0.20.0, git-protocol v0.20.0, git-revision v0.5.0, git-refspec v0.2.0, git-repository v0.24.0, git-commitgraph v0.9.0, gitoxide-core v0.18.0, gitoxide v0.16.0, safety bump 28 crates (29a043b)
    • thanks clippy (77ff8ae)
    • make fmt (429cccc)
    • avoid risking comparing two different current-time timestamps (389cb2a)
    • thanks clippy (52fa247)
    • Merge branch 'filter-refs' (fd14489)
    • Merge branch 'index-from-tree' (172f73c)
    • use specific error type for rev_parse_single() (f5959ed)
    • use rev_parse_single() instead of rev_parse().single() (09948a5)
    • new error for rev_parse_single (9491528)
    • Merge branch 'git_date_relative' (83a3832)
    • rev_parse_single (d9097ab)
    • make fmt (535e967)
    • thanks clippy (ab81525)
    • add prompt to top level forwarding #450) (1c13f11)
    • Merge branch 'main' into filter-refs-by-spec (9aa1d3d)
    • Release git-features v0.22.4, git-url v0.8.0, safety bump 4 crates (1d4600a)
    • thanks clippy (34bc1b3)
    • Merge branch 'main' into filter-refs-by-spec (1f6e5ab)
    • Merge branch 'git_date_parse' (75591fb)
    • thanks clippy (82ee79e)
    • thanks clippy (97e23dd)
    • Release git-hash v0.9.9 (da0716f)
    • Merge branch 'main' into filter-refs-by-spec (51dc828)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.