259 lines · 23.7 KB · Markdown
RawDownload

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.2.0 (2022-09-20)

New Features

  • Simple serialization for Instruction and RefSpecRef type. 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 bstr to 1.0.1

Commit Statistics

  • 72 commits contributed to the release over the course of 18 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 specs in MatchGroup public to reduce API surface. (2a7df32)
    • Allow match_group::Fix to be cloned. (85c49ec)
    • fix match_group::Item to 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 Outcome type 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 Instruction and RefSpecRef type. (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 surrounding MatchGroup (dd1d824)
    • more robust baseline tests on windows (54ca267)
    • pares FETCH_HEAD (as specs without local sides); sketch Match type (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 bstr to 1.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-remote and git fetch (1b15fe8)
    • a tiny sketch of a possible matching API (39d5ff3)
  • #470
    • update changelogs prior to release (caa7a1b)
  • 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)
    • make fmt (429cccc)
    • Merge branch 'index-from-tree' (172f73c)
    • thanks clippy (74a5f22)
    • thanks clippy (016cd1f)
    • thanks clippy (b8ac13e)
    • thanks clippy (73b405f)
    • make fmt (535e967)
    • Merge branch 'git_date_parse' (75591fb)
    • Release git-hash v0.9.9 (da0716f)

0.1.1 (2022-08-28)

Maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release over the course of 1 calendar day.
  • 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)
  • 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)

0.1.0 (2022-08-24)

Chore

  • uniformize deny attributes
  • remove default link to cargo doc everywhere

Commit Statistics

  • 52 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)
  • 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 'example-write-blob' (afedd7f)
    • Merge pull request #494 from ultrasaurus/patch-1 (86fe22c)
    • Merge branch 'main' into remote-ls-refs (95f2f4f)
    • Merge branch 'example-new-repo' (946dd3a)
    • Merge branch 'main' into remote-ls-refs (e2ee3de)
    • 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 remote-ls-refs (c4bf958)
    • Merge branch 'format_git_date_time' (99e12be)
    • Merge branch 'main' into remote-ls-refs (de61c4d)
    • thanks clippy (4bd747c)
    • Merge branch 'main' into remote-ls-refs (e8fc89d)
    • thanks clippy (b9e1cdb)
    • thanks clippy (6c963b0)
    • thanks clippy (b62ee56)

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

Commit Details

view details
  • #450
    • prepare git-refspec changelog prior to release (3383408)
    • empty git-refspec crate for name reservation prior to implementation (871a3c0)
  • Uncategorized
    • Release git-refspec v0.0.0 (d406689)