1942 lines · 163.1 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.18.0 (2022-11-06)

Bug Fixes

  • allow symref updates to receive reflogs if these are new… …and well-known on top of that, that means having an exact expectation on what should be present.

    This allows symrefs to be created with reflog.

Bug Fixes (BREAKING)

  • support for non-'static PackedRefs transactions. When configuring for packed-refs updates, previously one needed to provide a function to find objects that could not borrow data due to implicit 'static requirement. This has been lifted to allow it to access references to data on the stack.

Commit Statistics

  • 9 commits contributed to the release over the course of 6 calendar days.
  • 27 days passed between releases.
  • 2 commits were understood as conventional.
  • 1 unique issue was worked on: #450

Thanks Clippy

Clippy helped 2 times to make code idiomatic.

Commit Details

view details
  • #450
    • support for non-'static PackedRefs transactions. (328900a)
    • add test to validate new symref reflog behaviour (8b5cf38)
    • allow symref updates to receive reflogs if these are new… (6e5c0ae)
  • Uncategorized
    • prepare changelogs prior to release (423af90)
    • Merge branch 'main' into write-sparse-index (upgrade to Rust 1.65) (5406630)
    • thanks clippy (04cfa63)
    • Merge branch 'main' into write-sparse-index (c4e6849)
    • Merge branch 'gix-clone' (def53b3)
    • thanks clippy (3eaedda)

0.17.0 (2022-10-10)

New Features

  • transaction::Change::new_value() to get easy access to new values of references. That's more convenient than matching on the enum.
  • FullName::try_from(&BString) for convenience. Sometimes when matching one only has a &BString, and it's hard to convert it to &BStr without an extra line of code, it's cumbersome, so we workaround by adding another conversion.

Changed (BREAKING)

  • file::Transaction::prepare() now takes two git_lock::acquisition::Fail instances. This allows to configure the file-ref lock failure mode differently from the packed-refs lock failure mode, which is exactly what git does as well defaulting them to 100ms and 1000ms till lock acquisition gives up.

Commit Statistics

  • 11 commits contributed to the release over the course of 20 calendar days.
  • 20 days passed between releases.
  • 3 commits were understood as conventional.
  • 1 unique issue was worked on: #450

Commit Details

view details
  • #450
    • transaction::Change::new_value() to get easy access to new values of references. (370ed3d)
    • file::Transaction::prepare() now takes two git_lock::acquisition::Fail instances. (e699291)
    • FullName::try_from(&BString) for convenience. (658c125)
    • Improve docs slightly (4850202)
  • 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 'main' into new-http-impl (702a161)
    • make fmt (53acf25)
    • Merge branch 'fetch-pack' (3c49400)
    • Merge branch 'fix-git-features' (82fd251)
    • Merge branch 'diff' (25a7726)

0.16.0 (2022-09-20)

Chore (BREAKING)

  • replace quick-error with thiserror

Commit Statistics

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

Commit Details

view details
  • #450
  • #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)
    • Merge branch 'filter-refs' (3773b92)
    • Release git-features v0.22.6 (c9eda72)
    • Merge branch 'filter-refs' (e10554d)
    • Merge branch 'filter-refs-by-spec' (5c05198)
    • 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)
    • 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)
    • Release git-path v0.4.2, git-config-value v0.7.0 (c48fb31)
    • Merge branch 'main' into filter-refs-by-spec (cef0b51)

0.15.4 (2022-08-28)

New Features

  • Add Reference::delete() for simple reference deletion

Commit Statistics

  • 3 commits contributed to the release.
  • 1 day passed between releases.
  • 1 commit was 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)
    • Add Reference::delete() for simple reference deletion (2d0b639)

0.15.3 (2022-08-27)

Maintenance release without user-facing changes.

Commit Statistics

  • 4 commits contributed to the release over the course of 3 calendar days.
  • 3 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release git-attributes v0.3.3, git-ref v0.15.3, git-index v0.4.3, git-worktree v0.4.3, git-testtools v0.8.0 (baad4ce)
    • prepare changelogs prior to release of git-testtools (7668e38)
    • Release git-features v0.22.3, git-revision v0.4.4 (c2660e2)
    • Merge branch 'main' into filter-refs-by-spec (cfa1440)

0.15.2 (2022-08-24)

Chore

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

New Features

  • use docsrs feature in code to show what is feature-gated automatically on docs.rs
  • pass --cfg docsrs when compiling for https://docs.rs

Commit Statistics

  • 9 commits contributed to the release over the course of 5 calendar days.
  • 6 days passed between releases.
  • 4 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • 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)
    • Release git-path v0.4.1 (5e82346)
    • Merge branch 'main' into remote-ls-refs (e2ee3de)
    • Merge branch 'docsrs-show-features' (31c2351)
    • use docsrs feature in code to show what is feature-gated automatically on docs.rs (b1c40b0)
    • uniformize deny attributes (f7f136d)
    • pass --cfg docsrs when compiling for https://docs.rs (5176771)
    • remove default link to cargo doc everywhere (533e887)
    • Merge branch 'main' into remote-ls-refs (bd5f3e8)

0.15.1 (2022-08-17)

Bug Fixes

  • always update modification date when packed refs are forcefully reloaded. The latter happens right after the file was written, which means we definitely have to update our modification date or else the buffer will be read again next time somebody asks for an up-to-date version.

    The ordering of operations is such that at worst, the buffer is loaded again instead of keeping an outdated version of it, which would happen if the metadata is read afterwards.

Commit Statistics

  • 21 commits contributed to the release over the course of 26 calendar days.
  • 26 days passed between releases.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #427

Thanks Clippy

Clippy helped 2 times to make code idiomatic.

Commit Details

view details
  • #427
    • make fmt (4b320e7)
    • adapt to changes in git-features (777b40c)
    • Adjust to changes in git-features (07168c7)
    • Use generalized reload-on-demand in git-ref (8d0cce7)
    • Now it's possible to update packed refs using the shared code (78222c2)
    • The first step towards using the generalized ReloadIfChanged in git-ref (e8de0ef)
    • always update modification date when packed refs are forcefully reloaded. (1d20035)
  • Uncategorized
    • 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)
    • prepare changelogs prior to reelase (c06ae1c)
    • 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)
    • Merge branch 'rev-parse-delegate' (2f506c7)
    • thanks clippy (763cec8)
    • Merge pull request #2 from SidneyDouw/main (ce885ad)
    • Merge branch 'Byron:main' into main (9b9ea02)
    • Merge branch 'main' into rev-parse-delegate (6da8250)
    • Merge branch 'main' into pathspec (7b61506)
    • Merge branch 'kianmeng-fix-typos' (4e7b343)
    • Fix typos (e9fcb70)

0.15.0 (2022-07-22)

New Features

  • Add store::WriteRefLog::Always to unconditionally write reflogs.
  • Allow Reference to be serialized/deserialized with serde.

Changed (BREAKING)

  • 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

  • 15 commits contributed to the release over the course of 36 calendar days.
  • 39 days passed between releases.
  • 3 commits were understood as conventional.
  • 2 unique issues were worked on: #331, #427

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #331
    • Target(Ref)?::try_name() now returns Option<&FullNameRef>. (0f753e9)
    • Add store::WriteRefLog::Always to unconditionally write reflogs. (4607a18)
  • #427
    • Allow Reference to be serialized/deserialized with serde. (f3c609f)
  • Uncategorized
    • Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
    • prepare changelog prior to release (3c50625)
    • Merge branch 'config-cascade' (f144eaf)
    • Merge pull request #1 from Byron/main (085e76b)
    • Merge branch 'config-comfort' (84b98d9)
    • assure document-features are available in all 'usable' and 'early' crates (238581c)
    • Merge branch 'main' into pathspec (89ea12b)
    • Merge branch 'main' into cont_include_if (daa71c3)
    • thanks clippy (e1003d5)
    • generally avoid using target_os = "windows" in favor of cfg(windows) and negations (91d5402)
    • Merge branch 'main' into cont_include_if (41ea8ba)
    • Release git-path v0.3.0, safety bump 14 crates (400c9be)

0.14.0 (2022-06-13)

A maintenance release without user-facing changes.

Commit Statistics

  • 5 commits contributed to the release over the course of 25 calendar days.
  • 25 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like '(#ID)' were 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)
    • Merge branch 'main' into SidneyDouw-pathspec (a22b1d8)
    • Merge branch 'main' into git_includeif (598c853)

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::LinkedRef With it one can access all refs as advertised.
  • Category::MainRef With 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(…) 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.

  • remove FullName::to_ref() in favor of •::as_ref(). This became possible now that FullNameRef is a proper ref, not just ref-like.

  • 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.

  • 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.

  • 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)

  • Turn FullNameRef into an actual reference type. That way Cow<'_, FullNameRef> works as expected.

Commit Statistics

  • 116 commits contributed to the release over the course of 42 calendar days.
  • 43 days passed between releases.
  • 13 commits were 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
    • Enforce path conversion on windows gnu, it doesn't seem to like slashes (4d55a8f)
    • mention that failing path when a ref-file couldn't be read (ecb539a)
  • #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(…) takes git-actor::SignatureRef instead 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 Cow at 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)

Lines 1–500 of 1942.