1284 lines · 113.2 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.12.0 (2022-04-03)

New Features

  • Fullname(Ref)::category() and Category A way to classify references.
  • FullName(Ref)::strip_prefix() Get a short-hand for any reference name.
  • 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.
  • 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, prefix try_.

Commit Statistics

  • 34 commits contributed to the release over the course of 68 calendar days.
  • 69 days passed between releases.
  • 7 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
    • Use hash_hasher based hash state for better keys/less collisions (814de07)
    • FullNameRef::file_name() (28e3251)
    • Display implementation for FullName. (cf50ae2)
  • #301
    • performance issue on windows is due to slow process execution speed (60bcffc)
    • speed up git-pack testing on windows (8ca400c)
  • #329
    • Document all features related to serde1 (72b97f2)
  • #331
    • Add git_config::values::Path for a typesafe git path (e4d6685)
  • #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)
  • #364
    • Target::as_(id|name) -> Target::try_(id|name) (7984e19)
    • refactor (b1b9871)
    • Fullname(Ref)::category() and Category (e7e4ba2)
    • FullName(Ref)::strip_prefix() (af2d399)
    • Full error handling for CommitRefIter (b94471a)
  • Uncategorized
    • 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)
    • 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)
    • Release git-hash v0.9.2, git-object v0.17.1, git-pack v0.16.1 (0db19b8)
    • Merge branch 'index-information' (025f157)

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_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

  • 24 commits contributed to the release over the course of 55 calendar days.
  • 55 days passed between releases.
  • 6 commits where understood as conventional.
  • 4 unique issues were worked on: #263, #266, #279, #293

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)
  • #266
    • upgrade git-ref's os_str_bytes crate to 6.0.0 (0cfba57)
    • adapt to changes in git-odb (a44dd4b)
    • remove pack-cache from Find::try_find(…) (ebc7f47)
    • Clarify that we really need stable pack ids (cefc0fa)
    • move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait (2290d00)
  • #279
    • Adapt to changes in git-hash (754a663)
    • adjust to changes in git-hash (9bf25cc)
    • Required object_hash as parameter when instantiating any Store (dea6659)
    • remove Target::must_exist() (c46dec3)
    • adapt to changes in git-hash (3e75e8c)
  • #293
  • 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)
    • thanks clippy (7dd2313)

0.10.0 (2021-11-29)

With this release, file::Store is easier to use due to thread-safe handling of an internal and shared packed-buffer instance. An API for passing it as parameter like before is still present, allowing to use a 'frozen' version of the packed buffer for any amount of operations.

New Features

  • Add file::Store::iter_(prefixed_)packed().

    These methods allow using an own packed buffer, usually obtained through cached_packed_buffer().

  • add file::Store::cached_packed_buffer() for packed refs snapshots

  • add file::Store::try_find_packed(…, packed_buffer) That way, abstractions can still be built that have other ways of managing the packed-refs buffer, allowing it to stay more persistent.

Changed (BREAKING)

  • rename file::Store::packed_buffer() to …::open_packed_buffer() This makes much clearer what it actually does, as previously it might have been a stored packed buffer as well.

  • file::Store::from(PathBuf) removed At this low level, it's important to be clear about RefLogs and rather force the caller to specify the ref-log mode. Technically it depends on a few factors, git-repository deals with them, but certainly shouldn't default to anything without being clear.

  • Reference log line access Reference::log_iter(…) now is a platform instead of a forward iterator, which requires a call to .all() to return the forward iterator like previously.

    Reference::log_iter_rev(…) was removed in favor of Reference::log_iter(…).rev().

  • file::Store::iter() is now a platform, with .all() and .prefixed(…) respectively This way, it's possible to keep shared ownership of the packed buffer while allowing the exact same iterator machinery to work as before.

  • file::ReferenceExt::follow(…) now without packed refs parameter

  • file::ReferenceExt::peel_to_id_in_place(…) now without packed-refs buffer It is instead read from the internally synchronized buffer, shared across all instances.

  • file::Store::(try_)find(…, packed) was removed The packed buffer is now handled internally while loading it on demand. When compiled with git-features/parallel the file::Store remains send and sync.

    The packed refs buffer is shared across clones and it's recommended to clone one file::Store instance per thread, each of which can use its own namespace.

  • move git_ref::file::WriteRefLog to git_ref::store::WriteRefLog

Other (BREAKING)

  • Reference::logs() -> Reference::log_iter() The latter now returns a standard Platform to iterate over all reflog entries from oldest to newest or vice versa.

Refactor (BREAKING)

  • file::Store::base is now file::Store::base() and read-only That way, file databases can't be repositioned anymore, it's recommended to recreate it if that's desired.

Commit Statistics

  • 35 commits contributed to the release over the course of 3 calendar days.
  • 12 days passed between releases.
  • 13 commits where understood as conventional.
  • 2 unique issues were worked on: #259, #263

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #259
    • btree/hashmap free lookup of packs in store, keeping things more bundled (a88981b)
  • #263
    • Add file::Store::iter_(prefixed_)packed() (6a17416)
    • add file::Store::cached_packed_buffer() for packed refs snapshots (9eb3a31)
    • rename file::Store::packed_buffer() to …::open_packed_buffer() (b431fb0)
    • add file::Store::try_find_packed(…, packed_buffer) (b030884)
    • file::Store::from(PathBuf) removed (80f3d50)
    • Put general Store on hold - ref-table is needed to know how to go about it (bfa417b)
    • Don't even think about setting up test duplication for the general store (72a6464)
    • Reference::logs() -> Reference::log_iter() (951c050)
    • Reference log line access (bfb32ae)
    • Add platform for log iteration to hold byte buffers (1cd2362)
    • Assure the packed buffer is reloaded after a modification (f5570ff)
    • fmt (fbeddeb)
    • file::Store::iter() is now a platform, with .all() and .prefixed(…) respectively (5d498a3)
    • refactor (5fc3817)
    • refactor packed buffer sharing to allow for sharing snapshots (00c2545)
    • Let file transactions reuse the cached packed buffer (a9096b9)
    • file::ReferenceExt::follow(…) now without packed refs parameter (4641499)
    • file::ReferenceExt::peel_to_id_in_place(…) now without packed-refs buffer (55940eb)
    • file::Store::(try_)find(…, packed) was removed (15d429b)
    • Load packed buffer with interior mutability (ae2eef1)
    • Make it possible to return read guards with packed buffers (f5c3c8f)
    • file::Store::base is now file::Store::base() and read-only (0e18753)
    • refactor, realize why having a packed-buffer with the loose db is valuable (a76f041)
    • A mad attempt to use thread-local everywhere and avoid Sync… (0af5077)
    • Try implementing find_reference to realize that this extra abstraction is overkill (82ea1b8)
    • Look into iteration, but realize that it's harder than finding refs (fc753a8)
    • Sketch of State is seen in store handle and store itself (f87f852)
    • sketch a store handle (fc6480b)
    • move git_ref::file::WriteRefLog to git_ref::store::WriteRefLog (9524732)
  • Uncategorized
    • Release git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0 (d3f9227)
    • Release git-features v0.18.0, git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0, safety bump 12 crates (acd3737)
    • Adjust changelogs prior to release (ec38950)
    • thanks clippy (a74f27c)
    • Merge branch 'git-loose-objects' of https://github.com/xmo-odoo/gitoxide into xmo-odoo-git-loose-objects (ee737cd)

0.9.1 (2021-11-16)

New Features

  • PartialNameRef<'static>::join() for building paths on the fly
  • Allow PartialNameRef to be created from owned items

Commit Statistics

  • 6 commits contributed to the release over the course of 11 calendar days.
  • 27 days passed between releases.
  • 2 commits where understood as conventional.
  • 2 unique issues were worked on: #251, #254

Commit Details

view details
  • #251
    • PartialNameRef<'static>::join() for building paths on the fly (c0fc4f6)
    • refactor (244a646)
    • Allow PartialNameRef to be created from owned items (b7aab9e)
  • #254
    • Adjust changelogs prior to git-pack release (6776a3f)
  • Uncategorized
    • Release git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0 (f606fa9)
    • Adjusting changelogs prior to release of git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0, safety bump 5 crates (39b40c8)

v0.9.0 (2021-10-19)

A maintenance release to properly dealing with previously breaking changes in git-hash.

Commit Statistics

  • 4 commits contributed to the release.
  • 3 days passed between releases.
  • 0 commits where understood as conventional.
  • 1 unique issue was worked on: #222

Commit Details

view details
  • #222
    • update changelogs prior to release (9a493d0)
    • stabilize changelogs (920e832)
    • Update changelogs prior to release (b3e2252)
  • Uncategorized
    • Release git-hash v0.8.0, git-features v0.17.0, git-actor v0.6.0, git-object v0.15.0, git-diff v0.11.0, git-traverse v0.10.0, git-pack v0.13.0, git-odb v0.23.0, git-packetline v0.12.0, git-transport v0.13.0, git-protocol v0.12.0, git-ref v0.9.0, git-repository v0.11.0, git-commitgraph v0.6.0, gitoxide-core v0.12.0, gitoxide v0.10.0, cargo-smart-release v0.5.0, safety bump 16 crates (0e02953)

v0.8.0 (2021-10-15)

This release contains no functional changes, but is considered breaking for safety reasons as git-traverse is signalling a breaking change.

Other

  • add panicking Target::id() and TargetRef::id()

Commit Statistics

  • 20 commits contributed to the release over the course of 29 calendar days.
  • 34 days passed between releases.
  • 1 commit where understood as conventional.
  • 1 unique issue was worked on: #198

Commit Details

view details
  • #198
    • Fix stop-release-for-changelog logic and fix all affected changelogs (52b38bc)
    • deduplicate conventional message ids (e695eda)
    • regenerate all changelogs to get links (0c81769)
    • Mention actual issues that where worked on (a517e39)
    • respect release-wide ignore list to allow removing entire conventional headlines (145103d)
    • Rebuild all changelogs to assure properly ordered headlines (4a9a05f)
    • Sort all commits by time, descending… (f536bad)
    • greatly reduce changelog size now that the traversal fix is applied (a0bc98c)
    • Generate changelogs with details (e1861ca)
    • Update all changelogs with details (58ab2ae)
    • Update changelogs (c857d61)
    • Avoid adding newlines which make writing unstable (6b5c394)
    • Fix section headline level (9d6f263)
    • Write first version of changlogs thus far… (719b6bd)
    • add panicking Target::id() and TargetRef::id() (4ed4b2d)
  • Uncategorized
    • Release git-hash v0.7.0, git-features v0.16.5, git-actor v0.5.3, git-config v0.1.7, git-validate v0.5.3, git-object v0.14.1, git-diff v0.10.0, git-tempfile v1.0.3, git-lock v1.0.1, git-traverse v0.9.0, git-pack v0.12.0, git-odb v0.22.0, git-packetline v0.11.0, git-url v0.3.4, git-transport v0.12.0, git-protocol v0.11.0, git-ref v0.8.0, git-repository v0.10.0, cargo-smart-release v0.4.0 (59ffbd9)
    • Adjusting changelogs prior to release of git-hash v0.7.0, git-features v0.16.5, git-actor v0.5.3, git-validate v0.5.3, git-object v0.14.1, git-diff v0.10.0, git-tempfile v1.0.3, git-lock v1.0.1, git-traverse v0.9.0, git-pack v0.12.0, git-odb v0.22.0, git-packetline v0.11.0, git-url v0.3.4, git-transport v0.12.0, git-protocol v0.11.0, git-ref v0.8.0, git-repository v0.10.0, cargo-smart-release v0.4.0, safety bump 3 crates (a474395)
    • Update changelogs just for fun (21541b3)
    • Merge branch 'main' into changelog-generation (c956f33)
    • Bump git-traverse v0.9.0, safety bump 8 crates (d39fabb)

v0.7.3 (2021-09-10)

  • Compatibility with Rust 1.55. It informed about the incorrect usage of std::io::ErrorKind::Other which this crate also dependent on causing runtime bugs. The latter were detected by tests and this release contains the fix to not rely on certain behaviour anymore.

Other

  • loose reference iteration with non-dir prefixes… Previously it was expected for the prefix Path to always exist for the prefix to be valid. This, however, is not similar to packed prefixes, which allow non-dir prefixes as well.

    Now we will check if the prefix is actually a directory, and if not split it into its parent directory and the filename portion. The latter is then used for prefix matching file names within that directory.

Commit Statistics

  • 4 commits contributed to the release.
  • 1 commit where understood as conventional.
  • 1 unique issue was worked on: #198

Commit Details

view details
  • #198
    • loose reference iteration with non-dir prefixes… (293bfc0)
  • Uncategorized
    • Release git-ref v0.7.3 (b0a9815)
    • Update changelogs once more… (d57d279)
    • Update changelogs retro-actively… (78cfe0a)

v0.7.2 (2021-09-10)

Other

  • improve changelog format

Commit Statistics

  • 4 commits contributed to the release.
  • 1 day passed between releases.
  • 1 commit where understood as conventional.
  • 1 unique issue was worked on: #198

Commit Details

view details
  • #198
    • improve changelog format (90e6128)
  • Uncategorized
    • Release git-ref v0.7.2 (e940e9a)
    • [#195] Fix previously incorrect usage of io::Kind::Other… (4dae07d)
    • thanks clippy (4701296)

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

v0.7.1 (2021-09-08)

Commit Statistics

  • 2 commits contributed to the release.
  • 1 day passed between releases.
  • 0 commits where understood as conventional.
  • 0 issues like '(#ID)' where seen in commit messages

Commit Details

Lines 1–500 of 1284.