Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.15.0 (2022-07-22)
New Features
- Add
store::WriteRefLog::Alwaysto unconditionally write reflogs.
Changed (BREAKING)
-
Target(Ref)?::try_name()now returnsOption<&FullNameRef>. That way, the name is actually directly usable in most methods that require a validated name as input.
Commit Statistics
- 10 commits contributed to the release over the course of 33 calendar days.
- 39 days passed between releases.
- 2 commits where understood as conventional.
- 1 unique issue was worked on: #331
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
- #331
- Uncategorized
- prepare changelog prior to release (
3c50625) - assure document-features are available in all 'usable' and 'early' crates (
238581c) - Merge branch 'main' into cont_include_if (
daa71c3) - Merge branch 'normalize-values' (
4e8cc7a) - thanks clippy (
e1003d5) - Merge branch 'main' into cont_include_if (
0e9df36) - generally avoid using
target_os = "windows"in favor ofcfg(windows)and negations (91d5402) - Release git-path v0.3.0, safety bump 14 crates (
400c9be)
- prepare changelog prior to release (
0.14.0 (2022-06-13)
A maintenance release without user-facing changes.
Commit Statistics
- 3 commits contributed to the release.
- 25 days passed between releases.
- 0 commits where understood as conventional.
- 0 issues like '(#ID)' where seen in commit messages
Commit Details
view details
- Uncategorized
- Release git-date v0.0.1, git-hash v0.9.5, git-features v0.21.1, git-actor v0.10.1, git-path v0.2.0, git-attributes v0.2.0, git-ref v0.14.0, git-sec v0.2.0, git-config v0.5.0, git-credentials v0.2.0, git-discover v0.2.0, git-pack v0.20.0, git-odb v0.30.0, git-url v0.6.0, git-transport v0.18.0, git-protocol v0.17.0, git-revision v0.2.1, git-worktree v0.3.0, git-repository v0.19.0, safety bump 13 crates (
a417177) - update changelogs prior to release (
bb424f5) - make fmt (
c665aef)
- Release git-date v0.0.1, git-hash v0.9.5, git-features v0.21.1, git-actor v0.10.1, git-path v0.2.0, git-attributes v0.2.0, git-ref v0.14.0, git-sec v0.2.0, git-config v0.5.0, git-credentials v0.2.0, git-discover v0.2.0, git-pack v0.20.0, git-odb v0.30.0, git-url v0.6.0, git-transport v0.18.0, git-protocol v0.17.0, git-revision v0.2.1, git-worktree v0.3.0, git-repository v0.19.0, safety bump 13 crates (
0.13.0 (2022-05-18)
New Features
- ref iteration for worktrees. It merges the iteration result of private worktree refs along with all shared common references references.
-
Category::LinkedRefWith it one can access all refs as advertised. -
Category::MainRefWith it it will be possible to compute all paths correctly and actually perform certain operations as documented. -
Category::(WorktreePrivate|Bisect|Rewritten) -
Category::LinkedPseudoRef - Add
Category::MainPseudoRef -
Category::PseudoRef
Changed (BREAKING)
-
Transaction::commit(…)takesgit-actor::SignatureRefinstead of…::Signature. This makes the API more versatile and corrects a shortcoming that was caused bySignatureRefpreviously being unable to serialize itself. -
remove
FullName::to_ref()in favor of•::as_ref(). This became possible now thatFullNameRefis a proper ref, not just ref-like. -
rename
PartialNameReftoPartialNameCowBecause this is what it is, which also implies that it's notCopyanymore which aRefwould definitely be.The reason we need this to be a
Cowis to support passing ownership. -
remove
Storefrom public API It is unclear if ref-tables, which are the reason for it to exist in the first place, will fit into the concept as they might not support worktrees. It's entirely unclear how this works.Maybe there can be a non-worktree version of the store with work-trees only being supported by the file based ref database, and ref-tables remaining a server-side feature.
-
rename
file::Store::base()togit_dir(). That way it is clearer what it actually is especially in presence of the newly addedfile::Store::common_dir()method.That way, work-trees can eventually be properly supported.
New Features (BREAKING)
- Turn
FullNameRefinto an actual reference type. That wayCow<'_, FullNameRef>works as expected.
Commit Statistics
- 110 commits contributed to the release over the course of 42 calendar days.
- 43 days passed between releases.
- 13 commits where understood as conventional.
- 4 unique issues were worked on: #298, #301, #384, #393
Thanks Clippy
Clippy helped 8 times to make code idiomatic.
Commit Details
view details
- #298
- #301
- update changelogs prior to release (
84cb256) - ref iteration for worktrees. (
4a5176a) - down to one borrowcheck error (
7571be5) - possibly a step towards solving this traversal… (
c64a77f) - prepare for dual-iteration (
200384c) - make a common-dir iterator available (
78658c7) - refactor (
5521391) - try all prefixes when producing a relative path for error purposes (
8cf0302) - restore previous non-namespace test (
ba17b40) - refactor (
1b3a6da) - refactor (
7777f7e) - represent loose iteration in terms of the overlay iterator (
ad37a64) - start preparing for multi-loose ref iteration, but… (
014459b) - validate traversal of main repository refs in presence of worktrees (
f067286) - refactor (
c2ac110) - simplify worktree test to not include superfluous refs (
c46d838) - Assure proper handling of transactions in linked worktrees (
07dc555) - Humble beginnings of transaction testing within worktrees (
6f52606) - many more tests around transactions and prefix handling (
8f3a4b5) - assure that private worktree refs have their reflogs written (
96efbb1) - Properly adjust names for prefixed refs for use in packed-refs and filter them (
797af14) - prepare for filtering soon to be packed refs by name (
3cea2ad) - uncover issue naming of refs written to packed-refs (
1acf875) - a first test of main worktree transactions incl. changelog (
9c5ab38) - adjusts to changes in git-ref (
b362fb5) Transaction::commit(…)takesgit-actor::SignatureRefinstead of…::Signature. (3d6299f)- first rough step towards support iteration (
b987575) - prepare for tests that can write into our test repositories (
096ee5f) - improve reflog base generation in transactions so it could possibly work (
d69b56e) - Improve conversions as much as possible (
befe949) - validate that owned values indeed can't be passed anymore (
c78008e) - Avoid using
Cowat all in favor of a simple&PartialNameref(1bc9a87) - This didn't get better, but probably will stay that way (
7da239f) - See what it means to use
Cow<PartialNameRef>(2ae129a) - All custom TryFrom implementations for Cow (
15afec1) - Cow support for PartialNameRef (
3e470da) - adapt to changes in git-ref (
21109ca) - remove
FullName::to_ref()in favor of•::as_ref(). (f1dbb6b) - reflog handling for worktree/ ref-names (
77877e0) - parse the worktree name as part of the cateogry (
7666034) - refactor (
cebf736) - more fixes for worktree ref handling (
1aa546d) - better packed refs lookup for worktree refs (
2b6982e) - fix bugs with name resolution (
3031f99) - Assure
main-worktreeis also resolved in the main worktree (bc3c05e) - assure nobody can bypass the namespace anymore (
0079ab6) - frame for tests in worktree and main repositories (
b12884a) - Assure namespaces are respected when calculating bases (
4aac3c2) - fix docs (
e189914) - transactions fully rely on proper base (
d3a12e3) - packed-refs now use correct common dir (
dd7be18) - reflog paths are now computed according to their ref name (
c4d2493) - refactor (
e93c222) - first draft of fixture setup for worktrees (
a25b0bc) - use suitable full names for store based packed-refs lookup too (
d25b3ca) - packed-refs can now possibly transform names for lookup correctly (
6478736) - Offer a way to search packed refs by full name only (
ae57e27) - Also build what should be a valid path for loose-ref lookup (
37deca5) - refactor (
19d53fb) - refactor (
32b8fde) - refactor (
09eb432) - refactor (
f83910f) - Loose ref lookup uses categories for refanames (
61b449c) - prepare for switch to category based base-path lookup (
14c6f48) - Unify pseudo-ref check for find reference (
8c52fe4) - Admit that we need PartialPathCow and can't work around it (
202bafc) - rename
PartialNameReftoPartialNameCow(1611c3d) - refactor (
4e26e62) - refactor (
a611224) - refactor (
467d583) - refactor (
3574a4e) Category::LinkedRef(9cccce3)Category::MainRef(eada5df)Category::(WorktreePrivate|Bisect|Rewritten)(0304b7f)Category::LinkedPseudoRef(612a2db)- Add
Category::MainPseudoRef(613b584) Category::PseudoRef(6ccfea9)- remove
Storefrom public API (8a92ec9) - rename
file::Store::base()togit_dir(). (2becffc) - adapt to changes in git-path (
cc2d810) - adapt to all changes in git-path with bstr support (
f158648) - Use
git-pathcrate instead ofgit_features::path(47e607d) - adjustments to go along with changes in git-features (
c55cac6) - make fmt (
50ff7aa)
- update changelogs prior to release (
- #384
- #393
- Add support for disabling archive usage (
624ad2e)
- Add support for disabling archive usage (
- Uncategorized
- 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) - fix git-ref dependencies (
633e571) - 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) - thanks clippy (
4cff7a8) - thanks clippy (
a20d282) - thanks clippy (
c208912) - Merge branch 'main' into refs-and-worktrees (
9cf0c7b) - Turn
FullNameRefinto an actual reference type. (0ace957) - A sketch to show how Cow could work (
c6b2705) - thanks clippy (
61d6d93) - thanks clippy (
6291015) - thanks clippy (
22ee920) - refactor (
6149978) - thanks clippy (
405d94d) - thanks clippy (
a7ac64c) - Merge branch 'git_includeif' of https://github.com/svetli-n/gitoxide into svetli-n-git_includeif (
0e01da7) - Merge branch 'mzr-fix_empty_values' (
09c8628) - fix clippy - many false positives this time (
045e6fa) - fix clippy - many false positives this time (
099bd5b)
- 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 (
0.12.1 (2022-04-05)
Changed (BREAKING)
-
rename
PartialNameReftoPartialNameCowBecause this is what it is, which also implies that it's notCopyanymore which aRefwould definitely be.The reason we need this to be a
Cowis to support passing ownership. -
remove
Storefrom public API It is unclear if ref-tables, which are the reason for it to exist in the first place, will fit into the concept as they might not support worktrees. It's entirely unclear how this works.Maybe there can be a non-worktree version of the store with work-trees only being supported by the file based ref database, and ref-tables remaining a server-side feature.
-
rename
file::Store::base()togit_dir(). That way it is clearer what it actually is especially in presence of the newly addedfile::Store::common_dir()method.That way, work-trees can eventually be properly supported.
New Features
- add
FullName(Ref)::category_and_shortname()It's a combination ofshorten()andcategory()for convenience. -
Category::LinkedRefWith it one can access all refs as advertised. -
Category::MainRefWith it it will be possible to compute all paths correctly and actually perform certain operations as documented. -
Category::(WorktreePrivate|Bisect|Rewritten) -
Category::LinkedPseudoRef - Add
Category::MainPseudoRef -
Category::PseudoRef
Commit Statistics
- 3 commits contributed to the release over the course of 2 calendar days.
- 2 days passed between releases.
- 1 commit where understood as conventional.
- 1 unique issue was worked on: #364
Commit Details
0.12.0 (2022-04-03)
New Features
-
Fullname(Ref)::category()andCategoryA way to classify references. - FullName(Ref)::strip_prefix() Get a short-hand for any reference name.
- Add
git_config::values::Pathfor a typesafe git path Add aPathtype to thegit_config::valueswhich can be interpolated according to gits own path interpolation rules. - FullNameRef::file_name()
- Display implementation for
FullName.
Bug Fixes
- support Rust 1.52
Changed (BREAKING)
-
Target::as_(id|name)->Target::try_(id|name)Conform to naming conventions, whenever something returns an option or Result while there is a more direct name that panics, prefixtry_.
Commit Statistics
- 32 commits contributed to the release over the course of 68 calendar days.
- 69 days passed between releases.
- 5 commits where understood as conventional.
- 6 unique issues were worked on: #298, #301, #329, #331, #333, #364
Thanks Clippy
Clippy helped 3 times to make code idiomatic.
Commit Details
view details
- #298
- #301
- #329
- Document all features related to serde1 (
72b97f2)
- Document all features related to serde1 (
- #331
- Add
git_config::values::Pathfor a typesafe git path (e4d6685)
- Add
- #333
- Use git_features::path everywhere where there is a path conversion (
2e1437c) - remove os-str-bytes everywhere (
71a086a) - Found one valid case for using os-str-bytes (
9c294bf) - Make real clear panics are only possible on windows (
6b283dc) - one usage of os_str_bytes down, along with some custom conversion code (
1cc95ce) - gitoxide-core without os-str-bytes (
909aa14) - Don't use os_str_ext in git-features; adapt git-ref (
9258b7b) - Use new git-features::path module (
7c53b27)
- Use git_features::path everywhere where there is a path conversion (
- #364
- Uncategorized
- Release git-diff v0.14.0, git-bitmap v0.1.0, git-index v0.2.0, git-tempfile v2.0.1, git-lock v2.0.0, git-mailmap v0.1.0, git-traverse v0.13.0, git-pack v0.17.0, git-quote v0.2.0, git-odb v0.27.0, git-packetline v0.12.4, git-url v0.4.0, git-transport v0.16.0, git-protocol v0.15.0, git-ref v0.12.0, git-worktree v0.1.0, git-repository v0.15.0, cargo-smart-release v0.9.0, safety bump 5 crates (
e58dc30) - 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) - thanks clippy (
2066a80) - adapt to breaking changes in git-actor (
40c48c3) - Release git-tempfile v2.0.0, safety bump 6 crates (
90b1c42) - thanks clippy (
a8e9497) - thanks clippy (
f242a24) - Merge branch 'AP2008-implement-worktree' (
f32c669) - Release git-actor v0.8.1 (
08fe550) - Release git-hash v0.9.2, git-object v0.17.1, git-pack v0.16.1 (
0db19b8) - Merge branch 'index-information' (
025f157)
- Release git-diff v0.14.0, git-bitmap v0.1.0, git-index v0.2.0, git-tempfile v2.0.1, git-lock v2.0.0, git-mailmap v0.1.0, git-traverse v0.13.0, git-pack v0.17.0, git-quote v0.2.0, git-odb v0.27.0, git-packetline v0.12.4, git-url v0.4.0, git-transport v0.16.0, git-protocol v0.15.0, git-ref v0.12.0, git-worktree v0.1.0, git-repository v0.15.0, cargo-smart-release v0.9.0, safety bump 5 crates (
0.11.0 (2022-01-23)
New Features
- FullNameRef::file_name()
- Add file::Store::find_packed(…, buffer) This makes the API complete as now there is a methods that uses the internal buffer, or the provided one, where both can have its benefits.
- add Reference::peel_to_id_in_place_packed() and Reference::follow_packed() This allows a stable/non-changing buffer to be used.
Bug Fixes
- support Rust 1.52
Changed (BREAKING)
- Required
object_hashas parameter when instantiating any Store This is needed to choose the correct kind of object hash in a couple of situations, and future-proofs it for when ref-table arrives. - remove
Target::must_exist()It was a remainder of an old API which since has been replaced with a more explicit approach. - remove pack-cache from
Find::try_find(…)With the new architecture this can be an implementation detail without forcing it to be Sync. - move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait This will break a lot, but has to happen to prepare these traits for the next generation of object databases.
Commit Statistics
- 27 commits contributed to the release over the course of 55 calendar days.
- 55 days passed between releases.
- 8 commits where understood as conventional.
- 5 unique issues were worked on: #263, #266, #279, #293, #298
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
- #263
- Don't unnecessarily reload the packed-refs buffer under contention (
3ab990e) - Use a read-lock until mutation is needed, instead of upgradable rw locks (
58294dd) - refactor (
e41ab82) - Add file::Store::find_packed(…, buffer) (
f6181af) - add Reference::peel_to_id_in_place_packed() and Reference::follow_packed() (
03bcac2)
- Don't unnecessarily reload the packed-refs buffer under contention (
- #266
- #279
- #293
- git-ref uses memmap2 (
4dec3ea)
- git-ref uses memmap2 (
- #298
- FullNameRef::file_name() (
28e3251)
- FullNameRef::file_name() (
- Uncategorized
- Release git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
b286b24) - Release git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
42ebb53) - Release git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
1b76119) - Release git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
8f57c29) - Release git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
d78aab7) - Release git-hash v0.9.1, git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0, safety bump 4 crates (
373cbc8) - prepar changelogs for cargo-smart-release release (
8900d69) - support Rust 1.52 (
42e0487) - 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) - thanks clippy (
7dd2313)
- Release git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
Lines 1–500 of 1625. Load more
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## 0.15.0 (2022-07-22) ### New Features - <csr-id-4607a18e24b8270c182663a434b79dff8761db0e/> Add `store::WriteRefLog::Always` to unconditionally write reflogs. ### Changed (BREAKING) - <csr-id-0f753e922e313f735ed267f913366771e9de1111/> `Target(Ref)?::try_name()` now returns `Option<&FullNameRef>`. That way, the name is actually directly usable in most methods that require a validated name as input. ### Commit Statistics <csr-read-only-do-not-edit/> - 10 commits contributed to the release over the course of 33 calendar days. - 39 days passed between releases. - 2 commits where understood as [conventional](https://www.conventionalcommits.org). - 1 unique issue was worked on: [#331](https://github.com/Byron/gitoxide/issues/331) ### Thanks Clippy <csr-read-only-do-not-edit/> [Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **[#331](https://github.com/Byron/gitoxide/issues/331)** - `Target(Ref)?::try_name()` now returns `Option<&FullNameRef>`. ([`0f753e9`](https://github.com/Byron/gitoxide/commit/0f753e922e313f735ed267f913366771e9de1111)) - Add `store::WriteRefLog::Always` to unconditionally write reflogs. ([`4607a18`](https://github.com/Byron/gitoxide/commit/4607a18e24b8270c182663a434b79dff8761db0e)) * **Uncategorized** - prepare changelog prior to release ([`3c50625`](https://github.com/Byron/gitoxide/commit/3c50625fa51350ec885b0f38ec9e92f9444df0f9)) - assure document-features are available in all 'usable' and 'early' crates ([`238581c`](https://github.com/Byron/gitoxide/commit/238581cc46c7288691eed37dc7de5069e3d86721)) - Merge branch 'main' into cont_include_if ([`daa71c3`](https://github.com/Byron/gitoxide/commit/daa71c3b753c6d76a3d652c29237906b3e28728f)) - Merge branch 'normalize-values' ([`4e8cc7a`](https://github.com/Byron/gitoxide/commit/4e8cc7a5b447656c744cd84e6521e620d0479acb)) - thanks clippy ([`e1003d5`](https://github.com/Byron/gitoxide/commit/e1003d5fdee5d4439c0cf0286c67dec9b5e34f53)) - Merge branch 'main' into cont_include_if ([`0e9df36`](https://github.com/Byron/gitoxide/commit/0e9df364c4cddf006b1de18b8d167319b7cc1186)) - generally avoid using `target_os = "windows"` in favor of `cfg(windows)` and negations ([`91d5402`](https://github.com/Byron/gitoxide/commit/91d54026a61c2aae5e3e1341d271acf16478cd83)) - Release git-path v0.3.0, safety bump 14 crates ([`400c9be`](https://github.com/Byron/gitoxide/commit/400c9bec49e4ec5351dc9357b246e7677a63ea35)) </details> ## 0.14.0 (2022-06-13) A maintenance release without user-facing changes. ### Commit Statistics <csr-read-only-do-not-edit/> - 3 commits contributed to the release. - 25 days passed between releases. - 0 commits where understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' where seen in commit messages ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **Uncategorized** - Release git-date v0.0.1, git-hash v0.9.5, git-features v0.21.1, git-actor v0.10.1, git-path v0.2.0, git-attributes v0.2.0, git-ref v0.14.0, git-sec v0.2.0, git-config v0.5.0, git-credentials v0.2.0, git-discover v0.2.0, git-pack v0.20.0, git-odb v0.30.0, git-url v0.6.0, git-transport v0.18.0, git-protocol v0.17.0, git-revision v0.2.1, git-worktree v0.3.0, git-repository v0.19.0, safety bump 13 crates ([`a417177`](https://github.com/Byron/gitoxide/commit/a41717712578f590f04a33d27adaa63171f25267)) - update changelogs prior to release ([`bb424f5`](https://github.com/Byron/gitoxide/commit/bb424f51068b8a8e762696890a55ab48900ab980)) - make fmt ([`c665aef`](https://github.com/Byron/gitoxide/commit/c665aef4270c5ee54da89ee015cc0affd6337608)) </details> ## 0.13.0 (2022-05-18) ### New Features - <csr-id-4a5176a78b64981ce5612b88c7736b7323aa8cdd/> ref iteration for worktrees. It merges the iteration result of private worktree refs along with all shared common references references. - <csr-id-9cccce35e527cdda58e01b03cd335a527418cf14/> `Category::LinkedRef` With it one can access all refs as advertised. - <csr-id-eada5dfdd4981dbb032e8f155e3829eb5d1f380f/> `Category::MainRef` With it it will be possible to compute all paths correctly and actually perform certain operations as documented. - <csr-id-0304b7fad3ae5e3ac1fea71e30658474a770184b/> `Category::(WorktreePrivate|Bisect|Rewritten)` - <csr-id-612a2dbf7f70a8eb44b7278fccd4f1589749968a/> `Category::LinkedPseudoRef` - <csr-id-613b5844e74535d391339bd8e7c106e18257b917/> Add `Category::MainPseudoRef` - <csr-id-6ccfea97d30dbfa013e1633c77c5a26ab5cbaf8f/> `Category::PseudoRef` ### Changed (BREAKING) - <csr-id-3d6299f47f41397c1c72035a86b94d1c263b5b98/> `Transaction::commit(…)` takes `git-actor::SignatureRef` instead of `…::Signature`. This makes the API more versatile and corrects a shortcoming that was caused by `SignatureRef` previously being unable to serialize itself. - <csr-id-f1dbb6bd4534527b6f1f2aba2a562dd4e64cf55d/> remove `FullName::to_ref()` in favor of `•::as_ref()`. This became possible now that `FullNameRef` is a proper ref, not just ref-like. - <csr-id-1611c3ddff6c930deaa4c2440383f5684c029b28/> rename `PartialNameRef` to `PartialNameCow` Because this is what it is, which also implies that it's not `Copy` anymore which a `Ref` would definitely be. The reason we need this to be a `Cow` is to support passing ownership. - <csr-id-8a92ec9834b6d5aa3057c5509f6c13b6a6cd6e1b/> remove `Store` from public API It is unclear if ref-tables, which are the reason for it to exist in the first place, will fit into the concept as they might not support worktrees. It's entirely unclear how this works. Maybe there can be a non-worktree version of the store with work-trees only being supported by the file based ref database, and ref-tables remaining a server-side feature. - <csr-id-2becffc85ff6225522fe38482739fb1406ae1060/> rename `file::Store::base()` to `git_dir()`. That way it is clearer what it actually is especially in presence of the newly added `file::Store::common_dir()` method. That way, work-trees can eventually be properly supported. ### New Features (BREAKING) - <csr-id-0ace957c595c8a38afb7de1462cdc73b617d2a76/> Turn `FullNameRef` into an actual reference type. That way `Cow<'_, FullNameRef>` works as expected. ### Commit Statistics <csr-read-only-do-not-edit/> - 110 commits contributed to the release over the course of 42 calendar days. - 43 days passed between releases. - 13 commits where understood as [conventional](https://www.conventionalcommits.org). - 4 unique issues were worked on: [#298](https://github.com/Byron/gitoxide/issues/298), [#301](https://github.com/Byron/gitoxide/issues/301), [#384](https://github.com/Byron/gitoxide/issues/384), [#393](https://github.com/Byron/gitoxide/issues/393) ### Thanks Clippy <csr-read-only-do-not-edit/> [Clippy](https://github.com/rust-lang/rust-clippy) helped 8 times to make code idiomatic. ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **[#298](https://github.com/Byron/gitoxide/issues/298)** - Enforce path conversion on windows gnu, it doesn't seem to like slashes ([`4d55a8f`](https://github.com/Byron/gitoxide/commit/4d55a8f99f2a0b7c0c4ed70a615b7e58b5bee04b)) - mention that failing path when a ref-file couldn't be read ([`ecb539a`](https://github.com/Byron/gitoxide/commit/ecb539a4c12696ecb4384af2a16c381fb7980d95)) * **[#301](https://github.com/Byron/gitoxide/issues/301)** - update changelogs prior to release ([`84cb256`](https://github.com/Byron/gitoxide/commit/84cb25614a5fcddff297c1713eba4efbb6ff1596)) - ref iteration for worktrees. ([`4a5176a`](https://github.com/Byron/gitoxide/commit/4a5176a78b64981ce5612b88c7736b7323aa8cdd)) - down to one borrowcheck error ([`7571be5`](https://github.com/Byron/gitoxide/commit/7571be5388d766afd88f224a6eab652659d38bfe)) - possibly a step towards solving this traversal… ([`c64a77f`](https://github.com/Byron/gitoxide/commit/c64a77f09e2d8a1904704aaab4018a66a7e8417b)) - prepare for dual-iteration ([`200384c`](https://github.com/Byron/gitoxide/commit/200384c4efbfb7438d192c7060b594f01df6b189)) - make a common-dir iterator available ([`78658c7`](https://github.com/Byron/gitoxide/commit/78658c75c02fc9fc1b31fe2e24dd19ec16a8d477)) - refactor ([`5521391`](https://github.com/Byron/gitoxide/commit/5521391d8b2369ffa5f78617b97793276480a96b)) - try all prefixes when producing a relative path for error purposes ([`8cf0302`](https://github.com/Byron/gitoxide/commit/8cf0302bc75aed6e78adf7b855b0a28f2fa15616)) - restore previous non-namespace test ([`ba17b40`](https://github.com/Byron/gitoxide/commit/ba17b40d7e22f1607ee7d8d206a136d307289591)) - refactor ([`1b3a6da`](https://github.com/Byron/gitoxide/commit/1b3a6dacd55894f12dfa58ae5726f3b231dbe165)) - refactor ([`7777f7e`](https://github.com/Byron/gitoxide/commit/7777f7e62e54d80e183d6bfc831950ca9c40e40d)) - represent loose iteration in terms of the overlay iterator ([`ad37a64`](https://github.com/Byron/gitoxide/commit/ad37a64550e9e14bbdb88c04d2f1a367af01ca62)) - start preparing for multi-loose ref iteration, but… ([`014459b`](https://github.com/Byron/gitoxide/commit/014459bf200204f69fc63481cd4e50caf70f21da)) - validate traversal of main repository refs in presence of worktrees ([`f067286`](https://github.com/Byron/gitoxide/commit/f06728662834b89449cc4ec379a80ab778544e3b)) - refactor ([`c2ac110`](https://github.com/Byron/gitoxide/commit/c2ac1107e840cf64d9ac33bc66d2a56586e0d06a)) - simplify worktree test to not include superfluous refs ([`c46d838`](https://github.com/Byron/gitoxide/commit/c46d8383db0c6c2c57a3bf0544520d8dc05adf5d)) - Assure proper handling of transactions in linked worktrees ([`07dc555`](https://github.com/Byron/gitoxide/commit/07dc5558cb872112d7c47494390b3e0db110edb6)) - Humble beginnings of transaction testing within worktrees ([`6f52606`](https://github.com/Byron/gitoxide/commit/6f52606c395eee0b3cc98c11c84a17dd2636295d)) - many more tests around transactions and prefix handling ([`8f3a4b5`](https://github.com/Byron/gitoxide/commit/8f3a4b5587f37c1a9894b13617133c50bd3d2a1d)) - assure that private worktree refs have their reflogs written ([`96efbb1`](https://github.com/Byron/gitoxide/commit/96efbb10ab6c50606bc7fbacb9fdace77b5859e9)) - Properly adjust names for prefixed refs for use in packed-refs and filter them ([`797af14`](https://github.com/Byron/gitoxide/commit/797af14a44d1208848253ad27c6d4ec8e4e45831)) - prepare for filtering soon to be packed refs by name ([`3cea2ad`](https://github.com/Byron/gitoxide/commit/3cea2ad03de875a1613580eeac1b5aeca9934ef0)) - uncover issue naming of refs written to packed-refs ([`1acf875`](https://github.com/Byron/gitoxide/commit/1acf87531fb41ebc7b6200417b05cbd9cfc58313)) - a first test of main worktree transactions incl. changelog ([`9c5ab38`](https://github.com/Byron/gitoxide/commit/9c5ab38a1fbe45c95b6073949ddec4c3f42e9dbe)) - adjusts to changes in git-ref ([`b362fb5`](https://github.com/Byron/gitoxide/commit/b362fb594546400e6c42688103df438954df7eeb)) - `Transaction::commit(…)` takes `git-actor::SignatureRef` instead of `…::Signature`. ([`3d6299f`](https://github.com/Byron/gitoxide/commit/3d6299f47f41397c1c72035a86b94d1c263b5b98)) - first rough step towards support iteration ([`b987575`](https://github.com/Byron/gitoxide/commit/b98757562527b703740e96086204577287351e81)) - prepare for tests that can write into our test repositories ([`096ee5f`](https://github.com/Byron/gitoxide/commit/096ee5fc9b226b26b808d9aa14dc3c53e125b356)) - improve reflog base generation in transactions so it could possibly work ([`d69b56e`](https://github.com/Byron/gitoxide/commit/d69b56e7f0104a0d8981777f1d3947b8a6a0b39e)) - Improve conversions as much as possible ([`befe949`](https://github.com/Byron/gitoxide/commit/befe949b40d6201d35e4622725f5ad3c6d0315d4)) - validate that owned values indeed can't be passed anymore ([`c78008e`](https://github.com/Byron/gitoxide/commit/c78008e4d8b7cc68c2c04d344ec3388fe42d9d9f)) - Avoid using `Cow` at all in favor of a simple `&PartialNameref` ([`1bc9a87`](https://github.com/Byron/gitoxide/commit/1bc9a875d2b09b906f40db9e2c031c99e4fd9928)) - This didn't get better, but probably will stay that way ([`7da239f`](https://github.com/Byron/gitoxide/commit/7da239fb0ee42fd5148fa6524e5bfecf51d19cee)) - See what it means to use `Cow<PartialNameRef>` ([`2ae129a`](https://github.com/Byron/gitoxide/commit/2ae129ad6183f36179031ea905d8974705e70da8)) - All custom TryFrom implementations for Cow<PartialNameRef> ([`15afec1`](https://github.com/Byron/gitoxide/commit/15afec1efbc01fbb52af8f88720c874e6aa2d2b1)) - Cow support for PartialNameRef ([`3e470da`](https://github.com/Byron/gitoxide/commit/3e470da2d26f9b2c6bec9b28a9a108b8c032f007)) - adapt to changes in git-ref ([`21109ca`](https://github.com/Byron/gitoxide/commit/21109ca9ab21df0ab45f3be552e83114817e98d0)) - remove `FullName::to_ref()` in favor of `•::as_ref()`. ([`f1dbb6b`](https://github.com/Byron/gitoxide/commit/f1dbb6bd4534527b6f1f2aba2a562dd4e64cf55d)) - reflog handling for worktree/ ref-names ([`77877e0`](https://github.com/Byron/gitoxide/commit/77877e09de324c7c32f5a170e853760f7b192aa4)) - parse the worktree name as part of the cateogry ([`7666034`](https://github.com/Byron/gitoxide/commit/7666034a9b998eef7a2edaff0a8e6904babb5a13)) - refactor ([`cebf736`](https://github.com/Byron/gitoxide/commit/cebf73655c887d57bbe597938cfa376fac96b44c)) - more fixes for worktree ref handling ([`1aa546d`](https://github.com/Byron/gitoxide/commit/1aa546dea7f1aa8f6baf348f4398aa100fbd18a2)) - better packed refs lookup for worktree refs ([`2b6982e`](https://github.com/Byron/gitoxide/commit/2b6982e89db0f2229bdafa314eadbfb7ee637195)) - fix bugs with name resolution ([`3031f99`](https://github.com/Byron/gitoxide/commit/3031f996fdc2312f847da82f251f0a3f7875d40a)) - Assure `main-worktree` is also resolved in the main worktree ([`bc3c05e`](https://github.com/Byron/gitoxide/commit/bc3c05e811b25be93294bebae96a0bba0afcf0f9)) - assure nobody can bypass the namespace anymore ([`0079ab6`](https://github.com/Byron/gitoxide/commit/0079ab61c8f2818632949ed227e7251dd37a2a33)) - frame for tests in worktree and main repositories ([`b12884a`](https://github.com/Byron/gitoxide/commit/b12884ad9596805521fe8c556c48d78669dd7ea5)) - Assure namespaces are respected when calculating bases ([`4aac3c2`](https://github.com/Byron/gitoxide/commit/4aac3c248ed46963166defa46e80740d135906ed)) - fix docs ([`e189914`](https://github.com/Byron/gitoxide/commit/e1899143f12c16360998ac27bce326343254a638)) - transactions fully rely on proper base ([`d3a12e3`](https://github.com/Byron/gitoxide/commit/d3a12e31c8eae9209489d35b4b2e5d4835e85bde)) - packed-refs now use correct common dir ([`dd7be18`](https://github.com/Byron/gitoxide/commit/dd7be189ea1d5c15385a7eee54368b2b2510ed2d)) - reflog paths are now computed according to their ref name ([`c4d2493`](https://github.com/Byron/gitoxide/commit/c4d2493dc5f3e0d2c7fca71ae672af167b8ff1a5)) - refactor ([`e93c222`](https://github.com/Byron/gitoxide/commit/e93c222c947f57d9df523372613265d6286f64ce)) - first draft of fixture setup for worktrees ([`a25b0bc`](https://github.com/Byron/gitoxide/commit/a25b0bccfa001273057089fecca637c2d1fc591a)) - use suitable full names for store based packed-refs lookup too ([`d25b3ca`](https://github.com/Byron/gitoxide/commit/d25b3ca01450c308e08e060c3959aaca09b9415f)) - packed-refs can now possibly transform names for lookup correctly ([`6478736`](https://github.com/Byron/gitoxide/commit/6478736b5a2f86fd369a40f55b3697089e4ee93b)) - Offer a way to search packed refs by full name only ([`ae57e27`](https://github.com/Byron/gitoxide/commit/ae57e2766c4594b8336b36d4cfecb3c41d83e391)) - Also build what should be a valid path for loose-ref lookup ([`37deca5`](https://github.com/Byron/gitoxide/commit/37deca572eeeada79bfcbb4f815d50d4d5be2dc7)) - refactor ([`19d53fb`](https://github.com/Byron/gitoxide/commit/19d53fb1b8c13ca13d2111a840de1b6ef91780ec)) - refactor ([`32b8fde`](https://github.com/Byron/gitoxide/commit/32b8fde5f8941d3799d461e1d258f6627c064891)) - refactor ([`09eb432`](https://github.com/Byron/gitoxide/commit/09eb432f21e6999ed565437aba1d3550fe33ed8d)) - refactor ([`f83910f`](https://github.com/Byron/gitoxide/commit/f83910fe56b07b8dfabedeeaefd02070c15dd6f3)) - Loose ref lookup uses categories for refanames ([`61b449c`](https://github.com/Byron/gitoxide/commit/61b449ce8bf0d281839ba333af0dc33bf18556a1)) - prepare for switch to category based base-path lookup ([`14c6f48`](https://github.com/Byron/gitoxide/commit/14c6f48d28d6f2e0a0dd778ec8205d04c731aeb2)) - Unify pseudo-ref check for find reference ([`8c52fe4`](https://github.com/Byron/gitoxide/commit/8c52fe42ead34de18de3b649ca91bc5616da5e57)) - Admit that we need PartialPathCow and can't work around it ([`202bafc`](https://github.com/Byron/gitoxide/commit/202bafcaeb122f9d61b0ad4855e1aaf90c69107c)) - rename `PartialNameRef` to `PartialNameCow` ([`1611c3d`](https://github.com/Byron/gitoxide/commit/1611c3ddff6c930deaa4c2440383f5684c029b28)) - refactor ([`4e26e62`](https://github.com/Byron/gitoxide/commit/4e26e62f62bffbc5744650d173061a8270e1cd68)) - refactor ([`a611224`](https://github.com/Byron/gitoxide/commit/a6112249689438058724d859a87f0a4a64ed02e4)) - refactor ([`467d583`](https://github.com/Byron/gitoxide/commit/467d5839af2098911bf5551b6dfa6db0a2b20300)) - refactor ([`3574a4e`](https://github.com/Byron/gitoxide/commit/3574a4eaee78dc41c22d85af47cfd27b2c7c2303)) - `Category::LinkedRef` ([`9cccce3`](https://github.com/Byron/gitoxide/commit/9cccce35e527cdda58e01b03cd335a527418cf14)) - `Category::MainRef` ([`eada5df`](https://github.com/Byron/gitoxide/commit/eada5dfdd4981dbb032e8f155e3829eb5d1f380f)) - `Category::(WorktreePrivate|Bisect|Rewritten)` ([`0304b7f`](https://github.com/Byron/gitoxide/commit/0304b7fad3ae5e3ac1fea71e30658474a770184b)) - `Category::LinkedPseudoRef` ([`612a2db`](https://github.com/Byron/gitoxide/commit/612a2dbf7f70a8eb44b7278fccd4f1589749968a)) - Add `Category::MainPseudoRef` ([`613b584`](https://github.com/Byron/gitoxide/commit/613b5844e74535d391339bd8e7c106e18257b917)) - `Category::PseudoRef` ([`6ccfea9`](https://github.com/Byron/gitoxide/commit/6ccfea97d30dbfa013e1633c77c5a26ab5cbaf8f)) - remove `Store` from public API ([`8a92ec9`](https://github.com/Byron/gitoxide/commit/8a92ec9834b6d5aa3057c5509f6c13b6a6cd6e1b)) - rename `file::Store::base()` to `git_dir()`. ([`2becffc`](https://github.com/Byron/gitoxide/commit/2becffc85ff6225522fe38482739fb1406ae1060)) - adapt to changes in git-path ([`cc2d810`](https://github.com/Byron/gitoxide/commit/cc2d81012d107da7a61bf4de5b28342dea5083b7)) - adapt to all changes in git-path with bstr support ([`f158648`](https://github.com/Byron/gitoxide/commit/f158648aef8ad94d86550ceb2eeb20efb3df7596)) - Use `git-path` crate instead of `git_features::path` ([`47e607d`](https://github.com/Byron/gitoxide/commit/47e607dc256a43a3411406c645eb7ff04239dd3a)) - adjustments to go along with changes in git-features ([`c55cac6`](https://github.com/Byron/gitoxide/commit/c55cac6a1ada77619bb5723717a5a6d757499fa9)) - make fmt ([`50ff7aa`](https://github.com/Byron/gitoxide/commit/50ff7aa7fa86e5e2a94fb15aab86470532ac3f51)) * **[#384](https://github.com/Byron/gitoxide/issues/384)** - No need to isolate archives by crate name ([`19d46f3`](https://github.com/Byron/gitoxide/commit/19d46f35440419b9911b6e2bca2cfc975865dce9)) - add archive files via git-lfs ([`7202a1c`](https://github.com/Byron/gitoxide/commit/7202a1c4734ad904c026ee3e4e2143c0461d51a2)) - auto-set commit.gpgsign=false when executing git ([`c23feb6`](https://github.com/Byron/gitoxide/commit/c23feb64ad157180cfba8a11c882b829733ea8f6)) * **[#393](https://github.com/Byron/gitoxide/issues/393)** - Add support for disabling archive usage ([`624ad2e`](https://github.com/Byron/gitoxide/commit/624ad2ef42172556efe942129f6f46dd627250d5)) * **Uncategorized** - 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`](https://github.com/Byron/gitoxide/commit/349c5904b0dac350838a896759d51576b66880a7)) - fix git-ref dependencies ([`633e571`](https://github.com/Byron/gitoxide/commit/633e571da33767072176ebb2e44caf6d85975982)) - 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`](https://github.com/Byron/gitoxide/commit/654cf39c92d5aa4c8d542a6cadf13d4acef6a78e)) - make fmt ([`e043807`](https://github.com/Byron/gitoxide/commit/e043807abf364ca46d00760e2f281528efe20c75)) - thanks clippy ([`4cff7a8`](https://github.com/Byron/gitoxide/commit/4cff7a82ea3e924a8eba58cf45061b5afc5b250f)) - thanks clippy ([`a20d282`](https://github.com/Byron/gitoxide/commit/a20d282d608d1f8145951ac3ad26de583a60513c)) - thanks clippy ([`c208912`](https://github.com/Byron/gitoxide/commit/c20891281f8222db68d0888a47f14822a03efac9)) - Merge branch 'main' into refs-and-worktrees ([`9cf0c7b`](https://github.com/Byron/gitoxide/commit/9cf0c7bd0cc5419137db5796f3a5b91bdf3dcc94)) - Turn `FullNameRef` into an actual reference type. ([`0ace957`](https://github.com/Byron/gitoxide/commit/0ace957c595c8a38afb7de1462cdc73b617d2a76)) - A sketch to show how Cow<FullNameRef> could work ([`c6b2705`](https://github.com/Byron/gitoxide/commit/c6b27058884b23cd3ee35ddc3aa2aaf69012cbff)) - thanks clippy ([`61d6d93`](https://github.com/Byron/gitoxide/commit/61d6d93262cf2f1d13037542e4107ff558ea7c2c)) - thanks clippy ([`6291015`](https://github.com/Byron/gitoxide/commit/6291015df786eaebb2339629adc4685ffb555d01)) - thanks clippy ([`22ee920`](https://github.com/Byron/gitoxide/commit/22ee920fc93b88ed6d035915e9cab2d7501c92b9)) - refactor ([`6149978`](https://github.com/Byron/gitoxide/commit/61499786b9b0743d949d5a54639c54d76c4d2a44)) - thanks clippy ([`405d94d`](https://github.com/Byron/gitoxide/commit/405d94d8eb1ca07568bae5c51a7efd43dc9e2808)) - thanks clippy ([`a7ac64c`](https://github.com/Byron/gitoxide/commit/a7ac64cd801b985790b5717be1a5dc722b2ae3a9)) - Merge branch 'git_includeif' of https://github.com/svetli-n/gitoxide into svetli-n-git_includeif ([`0e01da7`](https://github.com/Byron/gitoxide/commit/0e01da74dffedaa46190db6a7b60a2aaff190d81)) - Merge branch 'mzr-fix_empty_values' ([`09c8628`](https://github.com/Byron/gitoxide/commit/09c8628d68ab82d234921b5c6cf80cda4d21802e)) - fix clippy - many false positives this time ([`045e6fa`](https://github.com/Byron/gitoxide/commit/045e6fae17077555c3e115992905c8046f2c5d0b)) - fix clippy - many false positives this time ([`099bd5b`](https://github.com/Byron/gitoxide/commit/099bd5b86fb80b26a73863b80ad60a0394458b6d)) </details> ## 0.12.1 (2022-04-05) ### Changed (BREAKING) - <csr-id-1611c3ddff6c930deaa4c2440383f5684c029b28/> rename `PartialNameRef` to `PartialNameCow` Because this is what it is, which also implies that it's not `Copy` anymore which a `Ref` would definitely be. The reason we need this to be a `Cow` is to support passing ownership. - <csr-id-8a92ec9834b6d5aa3057c5509f6c13b6a6cd6e1b/> remove `Store` from public API It is unclear if ref-tables, which are the reason for it to exist in the first place, will fit into the concept as they might not support worktrees. It's entirely unclear how this works. Maybe there can be a non-worktree version of the store with work-trees only being supported by the file based ref database, and ref-tables remaining a server-side feature. - <csr-id-2becffc85ff6225522fe38482739fb1406ae1060/> rename `file::Store::base()` to `git_dir()`. That way it is clearer what it actually is especially in presence of the newly added `file::Store::common_dir()` method. That way, work-trees can eventually be properly supported. ### New Features - <csr-id-ecd60d7a75d4aef7c37cd0b28b57a8aea1166858/> add `FullName(Ref)::category_and_shortname()` It's a combination of `shorten()` and `category()` for convenience. - <csr-id-9cccce35e527cdda58e01b03cd335a527418cf14/> `Category::LinkedRef` With it one can access all refs as advertised. - <csr-id-eada5dfdd4981dbb032e8f155e3829eb5d1f380f/> `Category::MainRef` With it it will be possible to compute all paths correctly and actually perform certain operations as documented. - <csr-id-0304b7fad3ae5e3ac1fea71e30658474a770184b/> `Category::(WorktreePrivate|Bisect|Rewritten)` - <csr-id-612a2dbf7f70a8eb44b7278fccd4f1589749968a/> `Category::LinkedPseudoRef` - <csr-id-613b5844e74535d391339bd8e7c106e18257b917/> Add `Category::MainPseudoRef` - <csr-id-6ccfea97d30dbfa013e1633c77c5a26ab5cbaf8f/> `Category::PseudoRef` ### Commit Statistics <csr-read-only-do-not-edit/> - 3 commits contributed to the release over the course of 2 calendar days. - 2 days passed between releases. - 1 commit where understood as [conventional](https://www.conventionalcommits.org). - 1 unique issue was worked on: [#364](https://github.com/Byron/gitoxide/issues/364) ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **[#364](https://github.com/Byron/gitoxide/issues/364)** - add `FullName(Ref)::category_and_shortname()` ([`ecd60d7`](https://github.com/Byron/gitoxide/commit/ecd60d7a75d4aef7c37cd0b28b57a8aea1166858)) * **Uncategorized** - Release git-config v0.2.1, git-diff v0.15.0, git-traverse v0.14.0, git-pack v0.18.0, git-odb v0.28.0, git-ref v0.12.1, git-revision v0.1.0, git-repository v0.16.0, gitoxide-core v0.14.0, gitoxide v0.12.0, safety bump 6 crates ([`b612021`](https://github.com/Byron/gitoxide/commit/b612021683ba709b693bd48aef3e2e3c2f5b9ead)) - refactor ([`2abedb8`](https://github.com/Byron/gitoxide/commit/2abedb851ba383f502c0c9f9f9a3a26349c1664d)) </details> ## 0.12.0 (2022-04-03) ### New Features - <csr-id-e7e4ba2739e5a15e826b5b4d9ef2b45a1cb016cc/> `Fullname(Ref)::category()` and `Category` A way to classify references. - <csr-id-af2d399261e4131299c2279904a1f224c116db66/> FullName(Ref)::strip_prefix() Get a short-hand for any reference name. - <csr-id-e4d6685064ad2b433f8acd3a74b320bf0169a994/> Add `git_config::values::Path` for a typesafe git path Add a `Path` type to the `git_config::values` which can be interpolated according to gits own path interpolation rules. - <csr-id-28e3251ee1996f638eaa0bc7b39b06be436f6eb7/> FullNameRef::file_name() - <csr-id-cf50ae2b33da0161d801b4c0a9cd8b5d24bb3510/> Display implementation for `FullName`. ### Bug Fixes - <csr-id-42e0487286c1f745837c0ce337ed7c9d86b14516/> support Rust 1.52 ### Changed (BREAKING) - <csr-id-7984e19417dff13445f3ef2e15dea96bbd194ce5/> `Target::as_(id|name)` -> `Target::try_(id|name)` Conform to naming conventions, whenever something returns an option or Result while there is a more direct name that panics, prefix `try_`. ### Commit Statistics <csr-read-only-do-not-edit/> - 32 commits contributed to the release over the course of 68 calendar days. - 69 days passed between releases. - 5 commits where understood as [conventional](https://www.conventionalcommits.org). - 6 unique issues were worked on: [#298](https://github.com/Byron/gitoxide/issues/298), [#301](https://github.com/Byron/gitoxide/issues/301), [#329](https://github.com/Byron/gitoxide/issues/329), [#331](https://github.com/Byron/gitoxide/issues/331), [#333](https://github.com/Byron/gitoxide/issues/333), [#364](https://github.com/Byron/gitoxide/issues/364) ### Thanks Clippy <csr-read-only-do-not-edit/> [Clippy](https://github.com/rust-lang/rust-clippy) helped 3 times to make code idiomatic. ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **[#298](https://github.com/Byron/gitoxide/issues/298)** - Use hash_hasher based hash state for better keys/less collisions ([`814de07`](https://github.com/Byron/gitoxide/commit/814de079f4226f42efa49ad334a348bce67184e4)) - Display implementation for `FullName`. ([`cf50ae2`](https://github.com/Byron/gitoxide/commit/cf50ae2b33da0161d801b4c0a9cd8b5d24bb3510)) * **[#301](https://github.com/Byron/gitoxide/issues/301)** - performance issue on windows is due to slow process execution speed ([`60bcffc`](https://github.com/Byron/gitoxide/commit/60bcffc2d2921f01a0c8f42da9b43cd731eaf55d)) - speed up git-pack testing on windows ([`8ca400c`](https://github.com/Byron/gitoxide/commit/8ca400c8647e0e59a96a936d41c2dc2d07c6bf2d)) * **[#329](https://github.com/Byron/gitoxide/issues/329)** - Document all features related to serde1 ([`72b97f2`](https://github.com/Byron/gitoxide/commit/72b97f2ae4dc7642b160f183c6d5df4502dc186f)) * **[#331](https://github.com/Byron/gitoxide/issues/331)** - Add `git_config::values::Path` for a typesafe git path ([`e4d6685`](https://github.com/Byron/gitoxide/commit/e4d6685064ad2b433f8acd3a74b320bf0169a994)) * **[#333](https://github.com/Byron/gitoxide/issues/333)** - Use git_features::path everywhere where there is a path conversion ([`2e1437c`](https://github.com/Byron/gitoxide/commit/2e1437cb0b5dc77f2317881767f71eaf9b009ebf)) - remove os-str-bytes everywhere ([`71a086a`](https://github.com/Byron/gitoxide/commit/71a086aaf0835c31c834aa32d968552de490f2e7)) - Found one valid case for using os-str-bytes ([`9c294bf`](https://github.com/Byron/gitoxide/commit/9c294bff45f8f04affd690327559e0e2c2415fa9)) - Make real clear panics are only possible on windows ([`6b283dc`](https://github.com/Byron/gitoxide/commit/6b283dc7b9339fd65ea35f56eb29f121f571caf7)) - one usage of os_str_bytes down, along with some custom conversion code ([`1cc95ce`](https://github.com/Byron/gitoxide/commit/1cc95cefbd132a4277ec52c2147f7c81fea92d48)) - gitoxide-core without os-str-bytes ([`909aa14`](https://github.com/Byron/gitoxide/commit/909aa1402c82c3128052023613a297b213716e3d)) - Don't use os_str_ext in git-features; adapt git-ref ([`9258b7b`](https://github.com/Byron/gitoxide/commit/9258b7baf0895593c13a152ff9e6f52e036cebe1)) - Use new git-features::path module ([`7c53b27`](https://github.com/Byron/gitoxide/commit/7c53b275a71b9d2ee477bd19464d49a97e031e0c)) * **[#364](https://github.com/Byron/gitoxide/issues/364)** - `Target::as_(id|name)` -> `Target::try_(id|name)` ([`7984e19`](https://github.com/Byron/gitoxide/commit/7984e19417dff13445f3ef2e15dea96bbd194ce5)) - refactor ([`b1b9871`](https://github.com/Byron/gitoxide/commit/b1b9871e8b0c2bcbdee0c3ea4c060b4a7c32bc15)) - `Fullname(Ref)::category()` and `Category` ([`e7e4ba2`](https://github.com/Byron/gitoxide/commit/e7e4ba2739e5a15e826b5b4d9ef2b45a1cb016cc)) - FullName(Ref)::strip_prefix() ([`af2d399`](https://github.com/Byron/gitoxide/commit/af2d399261e4131299c2279904a1f224c116db66)) - Full error handling for CommitRefIter ([`b94471a`](https://github.com/Byron/gitoxide/commit/b94471a0ced50204156cf5d4126c676f0258a5eb)) * **Uncategorized** - Release git-diff v0.14.0, git-bitmap v0.1.0, git-index v0.2.0, git-tempfile v2.0.1, git-lock v2.0.0, git-mailmap v0.1.0, git-traverse v0.13.0, git-pack v0.17.0, git-quote v0.2.0, git-odb v0.27.0, git-packetline v0.12.4, git-url v0.4.0, git-transport v0.16.0, git-protocol v0.15.0, git-ref v0.12.0, git-worktree v0.1.0, git-repository v0.15.0, cargo-smart-release v0.9.0, safety bump 5 crates ([`e58dc30`](https://github.com/Byron/gitoxide/commit/e58dc3084cf17a9f618ae3a6554a7323e44428bf)) - Merge branch 'for-onefetch' ([`8e5cb65`](https://github.com/Byron/gitoxide/commit/8e5cb65da75036a13ed469334e7ae6c527d9fff6)) - Release git-hash v0.9.3, git-features v0.20.0, git-config v0.2.0, safety bump 12 crates ([`f0cbb24`](https://github.com/Byron/gitoxide/commit/f0cbb24b2e3d8f028be0e773f9da530da2656257)) - Merge branch 'svetli-n-refactor_git_config_tests' ([`babaa9f`](https://github.com/Byron/gitoxide/commit/babaa9f5725ab8cdf14e0c7e002c2e1de09de103)) - thanks clippy ([`2066a80`](https://github.com/Byron/gitoxide/commit/2066a80664e239436685d10ba7bab92916661a56)) - adapt to breaking changes in git-actor ([`40c48c3`](https://github.com/Byron/gitoxide/commit/40c48c390eb796b427ebd516dde92e9538ce5fb7)) - Release git-tempfile v2.0.0, safety bump 6 crates ([`90b1c42`](https://github.com/Byron/gitoxide/commit/90b1c42d5487904a9f329362d185b035d0ddb975)) - thanks clippy ([`a8e9497`](https://github.com/Byron/gitoxide/commit/a8e9497caebf1c0e9faac537717cd86378f1acf6)) - thanks clippy ([`f242a24`](https://github.com/Byron/gitoxide/commit/f242a248909c61953030c112b34af565f851ac0d)) - Merge branch 'AP2008-implement-worktree' ([`f32c669`](https://github.com/Byron/gitoxide/commit/f32c669bc519d59a1f1d90d61cc48a422c86aede)) - Release git-actor v0.8.1 ([`08fe550`](https://github.com/Byron/gitoxide/commit/08fe5508472f2eb209db8a5fc4e4942a9d7db93d)) - Release git-hash v0.9.2, git-object v0.17.1, git-pack v0.16.1 ([`0db19b8`](https://github.com/Byron/gitoxide/commit/0db19b8deaf11a4d4cbc03fa3ae40eea104bc302)) - Merge branch 'index-information' ([`025f157`](https://github.com/Byron/gitoxide/commit/025f157de10a509a4b36a9aed41de80487e8c15c)) </details> ## 0.11.0 (2022-01-23) <csr-id-c46dec311c76a83dba136be5dba6b70d739c354d/> <csr-id-ebc7f47708a63c3df4415ba0e702660d976dfb3e/> <csr-id-2290d006705ff47ad780b009fe58ee422b3285af/> ### New Features - <csr-id-28e3251ee1996f638eaa0bc7b39b06be436f6eb7/> FullNameRef::file_name() - <csr-id-f6181afef285b32968b852467235edf3d7d99a66/> Add file::Store::find_packed(…, buffer) This makes the API complete as now there is a methods that uses the internal buffer, or the provided one, where both can have its benefits. - <csr-id-03bcac2763076bfd720b99d60fd036b4d5d00995/> add Reference::peel_to_id_in_place_packed() and Reference::follow_packed() This allows a stable/non-changing buffer to be used. ### Bug Fixes - <csr-id-42e0487286c1f745837c0ce337ed7c9d86b14516/> support Rust 1.52 ### Changed (BREAKING) - <csr-id-dea6659a404bf8b2ad1290549653c776ec04f964/> Required `object_hash` as parameter when instantiating any Store This is needed to choose the correct kind of object hash in a couple of situations, and future-proofs it for when ref-table arrives. - remove `Target::must_exist()` It was a remainder of an old API which since has been replaced with a more explicit approach. - remove pack-cache from `Find::try_find(…)` With the new architecture this can be an implementation detail without forcing it to be Sync. - move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait This will break a lot, but has to happen to prepare these traits for the next generation of object databases. ### Commit Statistics <csr-read-only-do-not-edit/> - 27 commits contributed to the release over the course of 55 calendar days. - 55 days passed between releases. - 8 commits where understood as [conventional](https://www.conventionalcommits.org). - 5 unique issues were worked on: [#263](https://github.com/Byron/gitoxide/issues/263), [#266](https://github.com/Byron/gitoxide/issues/266), [#279](https://github.com/Byron/gitoxide/issues/279), [#293](https://github.com/Byron/gitoxide/issues/293), [#298](https://github.com/Byron/gitoxide/issues/298) ### Thanks Clippy <csr-read-only-do-not-edit/> [Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **[#263](https://github.com/Byron/gitoxide/issues/263)** - Don't unnecessarily reload the packed-refs buffer under contention ([`3ab990e`](https://github.com/Byron/gitoxide/commit/3ab990ebbaf7feb999340e86933bbdc823166669)) - Use a read-lock until mutation is needed, instead of upgradable rw locks ([`58294dd`](https://github.com/Byron/gitoxide/commit/58294ddf13c17e64dc224cc01ec70c3006cb14bc)) - refactor ([`e41ab82`](https://github.com/Byron/gitoxide/commit/e41ab820a32177e54b9cd53856cc2cdd4a72271f)) - Add file::Store::find_packed(…, buffer) ([`f6181af`](https://github.com/Byron/gitoxide/commit/f6181afef285b32968b852467235edf3d7d99a66)) - add Reference::peel_to_id_in_place_packed() and Reference::follow_packed() ([`03bcac2`](https://github.com/Byron/gitoxide/commit/03bcac2763076bfd720b99d60fd036b4d5d00995)) * **[#266](https://github.com/Byron/gitoxide/issues/266)** - upgrade git-ref's os_str_bytes crate to 6.0.0 ([`0cfba57`](https://github.com/Byron/gitoxide/commit/0cfba573eb85c5e990635363ac169b0114bba671)) - adapt to changes in git-odb ([`a44dd4b`](https://github.com/Byron/gitoxide/commit/a44dd4b5d1910856d7a21e156e7bca3138c04484)) - remove pack-cache from `Find::try_find(…)` ([`ebc7f47`](https://github.com/Byron/gitoxide/commit/ebc7f47708a63c3df4415ba0e702660d976dfb3e)) - Clarify that we really need stable pack ids ([`cefc0fa`](https://github.com/Byron/gitoxide/commit/cefc0faf8c28939449f5df57e9f4fff14da08ea1)) - move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait ([`2290d00`](https://github.com/Byron/gitoxide/commit/2290d006705ff47ad780b009fe58ee422b3285af)) * **[#279](https://github.com/Byron/gitoxide/issues/279)** - Adapt to changes in git-hash ([`754a663`](https://github.com/Byron/gitoxide/commit/754a66344ff2cfcfc4a7a3d72f1240e939c48055)) - adjust to changes in git-hash ([`9bf25cc`](https://github.com/Byron/gitoxide/commit/9bf25cc4f2e44821f93e85997677bc4e86a67bd4)) - Required `object_hash` as parameter when instantiating any Store ([`dea6659`](https://github.com/Byron/gitoxide/commit/dea6659a404bf8b2ad1290549653c776ec04f964)) - remove `Target::must_exist()` ([`c46dec3`](https://github.com/Byron/gitoxide/commit/c46dec311c76a83dba136be5dba6b70d739c354d)) - adapt to changes in git-hash ([`3e75e8c`](https://github.com/Byron/gitoxide/commit/3e75e8cd4c55f339525914fdc69e7a7da1fb06d4)) * **[#293](https://github.com/Byron/gitoxide/issues/293)** - git-ref uses memmap2 ([`4dec3ea`](https://github.com/Byron/gitoxide/commit/4dec3ead7c28e88de1eb8e1576b9b29b1c0953c7)) * **[#298](https://github.com/Byron/gitoxide/issues/298)** - FullNameRef::file_name() ([`28e3251`](https://github.com/Byron/gitoxide/commit/28e3251ee1996f638eaa0bc7b39b06be436f6eb7)) * **Uncategorized** - Release git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 ([`b286b24`](https://github.com/Byron/gitoxide/commit/b286b24a51878be7d2e0fd77ff0c5c99b439a6a0)) - Release git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 ([`42ebb53`](https://github.com/Byron/gitoxide/commit/42ebb536cd6086f096b8422291776c9720fa0948)) - Release git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 ([`1b76119`](https://github.com/Byron/gitoxide/commit/1b76119259b8168aeb99cbbec233f7ddaa2d7d2c)) - Release git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 ([`8f57c29`](https://github.com/Byron/gitoxide/commit/8f57c297d7d6ed68cf51415ea7ede4bf9263326e)) - Release git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 ([`d78aab7`](https://github.com/Byron/gitoxide/commit/d78aab7b9c4b431d437ac70a0ef96263acb64e46)) - Release git-hash v0.9.1, git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0, safety bump 4 crates ([`373cbc8`](https://github.com/Byron/gitoxide/commit/373cbc877f7ad60dac682e57c52a7b90f108ebe3)) - prepar changelogs for cargo-smart-release release ([`8900d69`](https://github.com/Byron/gitoxide/commit/8900d699226eb0995be70d66249827ce348261df)) - support Rust 1.52 ([`42e0487`](https://github.com/Byron/gitoxide/commit/42e0487286c1f745837c0ce337ed7c9d86b14516)) - 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`](https://github.com/Byron/gitoxide/commit/4624725f54a34dd6b35d3632fb3516965922f60a)) - thanks clippy ([`7dd2313`](https://github.com/Byron/gitoxide/commit/7dd2313d980fe7c058319ae66d313b3097e3ae5f))