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.4.0 (2022-11-21)
New Features (BREAKING)
-
upgrade edition to 2021 in most crates. MSRV for this is 1.56, and we are now at 1.60 so should be compatible. This isn't more than a patch release as it should break nobody who is adhering to the MSRV, but let's be careful and mark it breaking.
Note that
git-featuresandgit-packare still on edition 2018 as they make use of a workaround to support (safe) mutable access to non-overlapping entries in a slice which doesn't work anymore in edition 2021.
Commit Statistics
- 3 commits contributed to the release over the course of 2 calendar days.
- 14 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
0.3.1 (2022-11-06)
New Features
-
add
RefSpecRef::expand_prefix()method to avoid missing prefixes. The current implementation might cause refspecs to end up ignored as they don't have a prefix, and in protocol V2 it would then fail to add a ref-spec filter which causes them to be missed.With
expand_prefix(), we assure that there are all possible prefixes that can contain partial names, similar to what git does.
Bug Fixes
-
HEADmay now return itself as prefix inRefSpecRef::prefix()andexpanded_prefix(). Previously, the expanded prefix would be a list of possibilities, even though it's such a common case that we really want to avoid spamming the remote about it when asking for HEAD during clone for instance.
Commit Statistics
- 12 commits contributed to the release over the course of 24 calendar days.
- 27 days passed between releases.
- 2 commits were understood as conventional.
- 2 unique issues were worked on: #450, #571
Commit Details
view details
- #450
- #571
- Uncategorized
- Release git-features v0.23.1, git-glob v0.4.1, git-config-value v0.8.1, git-tempfile v2.0.6, git-object v0.22.1, git-ref v0.18.0, git-sec v0.4.2, git-config v0.10.0, git-prompt v0.1.1, git-url v0.10.1, git-credentials v0.6.1, git-diff v0.21.0, git-discover v0.7.0, git-index v0.7.0, git-pack v0.25.0, git-odb v0.35.0, git-transport v0.21.1, git-protocol v0.22.0, git-refspec v0.3.1, git-worktree v0.7.0, git-repository v0.26.0, git-commitgraph v0.10.0, gitoxide-core v0.19.0, gitoxide v0.17.0, safety bump 9 crates (
d071583) - prepare changelogs prior to release (
423af90) - Merge branch 'main' into write-sparse-index (
c4e6849) - Merge branch 'gix-clone' (
def53b3) - Merge branch 'main' into gix-clone (
91bf67a) - Merge branch 'fix-571' (
2514334)
- Release git-features v0.23.1, git-glob v0.4.1, git-config-value v0.8.1, git-tempfile v2.0.6, git-object v0.22.1, git-ref v0.18.0, git-sec v0.4.2, git-config v0.10.0, git-prompt v0.1.1, git-url v0.10.1, git-credentials v0.6.1, git-diff v0.21.0, git-discover v0.7.0, git-index v0.7.0, git-pack v0.25.0, git-odb v0.35.0, git-transport v0.21.1, git-protocol v0.22.0, git-refspec v0.3.1, git-worktree v0.7.0, git-repository v0.26.0, git-commitgraph v0.10.0, gitoxide-core v0.19.0, gitoxide v0.17.0, safety bump 9 crates (
0.3.0 (2022-10-10)
New Features
-
RefSpec::allow_non_fast_forward()to get information about 'force' quickly. -
RefSpecRef::prefix()to return the two-component prefix of a refspec's source. #(450)
Bug Fixes
-
RefSpecRefinstruction uses the correct lifetime.
Changed (BREAKING)
- remove lifetime of
match_group::Fix, keepingRefSpecinstances instead That lifetime unnecessarily complicated things and wasn't worth keeping due to being a premature optimization.
Commit Statistics
- 12 commits contributed to the release over the course of 20 calendar days.
- 20 days passed between releases.
- 4 commits were understood as conventional.
- 1 unique issue was worked on: #450
Commit Details
view details
- #450
- Uncategorized
- Release git-hash v0.9.11, git-features v0.23.0, git-actor v0.13.0, git-attributes v0.5.0, git-object v0.22.0, git-ref v0.17.0, git-sec v0.4.1, git-config v0.9.0, git-url v0.10.0, git-credentials v0.6.0, git-diff v0.20.0, git-discover v0.6.0, git-traverse v0.18.0, git-index v0.6.0, git-mailmap v0.5.0, git-pack v0.24.0, git-odb v0.34.0, git-packetline v0.13.1, git-transport v0.21.0, git-protocol v0.21.0, git-revision v0.6.0, git-refspec v0.3.0, git-worktree v0.6.0, git-repository v0.25.0, safety bump 24 crates (
104d922) - prepare changelogs for release (
d232567) - Merge branch 'clone' (
507dc7e) - remove lifetime of
match_group::Fix, keepingRefSpecinstances instead (2a0a87a) - Another test to validate components must not be empty (
b2c9af1) - Merge branch 'main' into new-http-impl (
702a161) - make fmt (
53acf25) - Merge branch 'fetch-pack' (
3c49400) RefSpecRef::prefix()to return the two-component prefix of a refspec's source. #(450) (6df179b)- Merge branch 'diff' (
25a7726)
- Release git-hash v0.9.11, git-features v0.23.0, git-actor v0.13.0, git-attributes v0.5.0, git-object v0.22.0, git-ref v0.17.0, git-sec v0.4.1, git-config v0.9.0, git-url v0.10.0, git-credentials v0.6.0, git-diff v0.20.0, git-discover v0.6.0, git-traverse v0.18.0, git-index v0.6.0, git-mailmap v0.5.0, git-pack v0.24.0, git-odb v0.34.0, git-packetline v0.13.1, git-transport v0.21.0, git-protocol v0.21.0, git-revision v0.6.0, git-refspec v0.3.0, git-worktree v0.6.0, git-repository v0.25.0, safety bump 24 crates (
0.2.0 (2022-09-20)
New Features
- Simple serialization for
InstructionandRefSpecReftype. It's also a way to normalize input strings as there is only one way to serialize instructions, which themselves are already normalized towards what's possible.
Changed (BREAKING)
- reject all invalid negative refspec patterns. Git is more lenient, but will then fail to match against such patterns which seems like avoidable surprising behaviour.
- upgrade
bstrto1.0.1
Commit Statistics
- 77 commits contributed to the release over the course of 22 calendar days.
- 22 days passed between releases.
- 3 commits were understood as conventional.
- 2 unique issues were worked on: #450, #470
Thanks Clippy
Clippy helped 4 times to make code idiomatic.
Commit Details
view details
- #450
- A more efficient representation for
validate::Fix(e819fc6) - Make
specsinMatchGrouppublic to reduce API surface. (2a7df32) - Allow
match_group::Fixto be cloned. (85c49ec) - fix
match_group::Itemto make it uniform with how we typically name refs (21420da) - remote todo with note about our current understanding (
9dc7a3f) - Actually assure we don't try to write into the HEAD ref, which git avoids as well (
1335618) - Allow 'HEAD' based refspecs to match correctly (
7432a2b) - tests to show that empty remotes actually work (
2fdec73) - another test which doesn't manage to trigger a certain message from git. (
4f48095) - fully drop 'funny' names (
f137d60) - A first version of the 'funny name' sanitization (
c81e418) - frame for testing of fixes (
9148102) - refactor (
d37fd04) - all baseline specs are tested and pass (
afc0a3d) - the first test to validate conflict reporting (
aef0a46) - sketch of validation API along with test suite integration (
70a765e) - refactor (
547129e) - sketch
Outcometype which can be used for later sanitization and validation. (53e17c1) - prepare first test for conflicts and validation (
508a33a) - just-in-time deduplication of mappings (
8ed5d01) - adjust expectations to make first exclusion tests work (
6e1b19b) - reject all invalid negative refspec patterns. (
4c4f821) - basic negation implementation along with first failure. (
e4931d0) - first tests for multiple refspecs (
77db112) - refactor (
4c73a19) - refactor (
00401be) - improved glob matching (
eaf36e7) - basic glob matching. (
a93628c) - type-system supprots glob matching (
4b73d11) - more tests for simple 1:1 fetch and update specs (
74de83c) - Make it easy to obtain the local and remote sides of RefSpecs (
67506b1) - Don't reject object-id like heads on the receiving side. (
6668c3f) - make object-ids in the source position type-safe (
413051d) - prepare for dual-sided ref mapping to realize that it needs a special case. (
7368fe4) - refactor (
579e891) - support testing source-only object names (
bb61c49) - preliminary matching of refs by name (
426107f) - handle partial names as well (
dc7f162) - generalize baseline assertion to support multiple input specs (
b752e48) - first successful test (
3625d5a) - top-level match-group loop without negation (
c915a5f) - refactor to use a match-group instead. (
4ba31c5) - not using a matchgroup right away seems like the wrong approach (
7f3bc30) - actual expectation for first simple test (
cec6905) - Get to the point where the matcher is invoked (
cbbdf59) - Simple serialization for
InstructionandRefSpecReftype. (abdf83f) - ground work for matcher tests (
509764c) - tag specific tests (
4f35485) - more tests to investigate conflict handling (
192d4f7) - a more realistic sketch for
Matcher, which will need a surroundingMatchGroup(dd1d824) - more robust baseline tests on windows (
54ca267) - pares FETCH_HEAD (as specs without local sides); sketch
Matchtype (44228a0) - restore full ref names for baseline (
f6124db) - parse basline mapping (
3000a14) - parse baseline reflist which serves as input to the matcher (
fce877f) - frame for baseline for fetch-matching (
2569da5) - upgrade
bstrto1.0.1(99905ba) - prefer to represent instructions with Matchers (
0887e2e) - more examples using fully spelled out object names as fetch destination (
095a099) - get more clarity about
git ls-remoteandgit fetch(1b15fe8) - a tiny sketch of a possible matching API (
39d5ff3)
- A more efficient representation for
- #470
- update changelogs prior to release (
caa7a1b)
- update changelogs prior to release (
- Uncategorized
- Release 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 (
f5c36d8) - 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) - make fmt (
429cccc) - Merge branch 'filter-refs' (
3773b92) - Merge branch 'filter-refs' (
fd14489) - thanks clippy (
74a5f22) - thanks clippy (
016cd1f) - thanks clippy (
b8ac13e) - thanks clippy (
73b405f) - make fmt (
535e967) - Merge branch 'main' into filter-refs-by-spec (
1f6e5ab) - Merge branch 'fix-522' (
5869e9f) - Release git-hash v0.9.9 (
da0716f) - Merge branch 'main' into index-from-tree (
bc64b96) - Merge branch 'main' into filter-refs-by-spec (
cef0b51)
- Release 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 (
0.1.1 (2022-08-28)
Maintenance release without user-facing changes.
Commit Statistics
- 4 commits contributed to the release over the course of 4 calendar days.
- 4 days passed between releases.
- 0 commits were understood as conventional.
- 1 unique issue was worked on: #XXX
Commit Details
view details
- #XXX
- prepare changelogs prior to release (
8c0bca3)
- prepare changelogs prior to release (
- Uncategorized
- Release git-object v0.20.3, git-ref v0.15.4, git-config v0.7.1, git-diff v0.18.0, git-traverse v0.16.3, git-pack v0.22.0, git-odb v0.32.0, git-url v0.7.3, git-transport v0.19.3, git-protocol v0.19.1, git-refspec v0.1.1, git-repository v0.23.0, safety bump 6 crates (
85a3bed) - Release git-features v0.22.3, git-revision v0.4.4 (
c2660e2) - Merge branch 'main' into filter-refs-by-spec (
cfa1440)
- Release git-object v0.20.3, git-ref v0.15.4, git-config v0.7.1, git-diff v0.18.0, git-traverse v0.16.3, git-pack v0.22.0, git-odb v0.32.0, git-url v0.7.3, git-transport v0.19.3, git-protocol v0.19.1, git-refspec v0.1.1, git-repository v0.23.0, safety bump 6 crates (
0.1.0 (2022-08-24)
Chore
- uniformize deny attributes
- remove default link to cargo doc everywhere
Commit Statistics
- 49 commits contributed to the release over the course of 18 calendar days.
- 18 days passed between releases.
- 2 commits were understood as conventional.
- 1 unique issue was worked on: #450
Thanks Clippy
Clippy helped 4 times to make code idiomatic.
Commit Details
view details
- #450
- assure ref-specs handle equality, ordering and hashing according to their instruction (
b4bf7d0) - cleanup crate structure (
f0163c9) - don't expose mode() as it's kind of messy and should be left as implementation detail (
6278966) - improve docs (
c695a7e) - add fuzz target and basic docs on how to run it (
febf070) - Add fuzz target (
62d721a) - more push-spec restrictions (
bb992ac) - more detailed tests of what's allowed and where (
57a6e69) - disallow excludes in push mode (
9c280b2) - don't allow object hashes in excludes (
b889953) - negative must not be empty (
79e0eaf) - support for
@shortcut. (32d98e9) - and the entire test-suite passes (
3fa52f8) - handle ref-name validation mostly correctly (
d7c2789) - refactor (
e8c072e) - tests causing all instrucitons (
c23a21d) - tests for handling exclusions (
c4499ce) - Better handling of special cases (
c99f575) - basic validation and detection of patterns (
e4227d6) - handle colon and empty on the right side (
7afebb7) - support for deletion (
966a9e9) - add include directive (
701d46f) - first successful test for returning a refspec. (
6e5bd5c) - sort out how expectations can be expressed in test suite (
3f264af) - refactor (
6713793) - sketch all possible instructions of fetch and push refspecs (
0ba1b73) - run the baseline test and gather some information (
5e4ee9b) - first few bits of error handling in parser (
9c5fed2) - frame for basic parsing (
b9a4bdc) - sketch data structure that should do the trick (
5c823dc) - all baseline test cases from git's test-suite (
362bd46)
- assure ref-specs handle equality, ordering and hashing according to their instruction (
- Uncategorized
- Release git-date v0.0.5, git-hash v0.9.8, git-features v0.22.2, git-actor v0.11.3, git-glob v0.3.2, git-quote v0.2.1, git-attributes v0.3.2, git-tempfile v2.0.4, git-lock v2.1.1, git-validate v0.5.5, git-object v0.20.2, git-ref v0.15.2, git-sec v0.3.1, git-config v0.7.0, git-credentials v0.4.0, git-diff v0.17.2, git-discover v0.4.1, git-bitmap v0.1.2, git-index v0.4.2, git-mailmap v0.3.2, git-chunk v0.3.1, git-traverse v0.16.2, git-pack v0.21.2, git-odb v0.31.2, git-packetline v0.12.7, git-url v0.7.2, git-transport v0.19.2, git-protocol v0.19.0, git-revision v0.4.2, git-refspec v0.1.0, git-worktree v0.4.2, git-repository v0.22.0, safety bump 4 crates (
4974eca) - Merge branch 'remote-ls-refs' (
39d585d) - Merge branch 'main' into remote-ls-refs (
e2ee3de) - Merge branch 'docsrs-show-features' (
31c2351) - uniformize deny attributes (
f7f136d) - remove default link to cargo doc everywhere (
533e887) - Merge branch 'main' into remote-ls-refs (
c82bbfa) - prepare for release of git-repository (
8aa5389) - Merge branch 'main' into remote-ls-refs (
bd5f3e8) - Release git-date v0.0.3, git-actor v0.11.1, git-attributes v0.3.1, git-tempfile v2.0.3, git-object v0.20.1, git-ref v0.15.1, git-config v0.6.1, git-diff v0.17.1, git-discover v0.4.0, git-bitmap v0.1.1, git-index v0.4.1, git-mailmap v0.3.1, git-traverse v0.16.1, git-pack v0.21.1, git-odb v0.31.1, git-packetline v0.12.6, git-url v0.7.1, git-transport v0.19.1, git-protocol v0.18.1, git-revision v0.4.0, git-worktree v0.4.1, git-repository v0.21.0, safety bump 5 crates (
c96473d) - Release git-hash v0.9.7, git-features v0.22.1 (
232784a) - Merge branch 'main' into write-index-v2 (
a938986) - Merge branch 'main' into remote-ls-refs (
de61c4d) - thanks clippy (
4bd747c) - thanks clippy (
b9e1cdb) - Merge branch 'parse-refspec' (
2ba338e) - thanks clippy (
6c963b0) - thanks clippy (
b62ee56)
- Release git-date v0.0.5, git-hash v0.9.8, git-features v0.22.2, git-actor v0.11.3, git-glob v0.3.2, git-quote v0.2.1, git-attributes v0.3.2, git-tempfile v2.0.4, git-lock v2.1.1, git-validate v0.5.5, git-object v0.20.2, git-ref v0.15.2, git-sec v0.3.1, git-config v0.7.0, git-credentials v0.4.0, git-diff v0.17.2, git-discover v0.4.1, git-bitmap v0.1.2, git-index v0.4.2, git-mailmap v0.3.2, git-chunk v0.3.1, git-traverse v0.16.2, git-pack v0.21.2, git-odb v0.31.2, git-packetline v0.12.7, git-url v0.7.2, git-transport v0.19.2, git-protocol v0.19.0, git-revision v0.4.2, git-refspec v0.1.0, git-worktree v0.4.2, git-repository v0.22.0, safety bump 4 crates (
0.0.0 (2022-08-05)
Initial release for name reservation.
Commit Statistics
- 3 commits contributed to the release.
- 0 commits were understood as conventional.
- 1 unique issue was worked on: #450