Skip to content

Latest commit

 

History

History
2372 lines (1832 loc) · 213 KB

CHANGELOG.md

File metadata and controls

2372 lines (1832 loc) · 213 KB

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.48.0 (2025-04-04)

New Features

  • add commit::ExtraHeaders::find_pos(), and expose "gpgsig" header name. That way it it's easier to manipulate existing extra-header fields.
  • add CommitRef|TagRef|BlobRef::into_owned() as shortcut. Otherwise one would have to know it converts into Commit via From.

Bug Fixes

  • Support empty tags with or without trailing NL When representing an annotated tag with an empty commit message, we used to only support a tag ending with two newlines (one after the tagger line + one after the empty commit message).

    This was due to a misconception that annotated tags ending with a single NL shouldn't exist in the wild since there isn't an obvious way to create them from with git. This misconception shows up in the discussion thread for issue 603

    It turns out that both encodings of empty annotated tags appear in the wild.

    We must be able to parse either and roundtrip for either.

    Before PR 604, we used to special case the empty tag msg case and not add a NL. To be able to represent b"", b"\n", b"\n\n"..., we special case any message that is a pure sequence of b'\n' and actually parse the b'\n' into the tag's message.

    This allows us to calculate the correct size that matches the number of bytes that git would produce, as well as round-trip to and from the commit encoding.

    The existing tests (in particular round_trip for empty.txt and empty_missing_nl.txt) convince me that the logic is sound. Also, the size being 139 bytes for empty_missing_nl.txt and 140 bytes for empty.txt matches the output of cat file | wc -l for each file.

Other

  • Repository::commit() now explains how to create a commit without ref updates.

Changed (BREAKING)

  • drop migration shims for fallible hashing Since the APIs were already adjusted and all callers migrated, we only need to drop the migration shims.
  • make gix_object::compute_hash fallible compute_stream_hash is already fallible, so we don’t want to keep the try_* prefix on the fallible API.
  • adjust error return types to handle collision detection This does mean a lot of churn across the tree, but the change is usually just an adjustment to variants of an existing error type, so I expect that most downstream users will require little to no adaption for this change.
  • use separate error type for I/O hashing operations Prepare for hashing becoming fallible.
  • adjust hash verification return types for the common interface This mostly just affects return types – using git_hash::verify::Error instead of bespoke duplicated versions thereof, and occasionally returning an ObjectId instead of () for convenience.

Commit Statistics

  • 33 commits contributed to the release.
  • 9 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • Uncategorized
    • Update changelogs prior to release (38dff41)
    • Merge pull request #1915 from emilazy/push-qvyqmopsoltr (4660f7a)
    • Refactor (4501086)
    • Drop migration shims for fallible hashing (a68f115)
    • Migrate gix_object::{try_ =>}compute_hash users (3d7e379)
    • Make gix_object::compute_hash fallible (b5ac93a)
    • Migrate hashing API users to fallible versions (fbf6cc8)
    • Add fallible gix_object::try_compute_hash for migration (f2b07c0)
    • Adjust error return types to handle collision detection (5095f44)
    • Use separate error type for I/O hashing operations (4f2b649)
    • Adjust hash verification return types for the common interface (54e5764)
    • Migrate all hashing API users to gix_hash::Hasher::finalize() (4e935ce)
    • Migrate all hashing API users to gix_hash (baa1430)
    • Use gix_object::compute_hash in a test and benchmark (7805ffe)
    • Factor out private gix_object::object_hasher helper (cf261d5)
    • Merge pull request #1908 from EliahKagan/run-ci/scripts (c8c42b4)
    • Fix a few ShellCheck warnings and stylistic inconsistencies (e5e2c6f)
    • Merge pull request #1907 from EliahKagan/run-ci/raw (7b17da6)
    • Use raw literals for more strings with backslashes (01bd76d)
    • Merge pull request #1903 from pierrechevalier83/tag_end_of_line (6caee49)
    • Support empty tags with or without trailing NL (f69890c)
    • Merge pull request #1854 from GitoxideLabs/montly-report (16a248b)
    • Thanks clippy (8e96ed3)
    • Merge pull request #1837 from GitoxideLabs/improvements (b4fe425)
    • Add commit::ExtraHeaders::find_pos(), and expose "gpgsig" header name. (bf85128)
    • Repository::commit() now explains how to create a commit without ref updates. (866affd)
    • Add CommitRef|TagRef|BlobRef::into_owned() as shortcut. (527fd3d)
    • Merge pull request #1822 from epage/w7 (11ac79c)
    • Upgrade to Winnow 0.7 (fdc57e7)
    • Switch to ModalParser (0e71412)
    • Resolve Winnow deprecations (3cd3e2a)
    • Upgrade to Winnow 0.6.26 (783c4e6)
    • Merge pull request #1778 from GitoxideLabs/new-release (8df0db2)

0.47.0 (2025-01-18)

Chore

  • bump rust-version to 1.70 That way clippy will allow to use the fantastic Option::is_some_and() and friends.

New Features

  • add conversion from tree::Entry to EntryRef with From
  • add TreeRefIter::offset_to_next_entry(). Add a function to help resume the iterator without holding onto the data directly.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release gix-utils v0.1.14, gix-actor v0.33.2, gix-hash v0.16.0, gix-trace v0.1.12, gix-features v0.40.0, gix-hashtable v0.7.0, gix-path v0.10.14, gix-validate v0.9.3, gix-object v0.47.0, gix-glob v0.18.0, gix-quote v0.4.15, gix-attributes v0.24.0, gix-command v0.4.1, gix-packetline-blocking v0.18.2, gix-filter v0.17.0, gix-fs v0.13.0, gix-chunk v0.4.11, gix-commitgraph v0.26.0, gix-revwalk v0.18.0, gix-traverse v0.44.0, gix-worktree-stream v0.19.0, gix-archive v0.19.0, gix-bitmap v0.2.14, gix-tempfile v16.0.0, gix-lock v16.0.0, gix-index v0.38.0, gix-config-value v0.14.11, gix-pathspec v0.9.0, gix-ignore v0.13.0, gix-worktree v0.39.0, gix-diff v0.50.0, gix-blame v0.0.0, gix-ref v0.50.0, gix-sec v0.10.11, gix-config v0.43.0, gix-prompt v0.9.1, gix-url v0.29.0, gix-credentials v0.27.0, gix-discover v0.38.0, gix-dir v0.12.0, gix-mailmap v0.25.2, gix-revision v0.32.0, gix-merge v0.3.0, gix-negotiate v0.18.0, gix-pack v0.57.0, gix-odb v0.67.0, gix-refspec v0.28.0, gix-shallow v0.2.0, gix-packetline v0.18.3, gix-transport v0.45.0, gix-protocol v0.48.0, gix-status v0.17.0, gix-submodule v0.17.0, gix-worktree-state v0.17.0, gix v0.70.0, gix-fsck v0.9.0, gitoxide-core v0.45.0, gitoxide v0.41.0, safety bump 42 crates (dea106a)
    • Update all changelogs prior to release (1f6390c)
    • Merge pull request #1762 from GitoxideLabs/fix-1759 (7ec21bb)
    • Bump rust-version to 1.70 (17835bc)
    • Merge pull request #1746 from GitoxideLabs/status (af704f5)
    • Add conversion from tree::Entry to EntryRef with From (9f26645)
    • Merge pull request #1410 from GitoxideLabs/status (0ab4f64)
    • Add TreeRefIter::offset_to_next_entry(). (8141765)
    • Merge pull request #1739 from GitoxideLabs/new-release (d22937f)

0.46.1 (2024-12-22)

A maintenance release without user-facing changes.

But actually, TreeRefIter now has methods to lookup entries, also recursively.

Commit Statistics

  • 14 commits contributed to the release over the course of 28 calendar days.
  • 28 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 gix-date v0.9.3, gix-object v0.46.1, gix-command v0.4.0, gix-filter v0.16.0, gix-fs v0.12.1, gix-traverse v0.43.1, gix-worktree-stream v0.18.0, gix-archive v0.18.0, gix-ref v0.49.1, gix-prompt v0.9.0, gix-url v0.28.2, gix-credentials v0.26.0, gix-diff v0.49.0, gix-dir v0.11.0, gix-revision v0.31.1, gix-merge v0.2.0, gix-pack v0.56.0, gix-odb v0.66.0, gix-shallow v0.1.0, gix-packetline v0.18.2, gix-transport v0.44.0, gix-protocol v0.47.0, gix-status v0.16.0, gix-worktree-state v0.16.0, gix v0.69.0, gitoxide-core v0.44.0, gitoxide v0.40.0, safety bump 16 crates (c1ba571)
    • Update changelogs prior to release (7ea8582)
    • Merge pull request #1686 from cruessler/move-lookup-entry-to-gix-object (39227a9)
    • Refactors (d7f4991)
    • Add test for entry that does not exist (54e399f)
    • Match on complete entry (08a86dc)
    • Deduplicate tests (2de935d)
    • Replace FindExt by Find (579a6f2)
    • Move lookup_entry, lookup_entry_by_path to TreeRefIter (32632e9)
    • Remove superfluous trait bound (1c6e4ae)
    • Don't recurse, use loop instead (7e66a4a)
    • Sketch recursive lookup (0cf6d3a)
    • Add lookup_entry, lookup_entry_by_path to TreeRef (d121fe7)
    • Merge pull request #1701 from GitoxideLabs/release (e8b3b41)

0.46.0 (2024-11-24)

New Features

  • octal Debug representation of tree::EntryMode. This makes it easier to reason about.
  • FindExt now supports empty trees and empty blobs natively.
  • Add tree::Editor::get() to get entries directly from the editor. This is useful if in the middle of an edit you'd like to lookup what's there to choose a non-conflicting name, for example.

New Features (BREAKING)

  • move gix-odb::Write trait to gix-object::Write. There it's far more useful and plumbing crates are enabled to write objects without pulling in gix-odb as dependency.

Commit Statistics

  • 14 commits contributed to the release.
  • 4 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release gix-date v0.9.2, gix-actor v0.33.1, gix-hash v0.15.1, gix-features v0.39.1, gix-validate v0.9.2, gix-object v0.46.0, gix-path v0.10.13, gix-quote v0.4.14, gix-attributes v0.23.1, gix-packetline-blocking v0.18.1, gix-filter v0.15.0, gix-chunk v0.4.10, gix-commitgraph v0.25.1, gix-revwalk v0.17.0, gix-traverse v0.43.0, gix-worktree-stream v0.17.0, gix-archive v0.17.0, gix-config-value v0.14.10, gix-lock v15.0.1, gix-ref v0.49.0, gix-config v0.42.0, gix-prompt v0.8.9, gix-url v0.28.1, gix-credentials v0.25.1, gix-bitmap v0.2.13, gix-index v0.37.0, gix-worktree v0.38.0, gix-diff v0.48.0, gix-discover v0.37.0, gix-pathspec v0.8.1, gix-dir v0.10.0, gix-mailmap v0.25.1, gix-revision v0.31.0, gix-merge v0.1.0, gix-negotiate v0.17.0, gix-pack v0.55.0, gix-odb v0.65.0, gix-packetline v0.18.1, gix-transport v0.43.1, gix-protocol v0.46.1, gix-refspec v0.27.0, gix-status v0.15.0, gix-submodule v0.16.0, gix-worktree-state v0.15.0, gix v0.68.0, gix-fsck v0.8.0, gitoxide-core v0.43.0, gitoxide v0.39.0, safety bump 25 crates (8ce4912)
    • Prepare changelogs prior to release (bc9d994)
    • Merge pull request #1661 from GitoxideLabs/merge (0b7abfb)
    • Octal Debug representation of tree::EntryMode. (cd61c25)
    • Merge pull request #1690 from EliahKagan/gitattributes (700cfa5)
    • Fix marking gix-packetline-blocking copy auto-generated (325588e)
    • Merge pull request #1662 from paolobarbolini/thiserror-v2 (7a40648)
    • Upgrade thiserror to v2.0.0 (0f0e4fe)
    • Merge pull request #1618 from GitoxideLabs/merge (3fb989b)
    • Adapt to changes in gix-object and gix-odb (96488f7)
    • Move gix-odb::Write trait to gix-object::Write. (7325c58)
    • FindExt now supports empty trees and empty blobs natively. (29aad45)
    • Add tree::Editor::get() to get entries directly from the editor. (e2ea398)
    • Merge pull request #1642 from GitoxideLabs/new-release (db5c9cf)

0.45.0 (2024-10-22)

New Features

  • TreeRef::to_owned() and Tree::into_owned() for a convenient way to get a fully-owned Tree
  • add tree::Editor With it it's easy to alter existing trees or build entirely new ones, efficiently.
  • add Default implementation to Tree

Bug Fixes

  • keep multi-line header value newlines verbatim Previously they were normalized to \n which made round-trips degenerate information.

    It's notable that we explicitly do NOT normalize the newline at the very last line of the multi-line header as its part of that line, even though it's also relevant to make the header field valid. The reason is that these can also be written with \r\n, and we don't want to degenerate that information.

  • remove workspace lints from Cargo manifests of fuzz-projects. They are not part of the parent workspace.

Other

  • Update gitoxide repository URLs This updates Byron/gitoxide URLs to GitoxideLabs/gitoxide in:

    • Markdown documentation, except changelogs and other such files where such changes should not be made.

    • Documentation comments (in .rs files).

    • Manifest (.toml) files, for the value of the repository key.

    • The comments appearing at the top of a sample hook that contains a repository URL as an example.

    When making these changes, I also allowed my editor to remove trailing whitespace in any lines in files already being edited (since, in this case, there was no disadvantage to allowing this).

    The gitoxide repository URL changed when the repository was moved into the recently created GitHub organization GitoxideLabs, as detailed in #1406. Please note that, although I believe updating the URLs to their new canonical values is useful, this is not needed to fix any broken links, since Byron/gitoxide URLs redirect (and hopefully will always redirect) to the coresponding GitoxideLabs/gitoxide URLs.

    While this change should not break any URLs, some affected URLs were already broken. This updates them, but they are still broken. They will be fixed in a subsequent commit.

    This also does not update Byron/gitoxide URLs in test fixtures or test cases, nor in the Makefile. (It may make sense to change some of those too, but it is not really a documentation change.)

Bug Fixes (BREAKING)

  • Tree|TreeRef::write_to() will now assure the most basic sanity of entry names. Previously, it would allow null-bytes in the name which would corrupt the written tree. Now this is forbidden. For some reason, it disallowed newlines, but that is now allowed as validation is should be handled on a higher level.

  • remove all workspace dependencies The problem is that with them, we don't notice anymore if the crate changes, because a dependency changes. That also means that older versions of the dependency may stay even though some other crates might pick up a newer version.

    Ultimately, this will lead to drift and subtle incompatibilities.

    We declare this breaking to enforce a proper re-release.

Commit Statistics

  • 36 commits contributed to the release over the course of 60 calendar days.
  • 60 days passed between releases.
  • 8 commits were understood as conventional.
  • 1 unique issue was worked on: #1542

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #1542
    • Be lenient to missing timestamp in signature (059c9f9)
    • Add test for tag missing timestamp in tagger (ce5d79c)
  • Uncategorized
    • Release gix-date v0.9.1, gix-utils v0.1.13, gix-actor v0.33.0, gix-hash v0.15.0, gix-trace v0.1.11, gix-features v0.39.0, gix-hashtable v0.6.0, gix-validate v0.9.1, gix-object v0.45.0, gix-path v0.10.12, gix-glob v0.17.0, gix-quote v0.4.13, gix-attributes v0.23.0, gix-command v0.3.10, gix-packetline-blocking v0.18.0, gix-filter v0.14.0, gix-fs v0.12.0, gix-chunk v0.4.9, gix-commitgraph v0.25.0, gix-revwalk v0.16.0, gix-traverse v0.42.0, gix-worktree-stream v0.16.0, gix-archive v0.16.0, gix-config-value v0.14.9, gix-tempfile v15.0.0, gix-lock v15.0.0, gix-ref v0.48.0, gix-sec v0.10.9, gix-config v0.41.0, gix-prompt v0.8.8, gix-url v0.28.0, gix-credentials v0.25.0, gix-ignore v0.12.0, gix-bitmap v0.2.12, gix-index v0.36.0, gix-worktree v0.37.0, gix-diff v0.47.0, gix-discover v0.36.0, gix-pathspec v0.8.0, gix-dir v0.9.0, gix-mailmap v0.25.0, gix-merge v0.0.0, gix-negotiate v0.16.0, gix-pack v0.54.0, gix-odb v0.64.0, gix-packetline v0.18.0, gix-transport v0.43.0, gix-protocol v0.46.0, gix-revision v0.30.0, gix-refspec v0.26.0, gix-status v0.14.0, gix-submodule v0.15.0, gix-worktree-state v0.14.0, gix v0.67.0, gix-fsck v0.7.0, gitoxide-core v0.42.0, gitoxide v0.38.0, safety bump 41 crates (3f7e8ee)
    • Merge pull request #1624 from EliahKagan/update-repo-url (795962b)
    • Update gitoxide repository URLs (64ff0a7)
    • Merge pull request #1612 from Byron/merge (37c1e4c)
    • Thanks clippy (af03832)
    • Merge pull request #1617 from Byron/commit-roundtrip (f35b109)
    • Modernize integration tests (7fcf91a)
    • Keep multi-line header value newlines verbatim (4a6bbb1)
    • Reproduce roundtrip failure for commit that looks good otherwise (9db3f9c)
    • Merge pull request #1593 from Byron/fix-fuzz (72daa46)
    • Remove workspace lints from Cargo manifests of fuzz-projects. (cdac4a9)
    • Merge pull request #1566 from Byron/merge (d69c617)
    • TreeRef::to_owned() and Tree::into_owned() for a convenient way to get a fully-owned Tree (7c48556)
    • Use a standard HashMap instead of one based on SHA1 (39d8e03)
    • Add benchmarks for the tree editor and the tree-editor cursor (b5dc45f)
    • Tree|TreeRef::write_to() will now assure the most basic sanity of entry names. (a085b7e)
    • Add tree::Editor::cursor() to allow speedier creation of sub-trees. (91fa478)
    • Add tree::Editor (14dfcf0)
    • Add Default implementation to Tree (71bf808)
    • Merge pull request #1557 from Byron/merge-base (649f588)
    • Allow empty-docs (beba720)
    • Merge branch 'global-lints' (37ba461)
    • Workspace Clippy lint management (2e0ce50)
    • Merge pull request #1547 from nyurik/cast-lossless (c3a7dcf)
    • Fix clippy::cast_lossless (29ad2df)
    • Merge pull request #1546 from nyurik/semilocons (f992fb7)
    • Add missing semicolons (ec69c88)
    • Merge branch 'issue-1542' (c3f173c)
    • Make binary-search based test more robust (1b600f3)
    • Adjust expectation now that author parsing is more lenient. (bfd5009)
    • Merge pull request #1540 from NobodyXu/patch-1 (f4898b9)
    • Fix winnow version requirement in gix-object (0a3ce48)
    • Merge branch 'fixes' (46cd1ae)
    • Remove all workspace dependencies (1757377)

0.44.0 (2024-08-22)

A maintenance release without user-facing changes.

Commit Statistics

  • 2 commits contributed to the release.
  • 0 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release gix-actor v0.32.0, gix-object v0.44.0, gix-filter v0.13.0, gix-revwalk v0.15.0, gix-traverse v0.41.0, gix-worktree-stream v0.15.0, gix-archive v0.15.0, gix-ref v0.47.0, gix-config v0.40.0, gix-index v0.35.0, gix-worktree v0.36.0, gix-diff v0.46.0, gix-discover v0.35.0, gix-dir v0.8.0, gix-mailmap v0.24.0, gix-negotiate v0.15.0, gix-pack v0.53.0, gix-odb v0.63.0, gix-revision v0.29.0, gix-refspec v0.25.0, gix-status v0.13.0, gix-submodule v0.14.0, gix-worktree-state v0.13.0, gix v0.66.0, gix-fsck v0.6.0, gitoxide-core v0.41.0, gitoxide v0.38.0, safety bump 26 crates (b3ff033)
    • Prepare changelog prior to (yet another) release (209b6de)

0.43.0 (2024-08-22)

A maintenance release without user-facing changes.

Commit Statistics

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

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • Uncategorized
    • Release gix-date v0.9.0, gix-actor v0.31.6, gix-validate v0.9.0, gix-object v0.43.0, gix-path v0.10.10, gix-attributes v0.22.4, gix-command v0.3.9, gix-packetline-blocking v0.17.5, gix-filter v0.12.0, gix-fs v0.11.3, gix-revwalk v0.14.0, gix-traverse v0.40.0, gix-worktree-stream v0.14.0, gix-archive v0.14.0, gix-ref v0.46.0, gix-config v0.39.0, gix-prompt v0.8.7, gix-url v0.27.5, gix-credentials v0.24.5, gix-ignore v0.11.4, gix-index v0.34.0, gix-worktree v0.35.0, gix-diff v0.45.0, gix-discover v0.34.0, gix-dir v0.7.0, gix-mailmap v0.23.6, gix-negotiate v0.14.0, gix-pack v0.52.0, gix-odb v0.62.0, gix-packetline v0.17.6, gix-transport v0.42.3, gix-protocol v0.45.3, gix-revision v0.28.0, gix-refspec v0.24.0, gix-status v0.12.0, gix-submodule v0.13.0, gix-worktree-state v0.12.0, gix v0.65.0, gix-fsck v0.5.0, gitoxide-core v0.40.0, gitoxide v0.38.0, safety bump 25 crates (d19af16)
    • Prepare changelogs prior to release (0f25841)
    • Merge branch 'dependabot/github_actions/github-actions-c4bcf5a8e2' (2e00b5e)
    • Make winnow a workspace dependency (78a7e32)
    • Merge branch 'improvements' (12313f2)
    • Thanks clippy (ae2b733)
    • Merge branch 'upgrades' (1d37bf6)
    • Update all dependencies and fix deprecations (f5cd3ba)
    • Merge branch 'ag/jiff' (5871fb1)
    • Assure the next release is breaking (9fd1090)

0.42.3 (2024-07-03)

A maintenance release without user-facing changes.

Commit Statistics

  • 13 commits contributed to the release.
  • 42 days passed between releases.
  • 0 commits were understood as conventional.
  • 1 unique issue was worked on: #1438

Commit Details

view details
  • #1438
    • Reproduce failure when parsing malformed commit (6c5861d)
  • Uncategorized
    • Release gix-actor v0.31.4, gix-object v0.42.3 (bf3d82a)
    • Prepare changelogs prior to release (255920e)
    • Merge branch 'fix-1438' (9717a25)
    • Adapt to changes in gix-actor (8dca2d4)
    • Release gix-actor v0.31.3, gix-mailmap v0.23.4 (1e79c5c)
    • Release gix-date v0.8.7, gix-mailmap v0.23.2 (c1d7c02)
    • Merge branch 'tar-only' (1dfa90d)
    • Remove binary files in favor of tar files (dcab79a)
    • Merge branch 'main' into config-key-take-2 (9fa1054)
    • Merge pull request #1361 from EliahKagan/freebsd (9c65d98)
    • Regenerate archives for changed scripts (ea12fc2)
    • Make bash script shebangs more portable (68cbea8)

0.42.2 (2024-05-22)

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release gix-features v0.38.2, gix-actor v0.31.2, gix-validate v0.8.5, gix-object v0.42.2, gix-command v0.3.7, gix-filter v0.11.2, gix-fs v0.11.0, gix-revwalk v0.13.1, gix-traverse v0.39.1, gix-worktree-stream v0.13.0, gix-archive v0.13.0, gix-tempfile v14.0.0, gix-lock v14.0.0, gix-ref v0.44.0, gix-config v0.37.0, gix-prompt v0.8.5, gix-index v0.33.0, gix-worktree v0.34.0, gix-diff v0.44.0, gix-discover v0.32.0, gix-pathspec v0.7.5, gix-dir v0.5.0, gix-macros v0.1.5, gix-mailmap v0.23.1, gix-negotiate v0.13.1, gix-pack v0.51.0, gix-odb v0.61.0, gix-transport v0.42.1, gix-protocol v0.45.1, gix-revision v0.27.1, gix-status v0.10.0, gix-submodule v0.11.0, gix-worktree-state v0.11.0, gix v0.63.0, gitoxide-core v0.38.0, gitoxide v0.36.0, safety bump 19 crates (4f98e94)
    • Adjust changelogs prior to release (9511416)
    • Release gix-date v0.8.6 (d3588ca)

0.42.1 (2024-03-18)

Bug Fixes

  • allow parsing of commits with broken timestamp. Instead, default to UTC just like Git.

Commit Statistics

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

Commit Details

view details
  • #1322
    • Allow parsing of commits with broken timestamp. (ab21083)
  • Uncategorized
    • Release gix-actor v0.31.1, gix-object v0.42.1, gix-index v0.31.1, gix-pathspec v0.7.2, gix-dir v0.3.0, gix-status v0.8.0, gix v0.61.0, safety bump 2 crates (155cc45)
    • Prepare changelog prior to release (129ba3d)
    • Merge branch 'improvements-for-cargo' (41cd53e)

0.42.0 (2024-03-14)

A maintenance release without user-facing changes.

Commit Statistics

  • 4 commits contributed to the release over the course of 4 calendar days.
  • 18 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 gix-date v0.8.5, gix-hash v0.14.2, gix-trace v0.1.8, gix-utils v0.1.11, gix-features v0.38.1, gix-actor v0.31.0, gix-validate v0.8.4, gix-object v0.42.0, gix-path v0.10.7, gix-glob v0.16.2, gix-quote v0.4.12, gix-attributes v0.22.2, gix-command v0.3.6, gix-filter v0.11.0, gix-fs v0.10.1, gix-chunk v0.4.8, gix-commitgraph v0.24.2, gix-hashtable v0.5.2, gix-revwalk v0.13.0, gix-traverse v0.38.0, gix-worktree-stream v0.11.0, gix-archive v0.11.0, gix-config-value v0.14.6, gix-tempfile v13.1.1, gix-lock v13.1.1, gix-ref v0.43.0, gix-sec v0.10.6, gix-config v0.36.0, gix-prompt v0.8.4, gix-url v0.27.2, gix-credentials v0.24.2, gix-ignore v0.11.2, gix-bitmap v0.2.11, gix-index v0.31.0, gix-worktree v0.32.0, gix-diff v0.42.0, gix-discover v0.31.0, gix-pathspec v0.7.1, gix-dir v0.2.0, gix-macros v0.1.4, gix-mailmap v0.23.0, gix-negotiate v0.13.0, gix-pack v0.49.0, gix-odb v0.59.0, gix-packetline v0.17.4, gix-transport v0.41.2, gix-protocol v0.44.2, gix-revision v0.27.0, gix-refspec v0.23.0, gix-status v0.7.0, gix-submodule v0.10.0, gix-worktree-state v0.9.0, gix v0.60.0, safety bump 26 crates (b050327)
    • Prepare changelogs prior to release (52c3bbd)
    • Merge branch 'status' (3e5c974)
    • Fix lints for nightly, and clippy (f8ce3d0)

0.41.1 (2024-02-25)

New Features

  • Allow the creation of any EntryMode. This helps testing for one, but might also be useful in other contexts. After all, this is a plumbing crate.

Bug Fixes

  • EntryMode canonicalization This means that mode.kind() and mode.is_* will also work correctly if the underlying mode wasn't canonicalized, which could happen when looking at trees that were stored with very old versions of Git.

Commit Statistics

  • 16 commits contributed to the release over the course of 34 calendar days.
  • 36 days passed between releases.
  • 2 commits were understood as conventional.
  • 1 unique issue was worked on: #1259

Commit Details

view details
  • #1259
    • Allow the creation of any EntryMode. (82e85fd)
    • EntryMode canonicalization (67833df)
  • Uncategorized
    • Release gix-date v0.8.4, gix-utils v0.1.10, gix-actor v0.30.1, gix-object v0.41.1, gix-path v0.10.6, gix-glob v0.16.1, gix-quote v0.4.11, gix-attributes v0.22.1, gix-command v0.3.5, gix-filter v0.10.0, gix-commitgraph v0.24.1, gix-worktree-stream v0.10.0, gix-archive v0.10.0, gix-config-value v0.14.5, gix-ref v0.42.0, gix-sec v0.10.5, gix-config v0.35.0, gix-prompt v0.8.3, gix-url v0.27.1, gix-credentials v0.24.1, gix-ignore v0.11.1, gix-index v0.30.0, gix-worktree v0.31.0, gix-diff v0.41.0, gix-discover v0.30.0, gix-pathspec v0.7.0, gix-dir v0.1.0, gix-pack v0.48.0, gix-odb v0.58.0, gix-transport v0.41.1, gix-protocol v0.44.1, gix-revision v0.26.1, gix-refspec v0.22.1, gix-status v0.6.0, gix-submodule v0.9.0, gix-worktree-state v0.8.0, gix v0.59.0, gix-fsck v0.3.0, gitoxide-core v0.36.0, gitoxide v0.34.0, safety bump 10 crates (45b4470)
    • Prepare changelogs prior to release (f2e111f)
    • Merge branch 'btoi' (5fc379d)
    • Refactor (c5c69bd)
    • Inline btoi code to reduce compile times (f26f298)
    • Merge pull request #1290 from epage/winnow (a663e9f)
    • Update winnow to 0.6 (e175b20)
    • Update winnow to 0.5.40 (516e105)
    • Merge branch 'dirwalk' (face359)
    • Adjust gitignore files with precious declarations (ae86a6a)
    • Merge pull request #1267 from epage/winnow (69cb78b)
    • Move off deprecated take_until[01] (52ede06)
    • Update from winnow 0.5.31 to 0.5.36 (9470554)
    • Merge branch 'entry-mode-fixes' (35d2083)

0.41.0 (2024-01-20)

A maintenance release without user-facing changes.

Commit Statistics

  • 2 commits contributed to the release.
  • 20 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 gix-utils v0.1.9, gix-features v0.38.0, gix-actor v0.30.0, gix-object v0.41.0, gix-path v0.10.4, gix-glob v0.16.0, gix-attributes v0.22.0, gix-command v0.3.3, gix-packetline-blocking v0.17.3, gix-filter v0.9.0, gix-fs v0.10.0, gix-commitgraph v0.24.0, gix-revwalk v0.12.0, gix-traverse v0.37.0, gix-worktree-stream v0.9.0, gix-archive v0.9.0, gix-config-value v0.14.4, gix-tempfile v13.0.0, gix-lock v13.0.0, gix-ref v0.41.0, gix-sec v0.10.4, gix-config v0.34.0, gix-url v0.27.0, gix-credentials v0.24.0, gix-ignore v0.11.0, gix-index v0.29.0, gix-worktree v0.30.0, gix-diff v0.40.0, gix-discover v0.29.0, gix-mailmap v0.22.0, gix-negotiate v0.12.0, gix-pack v0.47.0, gix-odb v0.57.0, gix-pathspec v0.6.0, gix-packetline v0.17.3, gix-transport v0.41.0, gix-protocol v0.44.0, gix-revision v0.26.0, gix-refspec v0.22.0, gix-status v0.5.0, gix-submodule v0.8.0, gix-worktree-state v0.7.0, gix v0.58.0, safety bump 39 crates (eb6aa8f)
    • Prepare changelogs prior to release (6a2e0be)

0.40.1 (2023-12-30)

Chore

  • change rust-version manifest field back to 1.65. They didn't actually need to be higher to work, and changing them unecessarily can break downstream CI.

    Let's keep this value as low as possible, and only increase it when more recent features are actually used.

Commit Statistics

  • 3 commits contributed to the release.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release gix-date v0.8.3, gix-hash v0.14.1, gix-trace v0.1.6, gix-features v0.37.1, gix-actor v0.29.1, gix-validate v0.8.3, gix-object v0.40.1, gix-path v0.10.3, gix-glob v0.15.1, gix-quote v0.4.10, gix-attributes v0.21.1, gix-command v0.3.2, gix-packetline-blocking v0.17.2, gix-utils v0.1.8, gix-filter v0.8.1, gix-fs v0.9.1, gix-chunk v0.4.7, gix-commitgraph v0.23.1, gix-hashtable v0.5.1, gix-revwalk v0.11.1, gix-traverse v0.36.1, gix-worktree-stream v0.8.1, gix-archive v0.8.1, gix-config-value v0.14.3, gix-tempfile v12.0.1, gix-lock v12.0.1, gix-ref v0.40.1, gix-sec v0.10.3, gix-config v0.33.1, gix-prompt v0.8.2, gix-url v0.26.1, gix-credentials v0.23.1, gix-ignore v0.10.1, gix-bitmap v0.2.10, gix-index v0.28.1, gix-worktree v0.29.1, gix-diff v0.39.1, gix-discover v0.28.1, gix-macros v0.1.3, gix-mailmap v0.21.1, gix-negotiate v0.11.1, gix-pack v0.46.1, gix-odb v0.56.1, gix-pathspec v0.5.1, gix-packetline v0.17.2, gix-transport v0.40.1, gix-protocol v0.43.1, gix-revision v0.25.1, gix-refspec v0.21.1, gix-status v0.4.1, gix-submodule v0.7.1, gix-worktree-state v0.6.1, gix v0.57.1 (972241f)
    • Merge branch 'msrv' (8c492d7)
    • Change rust-version manifest field back to 1.65. (3bd09ef)

0.40.0 (2023-12-29)

Chore

  • upgrade MSRV to v1.70 Our MSRV follows the one of helix, which in turn follows Firefox.

Other

  • Add gix-object fuzzers

Commit Statistics

  • 17 commits contributed to the release over the course of 18 calendar days.
  • 22 days passed between releases.
  • 2 commits were understood as conventional.
  • 1 unique issue was worked on: #1185

Commit Details

view details
  • #1185
    • Fix tree-parse issue found by fuzzer (7d81a76)
  • Uncategorized
    • Release gix-date v0.8.2, gix-hash v0.14.0, gix-trace v0.1.5, gix-features v0.37.0, gix-actor v0.29.0, gix-validate v0.8.2, gix-object v0.40.0, gix-path v0.10.2, gix-glob v0.15.0, gix-quote v0.4.9, gix-attributes v0.21.0, gix-command v0.3.1, gix-packetline-blocking v0.17.1, gix-utils v0.1.7, gix-filter v0.8.0, gix-fs v0.9.0, gix-chunk v0.4.6, gix-commitgraph v0.23.0, gix-hashtable v0.5.0, gix-revwalk v0.11.0, gix-traverse v0.36.0, gix-worktree-stream v0.8.0, gix-archive v0.8.0, gix-config-value v0.14.2, gix-tempfile v12.0.0, gix-lock v12.0.0, gix-ref v0.40.0, gix-sec v0.10.2, gix-config v0.33.0, gix-prompt v0.8.1, gix-url v0.26.0, gix-credentials v0.23.0, gix-ignore v0.10.0, gix-bitmap v0.2.9, gix-index v0.28.0, gix-worktree v0.29.0, gix-diff v0.39.0, gix-discover v0.28.0, gix-macros v0.1.2, gix-mailmap v0.21.0, gix-negotiate v0.11.0, gix-pack v0.46.0, gix-odb v0.56.0, gix-pathspec v0.5.0, gix-packetline v0.17.1, gix-transport v0.40.0, gix-protocol v0.43.0, gix-revision v0.25.0, gix-refspec v0.21.0, gix-status v0.4.0, gix-submodule v0.7.0, gix-worktree-state v0.6.0, gix v0.57.0, gix-fsck v0.2.0, gitoxide-core v0.35.0, gitoxide v0.33.0, safety bump 40 crates (e1aae19)
    • Prepare changelogs of next release (e78a92b)
    • Merge branch 'maintenance' (4454c9d)
    • Upgrade MSRV to v1.70 (aea89c3)
    • Merge pull request #1199 from silvergasp/fuzz-git-object (7d21ce9)
    • Add corpus builders for tree/tags (5a02529)
    • Merge pull request #1192 from silvergasp/fuzz-git-object (e2f42dd)
    • Add fuzz_commit seed corpus builder (2297ca1)
    • Merge branch 'fuzz-gix-ref' (8ee1194)
    • Let's have the latest versions of fuzzers automatically (5828f37)
    • Merge branch 'fuzz_object' (7df919b)
    • Add gix-object fuzzers (de400fd)
    • Merge branch 'main' into fix-1183 (1691ba6)
    • Merge branch 'archive-handling' (7549559)
    • Check all git-lfs managed files into the repository (35439de)
    • Git-lfs might fail early; let's rely on these caches to be recreated, where possible (b6f2b81)

0.39.0 (2023-12-06)

New Features

  • support for querying only the header of an object with the FindHeader trait. That way one can know its decompressed size and its kind.

    We also add a FindObjectOrHeader trait for use as dyn trait object that can find objects and access their headers.

  • Add Find and Exists trait and extension FindExt to easily find objects. This is more convenient than having to rely on closures all the time. Note that Contains::contains was renamed to Exists::exists()

Bug Fixes

  • Report remaining input on error
  • adjust tree parser to deal with even more unusual trees.
  • restore verbose error reporting capabilities when parsing of objects fails. When verbose-object-parsing-errors is enabled, it will now once again provide greater details as to where and why the parsing failed.
  • assure all kinds of trees can be parsed. Fix the slow and the fast-path tree-parsers to be able to cope with a greater variety of trees.
  • Add Copy to Data, BlobRef and TreeRefIter

Bug Fixes (BREAKING)

  • Keep verbatim tree-entry mode, but support discretization using the new EntryKind. Please note that EntryKind and EntryMode can be converted from and to each other.

Commit Statistics

  • 24 commits contributed to the release.
  • 8 commits were understood as conventional.
  • 1 unique issue was worked on: #1096

Commit Details

view details
  • #1096
    • Adjust tree parser to deal with even more unusual trees. (8d05cae)
    • Assure all kinds of trees can be parsed. (3542cf5)
  • Uncategorized
    • Release gix-date v0.8.1, gix-hash v0.13.2, gix-trace v0.1.4, gix-features v0.36.1, gix-actor v0.28.1, gix-validate v0.8.1, gix-object v0.39.0, gix-path v0.10.1, gix-glob v0.14.1, gix-quote v0.4.8, gix-attributes v0.20.1, gix-command v0.3.0, gix-packetline-blocking v0.17.0, gix-utils v0.1.6, gix-filter v0.7.0, gix-fs v0.8.1, gix-chunk v0.4.5, gix-commitgraph v0.22.1, gix-hashtable v0.4.1, gix-revwalk v0.10.0, gix-traverse v0.35.0, gix-worktree-stream v0.7.0, gix-archive v0.7.0, gix-config-value v0.14.1, gix-tempfile v11.0.1, gix-lock v11.0.1, gix-ref v0.39.0, gix-sec v0.10.1, gix-config v0.32.0, gix-prompt v0.8.0, gix-url v0.25.2, gix-credentials v0.22.0, gix-ignore v0.9.1, gix-bitmap v0.2.8, gix-index v0.27.0, gix-worktree v0.28.0, gix-diff v0.38.0, gix-discover v0.27.0, gix-macros v0.1.1, gix-mailmap v0.20.1, gix-negotiate v0.10.0, gix-pack v0.45.0, gix-odb v0.55.0, gix-pathspec v0.4.1, gix-packetline v0.17.0, gix-transport v0.39.0, gix-protocol v0.42.0, gix-revision v0.24.0, gix-refspec v0.20.0, gix-status v0.3.0, gix-submodule v0.6.0, gix-worktree-state v0.5.0, gix v0.56.0, gix-fsck v0.1.0, gitoxide-core v0.34.0, gitoxide v0.32.0, safety bump 27 crates (55d386a)
    • Prepare changelogs prior to release (d3dcbe5)
    • Upgrade to winnow 0.5.24 (abcfb65)
    • J fmt (51c7abc)
    • Merge branch 'gix-status' (dfb3f18)
    • Support for querying only the header of an object with the FindHeader trait. (1838cbd)
    • Merge branch 'check-cfg' (5a0d93e)
    • Replace all docsrs config by the document-features feature (bb3224c)
    • Merge branch 'error' (c372321)
    • Merge branch 'fix-1096' (ff99a18)
    • Keep verbatim tree-entry mode, but support discretization using the new EntryKind. (3ac5d0b)
    • Report remaining input on error (55729a5)
    • Refactor Errors to track remaining Input (5825250)
    • Refactor iterating parsing so error wrapping knows where left off (53309be)
    • Refactor gix-object parsers to look more winnow-ish (f633f9e)
    • Merge branch 'fix-1096' (48ef17e)
    • Restore verbose error reporting capabilities when parsing of objects fails. (5d78ab3)
    • Merge branch 'gix-object-find' (c8bd660)
    • Add Copy to Data, BlobRef and TreeRefIter (d25fbae)
    • Add Find and Exists trait and extension FindExt to easily find objects. (f984c4c)
    • Merge branch 'size-optimization' (c0e72fb)
    • Remove CHANGELOG.md from all packages (b65a80b)

0.38.0 (2023-10-12)

New Features

  • add compute_stream_hash method as lower-level way of hashing objects.

Bug Fixes (BREAKING)

  • encode::loose_header() now supports large objects even on 32 bit systems. Previously, larger than 4GB files wouldn't be supported, which causes problems when genrating hashes even when streaming data.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release gix-hash v0.13.1, gix-features v0.36.0, gix-actor v0.28.0, gix-object v0.38.0, gix-glob v0.14.0, gix-attributes v0.20.0, gix-command v0.2.10, gix-filter v0.6.0, gix-fs v0.8.0, gix-commitgraph v0.22.0, gix-revwalk v0.9.0, gix-traverse v0.34.0, gix-worktree-stream v0.6.0, gix-archive v0.6.0, gix-tempfile v11.0.0, gix-lock v11.0.0, gix-ref v0.38.0, gix-config v0.31.0, gix-url v0.25.0, gix-credentials v0.21.0, gix-diff v0.37.0, gix-discover v0.26.0, gix-ignore v0.9.0, gix-index v0.26.0, gix-mailmap v0.20.0, gix-negotiate v0.9.0, gix-pack v0.44.0, gix-odb v0.54.0, gix-pathspec v0.4.0, gix-packetline v0.16.7, gix-transport v0.37.0, gix-protocol v0.41.0, gix-revision v0.23.0, gix-refspec v0.19.0, gix-worktree v0.27.0, gix-status v0.2.0, gix-submodule v0.5.0, gix-worktree-state v0.4.0, gix v0.55.0, safety bump 37 crates (68e5432)
    • Prepare changelogs prior to release (1347a54)
    • Merge branch 'improvements' (429e7b2)
    • Add compute_stream_hash method as lower-level way of hashing objects. (5bb55de)
    • Fix docs (995bc84)
    • Merge branch 'reset' (b842691)
    • encode::loose_header() now supports large objects even on 32 bit systems. (9283a9d)

0.37.0 (2023-09-24)

A maintenance release without user-facing changes.

Commit Statistics

  • 2 commits contributed to the release.
  • 16 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 gix-features v0.35.0, gix-actor v0.27.0, gix-object v0.37.0, gix-glob v0.13.0, gix-attributes v0.19.0, gix-filter v0.5.0, gix-fs v0.7.0, gix-commitgraph v0.21.0, gix-revwalk v0.8.0, gix-traverse v0.33.0, gix-worktree-stream v0.5.0, gix-archive v0.5.0, gix-tempfile v10.0.0, gix-lock v10.0.0, gix-ref v0.37.0, gix-config v0.30.0, gix-url v0.24.0, gix-credentials v0.20.0, gix-diff v0.36.0, gix-discover v0.25.0, gix-ignore v0.8.0, gix-index v0.25.0, gix-mailmap v0.19.0, gix-negotiate v0.8.0, gix-pack v0.43.0, gix-odb v0.53.0, gix-pathspec v0.3.0, gix-transport v0.37.0, gix-protocol v0.40.0, gix-revision v0.22.0, gix-refspec v0.18.0, gix-status v0.1.0, gix-submodule v0.4.0, gix-worktree v0.26.0, gix-worktree-state v0.3.0, gix v0.54.0, gitoxide-core v0.32.0, gitoxide v0.30.0, safety bump 37 crates (7891fb1)
    • Prepare changelogs prior to release (8a60d5b)

0.36.0 (2023-09-08)

Bug Fixes (BREAKING)

  • use dyn trait where possible. This reduces compile time due to avoiding duplication.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release gix-date v0.8.0, gix-hash v0.13.0, gix-features v0.34.0, gix-actor v0.26.0, gix-object v0.36.0, gix-path v0.10.0, gix-glob v0.12.0, gix-attributes v0.18.0, gix-packetline-blocking v0.16.6, gix-filter v0.4.0, gix-fs v0.6.0, gix-commitgraph v0.20.0, gix-hashtable v0.4.0, gix-revwalk v0.7.0, gix-traverse v0.32.0, gix-worktree-stream v0.4.0, gix-archive v0.4.0, gix-config-value v0.14.0, gix-tempfile v9.0.0, gix-lock v9.0.0, gix-ref v0.36.0, gix-sec v0.10.0, gix-config v0.29.0, gix-prompt v0.7.0, gix-url v0.23.0, gix-credentials v0.19.0, gix-diff v0.35.0, gix-discover v0.24.0, gix-ignore v0.7.0, gix-index v0.24.0, gix-macros v0.1.0, gix-mailmap v0.18.0, gix-negotiate v0.7.0, gix-pack v0.42.0, gix-odb v0.52.0, gix-pathspec v0.2.0, gix-packetline v0.16.6, gix-transport v0.36.0, gix-protocol v0.39.0, gix-revision v0.21.0, gix-refspec v0.17.0, gix-submodule v0.3.0, gix-worktree v0.25.0, gix-worktree-state v0.2.0, gix v0.53.0, safety bump 39 crates (8bd0456)
    • Prepare changelogs for release (375db06)
    • Merge branch dynification (f658fcc)
    • Use dyn trait where possible. (072ee32)
    • Merge branch 'gix-submodule' (363ee77)

0.35.0 (2023-08-22)

Chore

  • switch nom to winnow in remaining uses in gix-object, gix-ref, and gix-actor for ~20% more performance. It's likely that over time, these parsers will get even faster due to improvements to winnow. Thanks, Ed Page, for single-handedly performing this transition.
  • add benchmarks to avoid parsing performance regressions
  • remove unused dependency: 'hex'

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release gix-date v0.7.3, gix-hash v0.12.0, gix-features v0.33.0, gix-actor v0.25.0, gix-object v0.35.0, gix-path v0.9.0, gix-glob v0.11.0, gix-quote v0.4.7, gix-attributes v0.17.0, gix-command v0.2.9, gix-packetline-blocking v0.16.5, gix-filter v0.3.0, gix-fs v0.5.0, gix-commitgraph v0.19.0, gix-hashtable v0.3.0, gix-revwalk v0.6.0, gix-traverse v0.31.0, gix-worktree-stream v0.3.0, gix-archive v0.3.0, gix-config-value v0.13.0, gix-tempfile v8.0.0, gix-lock v8.0.0, gix-ref v0.35.0, gix-sec v0.9.0, gix-config v0.28.0, gix-prompt v0.6.0, gix-url v0.22.0, gix-credentials v0.18.0, gix-diff v0.34.0, gix-discover v0.23.0, gix-ignore v0.6.0, gix-bitmap v0.2.7, gix-index v0.22.0, gix-mailmap v0.17.0, gix-negotiate v0.6.0, gix-pack v0.41.0, gix-odb v0.51.0, gix-pathspec v0.1.0, gix-packetline v0.16.5, gix-transport v0.35.0, gix-protocol v0.38.0, gix-revision v0.20.0, gix-refspec v0.16.0, gix-submodule v0.2.0, gix-worktree v0.24.0, gix-worktree-state v0.1.0, gix v0.52.0, gitoxide-core v0.31.0, gitoxide v0.29.0, safety bump 41 crates (30b2761)
    • Update changelogs prior to release (f23ea88)
    • Just fmt (0d258f4)
    • Switch nom to winnow in remaining uses in gix-object, gix-ref, and gix-actor for ~20% more performance. (ef54aab)
    • Refactor and fixes (02587fc)
    • Upgrade winnow to latest patch release (8c41848)
    • Remove From for (small) step towards stable API (be1f4b5)
    • Make clippy happy (62f7bc6)
    • Switch off deprecated VerboseError (93fc441)
    • Switch errors to StrContext (df226dd)
    • Minor cleanup possible with 0.5 (a07590c)
    • Upgrade to Winnow 0.5 (3f8c91f)
    • Simplify parsers (12f03db)
    • Resolve 0.4 not-quite deprecations (f0cbf81)
    • Resolve 0.4 deprecations (9ed7df0)
    • Upgrade to Winnow 0.4 (86ea47f)
    • Parse explicitly in prep for 0.4 (b3f0418)
    • Resolve remaining winnow 0.3 deprecations (fee441d)
    • Prefer Parser inherent parsers (b37a909)
    • Prefer built-in Winnow parsers (ac0e81c)
    • Simplify winnow ErrMode construction (86d7fd1)
    • Switch gix to winnow 0.3 (ee75de1)
    • Add benchmarks to avoid parsing performance regressions (353b1a7)
    • Merge branch 'faster-hex' (4a4fa0f)
    • Remove unused dependency: 'hex' (7649b18)
    • Merge branch 'extract-signatures' (b37affe)
    • Refactor (fb95ead)
    • Add commit signature extraction (2f9c0dd)

0.34.0 (2023-08-07)

A maintenance release without user-facing changes.

Commit Statistics

  • 4 commits contributed to the release over the course of 3 calendar days.
  • 4 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 gix-glob v0.10.2, gix-date v0.7.2, gix-validate v0.8.0, gix-object v0.34.0, gix-ref v0.34.0, gix-config v0.27.0, gix-commitgraph v0.18.2, gix-revwalk v0.5.0, gix-revision v0.19.0, gix-refspec v0.15.0, gix-submodule v0.1.0, safety bump 18 crates (4604f83)
    • Prepare changelogs prior to release of gix-submodule (f3c4311)
    • Merge branch 'dev-on-linux' (6b4a303)
    • Fix various tests to run properly on linux (ef8ccd9)

0.33.2 (2023-08-02)

Other

  • fix test for struct size for 32-bit architectures The size of gix_object::Data is 24 bytes only on 64-bit architectures, on 32-bit architectures it's exactly half that (12 bytes).

Commit Statistics

  • 7 commits contributed to the release.
  • 11 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release gix-actor v0.24.2, gix-object v0.33.2, gix-ref v0.33.3, gix-config v0.26.2, gix-prompt v0.5.5, gix-odb v0.50.2, gix-transport v0.34.2, gix-protocol v0.37.0, gix-worktree v0.23.1, gix v0.51.0, safety bump 3 crates (231ac1c)
    • Prepare additional changelogs (db63815)
    • Merge branch 'decathorpe/main' (422747d)
    • Prepare changelogs (e4d2890)
    • Merge branch 'fixes-and-improvements' (f8b1f55)
    • Fix test for struct size for 32-bit architectures (7f7353e)
    • Add another very special commit for parsing tests (f852243)

0.33.1 (2023-07-22)

New Features

  • TreeRef::bisect_entry() to correctly find an entry by name
  • Copy for tree::EntryRef

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release gix-features v0.32.1, gix-actor v0.24.1, gix-validate v0.7.7, gix-object v0.33.1, gix-path v0.8.4, gix-glob v0.10.1, gix-quote v0.4.6, gix-attributes v0.16.0, gix-command v0.2.8, gix-packetline-blocking v0.16.4, gix-filter v0.2.0, gix-fs v0.4.1, gix-chunk v0.4.4, gix-commitgraph v0.18.1, gix-hashtable v0.2.4, gix-revwalk v0.4.1, gix-traverse v0.30.1, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.5, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.1, gix-sec v0.8.4, gix-prompt v0.5.4, gix-url v0.21.1, gix-credentials v0.17.1, gix-diff v0.33.1, gix-discover v0.22.1, gix-ignore v0.5.1, gix-bitmap v0.2.6, gix-index v0.21.1, gix-mailmap v0.16.1, gix-negotiate v0.5.1, gix-pack v0.40.1, gix-odb v0.50.1, gix-packetline v0.16.4, gix-transport v0.34.1, gix-protocol v0.36.1, gix-revision v0.18.1, gix-refspec v0.14.1, gix-worktree v0.23.0, gix v0.50.0, safety bump 5 crates (16295b5)
    • Prepare more changelogs (c4cc5f2)
    • Release gix-date v0.7.1, gix-hash v0.11.4, gix-trace v0.1.3, gix-features v0.32.0, gix-actor v0.24.0, gix-validate v0.7.7, gix-object v0.33.0, gix-path v0.8.4, gix-glob v0.10.0, gix-quote v0.4.6, gix-attributes v0.15.0, gix-command v0.2.7, gix-packetline-blocking v0.16.3, gix-filter v0.1.0, gix-fs v0.4.0, gix-chunk v0.4.4, gix-commitgraph v0.18.0, gix-hashtable v0.2.4, gix-revwalk v0.4.0, gix-traverse v0.30.0, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.4, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.0, gix-sec v0.8.4, gix-prompt v0.5.3, gix-url v0.21.0, gix-credentials v0.17.0, gix-diff v0.33.0, gix-discover v0.22.0, gix-ignore v0.5.0, gix-bitmap v0.2.6, gix-index v0.21.0, gix-mailmap v0.16.0, gix-negotiate v0.5.0, gix-pack v0.40.0, gix-odb v0.50.0, gix-packetline v0.16.4, gix-transport v0.34.0, gix-protocol v0.36.0, gix-revision v0.18.0, gix-refspec v0.14.0, gix-worktree v0.22.0, gix v0.49.1 (5cb3589)
    • Merge branch 'improvements-for-crates-index' (7734736)
    • TreeRef::bisect_entry() to correctly find an entry by name (424d347)
    • Update changelogs prior to release (2fc66b5)
    • Merge branch 'improvements-for-crates-index' (3f914e8)
    • Copy for tree::EntryRef (437fedc)
    • Update license field following SPDX 2.1 license expression standard (9064ea3)

0.33.0 (2023-07-19)

New Features

  • Add classifier methods to Kind for easier object classification. This allows to avoid having to think about where to right type lives for comparisons or matches in simple cases that are about one specific object type.
  • Copy for tree::EntryRef
  • TreeRef::bisect_entry() to correctly find an entry by name

Commit Statistics

  • 5 commits contributed to the release.
  • 19 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release gix-features v0.32.0, gix-actor v0.24.0, gix-glob v0.10.0, gix-attributes v0.15.0, gix-commitgraph v0.18.0, gix-config-value v0.12.4, gix-fs v0.4.0, gix-object v0.33.0, gix-ref v0.33.0, gix-config v0.26.0, gix-command v0.2.7, gix-url v0.21.0, gix-credentials v0.17.0, gix-diff v0.33.0, gix-discover v0.22.0, gix-filter v0.1.0, gix-ignore v0.5.0, gix-revwalk v0.4.0, gix-traverse v0.30.0, gix-index v0.21.0, gix-mailmap v0.16.0, gix-negotiate v0.5.0, gix-pack v0.40.0, gix-odb v0.50.0, gix-transport v0.34.0, gix-protocol v0.36.0, gix-revision v0.18.0, gix-refspec v0.14.0, gix-worktree v0.22.0, gix v0.49.0 (68ae3ff)
    • Adjust package versions (by cargo-smart-release) (c70e54f)
    • Prepare changelogs prior to release (e4dded0)
    • Merge branch 'adjustments-for-crates-index' (b82868d)
    • Add classifier methods to Kind for easier object classification. (695de56)

0.32.0 (2023-06-29)

A maintenance release without user-facing changes.

Commit Statistics

  • 4 commits contributed to the release.
  • 6 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 gix-date v0.7.0, gix-trace v0.1.2, gix-actor v0.23.0, gix-commitgraph v0.17.1, gix-utils v0.1.4, gix-object v0.32.0, gix-ref v0.32.0, gix-config v0.25.0, gix-diff v0.32.0, gix-discover v0.21.0, gix-hashtable v0.2.3, gix-revwalk v0.3.0, gix-traverse v0.29.0, gix-index v0.20.0, gix-mailmap v0.15.0, gix-negotiate v0.4.0, gix-pack v0.39.0, gix-odb v0.49.0, gix-protocol v0.35.0, gix-revision v0.17.0, gix-refspec v0.13.0, gix-worktree v0.21.0, gix v0.48.0, safety bump 20 crates (27e8c18)
    • Prepare changelogs prior to release (00f96fb)
    • Merge branch 'i64-times' (b407461)
    • Add a test to see what happens if negative dates are used in commits (57a5cd1)

0.31.0 (2023-06-22)

Chore

  • Add clippy::redundant-closure-for-method-calls lint

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release gix-date v0.6.0, gix-hash v0.11.3, gix-trace v0.1.1, gix-features v0.31.0, gix-actor v0.22.0, gix-path v0.8.2, gix-glob v0.9.0, gix-quote v0.4.5, gix-attributes v0.14.0, gix-chunk v0.4.3, gix-commitgraph v0.17.0, gix-config-value v0.12.2, gix-fs v0.3.0, gix-tempfile v7.0.0, gix-utils v0.1.3, gix-lock v7.0.0, gix-validate v0.7.6, gix-object v0.31.0, gix-ref v0.31.0, gix-sec v0.8.2, gix-config v0.24.0, gix-command v0.2.6, gix-prompt v0.5.2, gix-url v0.20.0, gix-credentials v0.16.0, gix-diff v0.31.0, gix-discover v0.20.0, gix-hashtable v0.2.2, gix-ignore v0.4.0, gix-bitmap v0.2.5, gix-revwalk v0.2.0, gix-traverse v0.28.0, gix-index v0.19.0, gix-mailmap v0.14.0, gix-negotiate v0.3.0, gix-pack v0.38.0, gix-odb v0.48.0, gix-packetline v0.16.3, gix-transport v0.33.0, gix-protocol v0.34.0, gix-revision v0.16.0, gix-refspec v0.12.0, gix-worktree v0.20.0, gix v0.47.0, gitoxide-core v0.29.0, gitoxide v0.27.0, safety bump 30 crates (ea9f942)
    • Prepare changelogs prior to release (18b0a37)
    • just fmt (871dd0b)
    • Merge branch 'corpus' (aa16c8c)
    • Change MSRV to 1.65 (4f635fc)
    • Merge branch 'help-874-redundant-closures' (fe59956)
    • Add clippy::redundant-closure-for-method-calls lint (bcad5c2)
    • Merge branch 'future-dates' (8d2e6a9)
    • Adapt to changes in gix-actor (4a80e86)
    • Adapt to changes in gix-date (d575336)

0.30.0 (2023-06-06)

A maintenance release without user-facing changes.

Commit Statistics

  • 15 commits contributed to the release over the course of 12 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 gix-date v0.5.1, gix-hash v0.11.2, gix-features v0.30.0, gix-actor v0.21.0, gix-path v0.8.1, gix-glob v0.8.0, gix-quote v0.4.4, gix-attributes v0.13.0, gix-chunk v0.4.2, gix-commitgraph v0.16.0, gix-config-value v0.12.1, gix-fs v0.2.0, gix-tempfile v6.0.0, gix-utils v0.1.2, gix-lock v6.0.0, gix-validate v0.7.5, gix-object v0.30.0, gix-ref v0.30.0, gix-sec v0.8.1, gix-config v0.23.0, gix-command v0.2.5, gix-prompt v0.5.1, gix-url v0.19.0, gix-credentials v0.15.0, gix-diff v0.30.0, gix-discover v0.19.0, gix-hashtable v0.2.1, gix-ignore v0.3.0, gix-bitmap v0.2.4, gix-traverse v0.26.0, gix-index v0.17.0, gix-mailmap v0.13.0, gix-revision v0.15.0, gix-negotiate v0.2.0, gix-pack v0.36.0, gix-odb v0.46.0, gix-packetline v0.16.2, gix-transport v0.32.0, gix-protocol v0.33.0, gix-refspec v0.11.0, gix-worktree v0.18.0, gix v0.45.0, safety bump 29 crates (9a9fa96)
    • just fmt (ffc1276)
    • Prepare changelogs prior to release (8f15cec)
    • Merge pull request #878 from blinxen/main (67da689)
    • Include missing changelog file in some crates (0269eed)
    • Merge branch 'fix-docs' (420553a)
    • Minor fixes (89a8cfe)
    • Cleaning up documentation (2578e57)
    • Merge branch 'auto-clippy' (dbf8aa1)
    • Auto-fix as many 'range-plus-one' lints as possible (4795fcf)
    • Autofix map-or-unwrap clippy lint (and manual fix what was left) (2087032)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include custom clippy settings (b057500)
    • Include license files in all crates (facaaf6)

0.29.2 (2023-05-11)

Bug Fixes

  • sorting of tree entries is now according to specificiation. This means tree entries are compared as if they had a / appended to it.

Commit Statistics

  • 4 commits contributed to the release.
  • 15 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release gix-object v0.29.2 (4f879bf)
    • Merge branch 'fix-848' (e3b146f)
    • Sorting of tree entries is now according to specificiation. (ca37915)
    • Refactor (d92a588)

0.29.1 (2023-04-26)

New Features

  • add encode::compute_hash() for an easy way to obtain object hashes.

Commit Statistics

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

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • Uncategorized
    • Release gix-hash v0.11.1, gix-path v0.7.4, gix-glob v0.6.0, gix-attributes v0.11.0, gix-config-value v0.11.0, gix-fs v0.1.1, gix-tempfile v5.0.3, gix-utils v0.1.1, gix-lock v5.0.1, gix-object v0.29.1, gix-ref v0.28.0, gix-sec v0.7.0, gix-config v0.21.0, gix-prompt v0.4.0, gix-url v0.17.0, gix-credentials v0.13.0, gix-diff v0.29.0, gix-discover v0.17.0, gix-hashtable v0.2.0, gix-ignore v0.1.0, gix-bitmap v0.2.3, gix-traverse v0.25.0, gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0, safety bump 7 crates (91134a1)
    • Prepare changelogs prior to release (30a1a71)
    • Merge branch 'fix-823' (6ebd61e)
    • Thanks clippy (14e64e7)
    • Merge branch 'fix-819' (69faad0)
    • Add encode::compute_hash() for an easy way to obtain object hashes. (ebf3fd4)

0.29.0 (2023-04-19)

New Features (BREAKING)

  • Rename serde1 cargo feature to serde and use the weak-deps cargo capability. With it it's possible to not automatically declare all optional dependencies externally visible features, and thus re-use feature names that oterwise are also a crate name.

    Previously I thought that serde1 is for future-proofing and supporting multiple serde versions at the same time. However, it's most definitely a burden I wouldn't want anyway, so using serde seems to be the way to go into the future.

Commit Statistics

  • 6 commits contributed to the release over the course of 6 calendar days.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #814

Commit Details

view details
  • #814
    • Rename serde1 cargo feature to serde and use the weak-deps cargo capability. (b83ee36)
  • Uncategorized
    • Release gix-utils v0.1.0, gix-hash v0.11.0, gix-date v0.5.0, gix-features v0.29.0, gix-actor v0.20.0, gix-object v0.29.0, gix-archive v0.1.0, gix-fs v0.1.0, safety bump 25 crates (8dbd0a6)
    • Prepare changelog prior to release (7f06458)
    • Merge branch 'main' into dev (cdef398)
    • Rename the serde1 feature to serde (19338d9)
    • Release gix-hash v0.10.4, gix-hashtable v0.1.3 (b574a39)

0.28.0 (2023-03-04)

A maintenance release without user-facing changes.

Commit Statistics

  • 2 commits contributed to the release.
  • 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 gix-features v0.28.0, gix-actor v0.19.0, gix-object v0.28.0, gix-diff v0.28.0, gix-traverse v0.24.0, gix-pack v0.32.0, safety bump 20 crates (0f411e9)
    • Prepare changelogs prior to release of gix-pack (6db30ef)

0.27.0 (2023-03-01)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release.
  • 4 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 gix-features v0.27.0, gix-actor v0.18.0, gix-quote v0.4.3, gix-attributes v0.9.0, gix-object v0.27.0, gix-ref v0.25.0, gix-config v0.17.0, gix-url v0.14.0, gix-credentials v0.10.0, gix-diff v0.27.0, gix-discover v0.14.0, gix-hashtable v0.1.2, gix-bitmap v0.2.2, gix-traverse v0.23.0, gix-index v0.13.0, gix-mailmap v0.10.0, gix-pack v0.31.0, gix-odb v0.41.0, gix-transport v0.26.0, gix-protocol v0.27.0, gix-revision v0.11.0, gix-refspec v0.8.0, gix-worktree v0.13.0, gix v0.38.0 (e6cc618)
    • Adjust manifests prior to release (addd789)
    • Prepare changelogs prior to release (94c99c7)

0.26.4 (2023-02-24)

A maintenance release without user-facing changes.

Commit Statistics

  • 4 commits contributed to the release.
  • 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 gix-object v0.26.4, gix-diff v0.26.3, gix v0.37.2, gix-commitgraph v0.13.1, gitoxide-core v0.25.0, gitoxide v0.23.0 (9982949)
    • Prepare changelog for release (13a1ec1)
    • Merge branch 'rename-tracking' (550144a)
    • Document why EntryRef has a different comparison method. (c9ba1f7)

0.26.3 (2023-02-20)

New Features

  • add tree::EntryMode::is_blob_or_link(). Returns true if the entry points to a blob or a symlink.

Commit Statistics

  • 3 commits contributed to the release.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release gix-object v0.26.3, gix-diff v0.26.2, gix-traverse v0.22.2, gix v0.37.0, safety bump 3 crates (8b3e42f)
    • Merge branch 'rename-tracking' (35415c5)
    • Add tree::EntryMode::is_blob_or_link(). (c882ff0)

0.26.2 (2023-02-20)

Bug Fixes

  • note that crates have been renamed from git-* to gix-*. This also means that the git-* prefixed crates of the gitoxide project are effectively unmaintained. Use the crates with the gix-* prefix instead.

    If you were using git-repository, then gix is its substitute.

  • compatibility with bstr v1.3, use *.as_bytes() instead of .as_ref(). as_ref() relies on a known target type which isn't always present. However, once there is only one implementation, that's no problem, but when that changes compilation fails due to ambiguity.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Release gix-date v0.4.3, gix-hash v0.10.3, gix-features v0.26.5, gix-actor v0.17.2, gix-glob v0.5.5, gix-path v0.7.2, gix-quote v0.4.2, gix-attributes v0.8.3, gix-validate v0.7.3, gix-object v0.26.2, gix-ref v0.24.1, gix-config v0.16.2, gix-command v0.2.4, gix-url v0.13.3, gix-credentials v0.9.2, gix-discover v0.13.1, gix-index v0.12.4, gix-mailmap v0.9.3, gix-pack v0.30.3, gix-packetline v0.14.3, gix-transport v0.25.6, gix-protocol v0.26.4, gix-revision v0.10.4, gix-refspec v0.7.3, gix-worktree v0.12.3, gix v0.36.1 (9604783)
    • Compatibility with bstr v1.3, use *.as_bytes() instead of .as_ref(). (135d317)

0.26.1 (2023-02-17)

Refactor (BREAKING)

  • 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.
  • move loose header manipulation from git-pack to git-object

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-features and git-pack are 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.

Chore (BREAKING)

  • remove quick-error in favor of thiserror Some errors change shape which makes this a breaking change.

Changed (BREAKING)

  • upgrade bstr to 1.0.1
  • rename commit::ref_iter::Token::into_id() to *::try_into_id() This makes the method more consistent.

Refactor

  • Use borrowed::Id in trees for full type safety
  • make reusing round-trip code easier
  • Prefer integration level tests, but use unit-tests where appropriate

Performance

  • parse entry mode into number instead of comparing it to byte strings
  • ObjectID specific hashers, using the fact that object ids are hashes

Other

  • describe variants

Bug Fixes

  • don't panic if broken loose objects are encountered. Previously a loose object could advertise any object size and cause a panic if it was shorter than advertised. Now an error will be returned.
  • improve error messages related to object decoding

New Features

  • Object::try_into_blob_ref() as alternative to consuming *::try_into_blob()

  • add tree::EntryMode::is_blob() to quickly determine if an entry is a blob.

  • use docsrs feature in code to show what is feature-gated automatically on docs.rs

  • pass --cfg docsrs when compiling for https://docs.rs

  • tree::EntryMode::as_str() to display itself as a string.

  • TagRefIter::tagger(). Additionally ergonomics have been improved as the iterator is now Copy, similarly to the other iterators.

  • support for trimming of whitespace around name and email It's separated from parsing to assure we can round-trip, but it's made easy to obtain trimmed results using new methods.

    This high-level git-repository will also trim by default now.

  • CommitRef::time() A shortcut to allow for fluid retrival of the committer.time.

  • CommitRefIter::(author|committer)(), better usability The methods returning an iterator are now consuming, which allows them to be nested by callers.

  • CommitRefIter::parent_ids() Allocation-free parent retrieval.

  • in-manifest and in-lib feature documentation

  • Add sorting mode to ancestor traversal #270

  • add Data object This is typed data baked by a slice for conversion into parsed ObjectRef's for example.

    This is usually the result of a Find operation on an object database.

Chore

  • uniformize deny attributes
  • upgrade dependencies

Documentation

  • fix typos

Commit Statistics

Thanks Clippy

Clippy helped 17 times to make code idiomatic.

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)
    • Allow 'refactor' and 'other' in conventional messages if they have breaking changes (4eebaac)
    • 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)
    • Feat: BodyRef::without_trailer() for more obvious access than *body or body.as_ref() (f0ea526)
    • Refactor (ef3fc6d)
    • Feat: CommitRef::message_trailers() as shortcut… (5324391)
    • More tests for trailers iterator (c3b0161)
    • Feat: BodyRef::trailers() allows iterating trailer tokens and values (175e1cb)
    • Some tests and sketch for BodyRef parsing (3953c24)
    • Feat: CommitRef::summary() and MessageRef::body() methods (1714d05)
    • Refactor (7055dc8)
    • Another test for footer separation, simple version (b439186)
    • Return to safety (35313b9)
    • Omg nom parsing works… (cd11704)
    • FAIL: not really successful to continue down the 'fold' road (d9afc22)
    • Three tests failing with nom (13646e8)
    • Revert " FAIL: try to use nom-way of the previous body parsing…" (d1e6f62)
    • FAIL: try to use nom-way of the previous body parsing… (909f668)
    • Sketch nom version of the message parser… (1ec47de)
    • Fix build (d0a956f)
    • Refactor!: Use git_object::commit::MessageRef::summary()… (13e7c3a)
    • Feat(commit): A summary for commit messages suitable for logs (cd3fc99)
    • More message parsing tests with windows line separators (001e8c2)
    • A manual message parse impl and more tests (f4b8a0d)
    • More message parsing tests, now with legit failure… (625be8d)
    • Feat(commit): Add message() method and MessageRef type… (6150b2d)
  • #222
    • Update changelogs prior to release (9a493d0)
    • Stabilize changelogs (920e832)
    • Update changelogs prior to release (b3e2252)
  • #250
    • Move loose header manipulation from git-pack to git-object (598698b)
  • #254
    • Adjust changelogs prior to git-pack release (6776a3f)
  • #259
    • Btree/hashmap free lookup of packs in store, keeping things more bundled (a88981b)
  • #266
    • Upgrade dependencies (322b290)
    • Fix docs (1bb4253)
    • Move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait (2290d00)
    • Add Data object (a0bb652)
  • #279
    • Adapt to changes in git-hash (5eb0230)
  • #293
    • Fix tree-entry-ordering implementation (ea169a6)
  • #301
    • Update changelogs prior to release (84cb256)
  • #329
    • In-manifest and in-lib feature documentation (5c573bf)
    • Document all features related to serde1 (72b97f2)
  • #364
    • Support for trimming of whitespace around name and email (a39bf71)
    • CommitRef::time() (8f1b42b)
    • Full error handling for CommitRefIter (b94471a)
    • More speedy access to author/committer (6129607)
    • CommitRefIter::(author|committer)(), better usability (c51a925)
    • CommitRefIter::parent_ids() (91065cd)
  • #389
  • #427
    • tree::EntryMode::as_str() to display itself as a string. (4f4bba2)
    • Improve error messages related to object decoding (761695c)
  • #450
  • #470
    • Update changelogs prior to release (caa7a1b)
  • #63
    • Use new oid where possible in git-odb (68a709e)
    • Refactor; better errors for invalid hash sizes (be84b36)
    • Make ObjectId/oid happen! (ca78d15)
    • Remove all public exports of git-hash types in git-object (accf89d)
    • Remove re-export of git_object::borrowed::Id (a3f2816)
    • Move git-hash::owned::Id into git-hash::Id (fdbe704)
    • Rename git_hash::*::Digest to Id (188d90a)
  • #67
    • Describe variants (899c579)
    • Parse entry mode into number instead of comparing it to byte strings (83d591d)
    • ObjectID specific hashers, using the fact that object ids are hashes (f9232ac)
    • Tree parsing now probably is twice as fast… (d1e2b89)
  • #691
    • Set rust-version to 1.64 (55066ce)
  • #79
    • Refactor; add test for empty tree iteration (6340296)
  • #XXX
    • Prepare changelogs prior to release (8c0bca3)
  • Uncategorized
    • Release gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (e313112)
    • Release gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (6efd0d3)
    • Release gix-date v0.4.2, gix-hash v0.10.2, gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (6ccc88a)
    • Merge branch 'rename-crates' into inform-about-gix-rename (c9275b9)
    • Rename git-testtools to gix-testtools (b65c33d)
    • Fix git-object tests (fb92865)
    • Adjust to renaming of git-pack to gix-pack (1ee81ad)
    • Adjust to renaming of git-odb to gix-odb (476e2ad)
    • Adjust to renaming of git-index to gix-index (86db5e0)
    • Adjust to renaming of git-diff to gix-diff (49a163e)
    • Adjust to renaming of git-commitgraph to gix-commitgraph (f1dd0a3)
    • Adjust to renaming of git-mailmap to gix-mailmap (2e28c56)
    • Adjust to renaming of git-discover to gix-discover (53adfe1)
    • Adjust to renaming of git-chunk to gix-chunk (59194e3)
    • Adjust to renaming of git-bitmap to gix-bitmap (75f2a07)
    • Adjust to renaming for git-protocol to gix-protocol (823795a)
    • Adjust to renaming of git-refspec to gix-refspec (c958802)
    • Adjust to renaming of git-revision to gix-revision (ee0ee84)
    • Adjust to renaming of git-transport to gix-transport (b2ccf71)
    • Adjust to renaming of git-credentials to gix-credentials (6b18abc)
    • Adjust to renaming of git-prompt to gix-prompt (6a4654e)
    • Adjust to renaming of git-command to gix-command (d26b8e0)
    • Adjust to renaming of git-packetline to gix-packetline (5cbd22c)
    • Adjust to renaming of git-worktree to gix-worktree (73a1282)
    • Adjust to renamining of git-hashtable to gix-hashtable (26a0c98)
    • Adjust to renamining of git-worktree to gix-worktree (108bb1a)
    • Adjust to renaming of git-url to gix-url (b50817a)
    • Adjust to renaming of git-date to gix-date (9a79ff2)
    • Adjust to renamining of git-attributes to gix-attributes (4a8b3b8)
    • Adjust to renaminig of git-quote to gix-quote (648025b)
    • Adjust to renaming of git-config to gix-config (3a861c8)
    • Adjust to renaming of git-ref to gix-ref (1f5f695)
    • Adjust to renaming of git-lock to gix-lock (2028e78)
    • Adjust to renaming of git-tempfile to gix-tempfile (b6cc3eb)
    • Adjust to renaming of git-object to gix-object (fc86a1e)
    • Rename git-object to gix-object (2320358)
    • Adjust to renaming of git-actor to gix-actor (4dc9b44)
    • Adjust to renaming of git-validate to gix-validate (5e40ad0)
    • Adjust to renaming of git-hash to gix-hash (4a9d025)
    • Adjust to renaming of git-features to gix-features (e2dd68a)
    • Adjust to renaming of git-glob to gix-glob (35b2a3a)
    • Adjust to renaming of git-sec to gix-sec (eabbb92)
    • Adapt to renaming of git-path to gix-path (d3bbcfc)
    • Adjust to rename of git-config-value to gix-config-value (622b3e1)
    • Release git-features v0.26.4 (109f434)
    • Release git-features v0.26.3 (1ecfb7f)
    • Release git-date v0.4.2, git-hash v0.10.2, git-features v0.26.2, git-actor v0.17.1, git-glob v0.5.3, git-path v0.7.1, git-quote v0.4.1, git-attributes v0.8.2, git-config-value v0.10.1, git-tempfile v3.0.2, git-lock v3.0.2, git-validate v0.7.2, git-object v0.26.1, git-ref v0.24.0, git-sec v0.6.2, git-config v0.16.0, git-command v0.2.3, git-prompt v0.3.2, git-url v0.13.2, git-credentials v0.9.1, git-diff v0.26.1, git-discover v0.13.0, git-hashtable v0.1.1, git-bitmap v0.2.1, git-traverse v0.22.1, git-index v0.12.3, git-mailmap v0.9.2, git-chunk v0.4.1, git-pack v0.30.2, git-odb v0.40.2, git-packetline v0.14.2, git-transport v0.25.4, git-protocol v0.26.3, git-revision v0.10.2, git-refspec v0.7.2, git-worktree v0.12.2, git-repository v0.34.0, safety bump 3 crates (c196d20)
    • Prepare changelogs prior to release (7c846d2)
    • Merge branch 'Lioness100/main' (1e544e8)
    • Fix typos (39ed9ed)
    • Thanks clippy (bac57dd)
    • Optimize usage of hex_to_id() (6fa950d)
    • Break cyclical dev dependencies (1fea18f)
    • Release git-date v0.4.0, git-actor v0.17.0, git-object v0.26.0, git-traverse v0.22.0, git-index v0.12.0, safety bump 15 crates (0e3d0a5)
    • Prepare changelogs prior to release (d679f5b)
    • Release git-features v0.26.0, git-actor v0.16.0, git-attributes v0.8.0, git-object v0.25.0, git-ref v0.22.0, git-config v0.14.0, git-command v0.2.1, git-url v0.13.0, git-credentials v0.9.0, git-diff v0.25.0, git-discover v0.11.0, git-traverse v0.21.0, git-index v0.11.0, git-mailmap v0.8.0, git-pack v0.29.0, git-odb v0.39.0, git-transport v0.25.0, git-protocol v0.26.0, git-revision v0.9.0, git-refspec v0.6.0, git-worktree v0.11.0, git-repository v0.31.0, safety bump 24 crates (5ac9fbe)
    • Prepare changelogs prior to release (30d8ca1)
    • Release git-date v0.3.1, git-features v0.25.0, git-actor v0.15.0, git-glob v0.5.1, git-path v0.7.0, git-attributes v0.7.0, git-config-value v0.10.0, git-lock v3.0.1, git-validate v0.7.1, git-object v0.24.0, git-ref v0.21.0, git-sec v0.6.0, git-config v0.13.0, git-prompt v0.3.0, git-url v0.12.0, git-credentials v0.8.0, git-diff v0.24.0, git-discover v0.10.0, git-traverse v0.20.0, git-index v0.10.0, git-mailmap v0.7.0, git-pack v0.28.0, git-odb v0.38.0, git-packetline v0.14.1, git-transport v0.24.0, git-protocol v0.25.0, git-revision v0.8.0, git-refspec v0.5.0, git-worktree v0.10.0, git-repository v0.30.0, safety bump 26 crates (e6b9906)
    • Prepare chnagelogs prior to git-repository release (7114bbb)
    • Release git-hash v0.10.1, git-hashtable v0.1.0 (7717170)
    • Merge branch 'main' into http-config (bcd9654)
    • Release git-hash v0.10.0, git-features v0.24.0, git-date v0.3.0, git-actor v0.14.0, git-glob v0.5.0, git-path v0.6.0, git-quote v0.4.0, git-attributes v0.6.0, git-config-value v0.9.0, git-tempfile v3.0.0, git-lock v3.0.0, git-validate v0.7.0, git-object v0.23.0, git-ref v0.20.0, git-sec v0.5.0, git-config v0.12.0, git-command v0.2.0, git-prompt v0.2.0, git-url v0.11.0, git-credentials v0.7.0, git-diff v0.23.0, git-discover v0.9.0, git-bitmap v0.2.0, git-traverse v0.19.0, git-index v0.9.0, git-mailmap v0.6.0, git-chunk v0.4.0, git-pack v0.27.0, git-odb v0.37.0, git-packetline v0.14.0, git-transport v0.23.0, git-protocol v0.24.0, git-revision v0.7.0, git-refspec v0.4.0, git-worktree v0.9.0, git-repository v0.29.0, git-commitgraph v0.11.0, gitoxide-core v0.21.0, gitoxide v0.19.0, safety bump 28 crates (b2c301e)
    • Prepare changelogs prior to release (e4648f8)
    • Merge branch 'pierrechevalier83/main' (a5b1d73)
    • Thanks clippy (0a6d888)
    • Restore original representation of Tag at the cost of some duplication (dd0a23d)
    • Unify pre-allocation of parents in Commit to match typical single-ancestor chains (7242d1f)
    • Refactor (c02a6bd)
    • [refactor] Deduplicate Tag and TagRef (6003fa2)
    • Merge branch 'version2021' (0e4462d)
    • Upgrade edition to 2021 in most crates. (3d8fa8f)
    • Merge branch 'pierrechevalier83/main' (f0dfa4c)
    • [git-object] Encode empty tags like git does (3bd3380)
    • 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 (upgrade to Rust 1.65) (5406630)
    • Adapt in-memory size check to Rust 1.65 and below (1919e8e)
    • Object::try_into_blob_ref() as alternative to consuming *::try_into_blob() (14d6133)
    • 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)
    • Merge branch 'main' into fetch-pack (93917cb)
    • Merge branch 'fix-loose-parsing' (1dc2a5d)
    • Don't panic if broken loose objects are encountered. (2df3c73)
    • Don't panic on too short loose object (c89c7ff)
    • Merge branch 'fix-git-features' (82fd251)
    • Merge branch 'main' into fix-odb-race (30712dc)
    • Add tree::EntryMode::is_blob() to quickly determine if an entry is a blob. (5095df9)
    • Merge branch 'diff' (25a7726)
    • 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' (fd14489)
    • Release git-features v0.22.6 (c9eda72)
    • Merge branch 'filter-refs' (e10554d)
    • 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)
    • Merge branch 'main' into filter-refs-by-spec (cef0b51)
    • 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)
    • Refactor (867fc20)
    • Merge branch 'main' into filter-refs-by-spec (cfa1440)
    • 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 '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)
    • 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)
    • Prepare changelogs prior to reelase (c06ae1c)
    • Release git-hash v0.9.7, git-features v0.22.1 (232784a)
    • Merge branch 'rev-parse-delegate' (2f506c7)
    • 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)
    • 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 pull request #1 from Byron/main (085e76b)
    • Merge branch 'main' into pathspec (89ea12b)
    • Merge branch 'main' into cont_include_if (daa71c3)
    • Thanks clippy (e1003d5)
    • Merge branch 'main' into SidneyDouw-pathspec (a22b1d8)
    • Merge branch 'main' into git_includeif (598c853)
    • 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)
    • Merge branch 'main' into msrv-for-windows (7cb1972)
    • Erge branch 'fix-describe' (56d7ad7)
    • Release git-actor v0.9.0, git-object v0.18.0 (ef9242b)
    • Release git-hash v0.9.3, git-features v0.20.0, git-config v0.2.0, safety bump 12 crates (f0cbb24)
    • Thanks clippy (3079e11)
    • Merge branch 'main' into mailmap (b2df941)
    • Merge branch 'describe-rev' (77b7cd9)
    • Adapt to breaking changes in git-actor (40c48c3)
    • Upgrade document-features (c35e62e)
    • Release git-actor v0.8.1 (08fe550)
    • Release git-object v0.17.1, git-pack v0.16.1 (e959af8)
    • Release git-hash v0.9.2, git-object v0.17.1, git-pack v0.16.1 (0db19b8)
    • Update changelogs prior to git-pack release (b7e3a4a)
    • Merge branch 'index-verification' (ad3c803)
    • 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)
    • 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)
    • Merge branch 'oknozor-feat/traversal-sort-by-committer-date' (6add377)
    • Add sorting mode to ancestor traversal #270 (eb36a3d)
    • Rename commit::ref_iter::Token::into_id() to *::try_into_id() (fda2a8d)
    • Thanks clippy (7dd2313)
    • 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)
    • Merge branch 'pack-consistency' (5982406)
    • Merge branch 'git-loose-objects' of https://github.com/xmo-odoo/gitoxide into xmo-odoo-git-loose-objects (ee737cd)
    • 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)
    • Better changelog descriptions. (f69b2d6)
    • 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)
    • Adjust changelogs prior to git-pack release (ac8015d)
    • Move "loose object header" ser/de to git-object (3d1565a)
    • Merge branch 'header-field-multi-improve' of https://github.com/xmo-odoo/gitoxide into xmo-odoo-header-field-multi-improve (d88e377)
    • Improve error handling of encode::header_field_multi_line & simplify (bab9fb5)
    • 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)
    • 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 'changelog-generation' (bf0106e)
    • Thanks clippy (d78d382)
    • Thanks clippy (4ea1126)
    • Thanks clippy (e56af5a)
    • [object #164] refactor (883343b)
    • Bump git-object v0.14.0 (d4fc81f)
    • [repository #164] Prepare commit() for a possible less-allocating future (0fd01f7)
    • [repository #164] generic write_object() (c569f83)
    • Thanks clippy (33a8fb3)
    • [object #164] Allow referenced objects to be serialized as well (a98d298)
    • Release git-object v0.13.1 (2c55ea7)
    • Merge branch 'repository-integration' (49f5453)
    • Bump git-hash v0.6.0 (6efd90d)
    • [object #190] consistent method naming (c5de433)
    • [object #190] More conversion methods for Object (78bacf9)
    • [repository #190] A way to write objects and the empty tree specifically (7c559d6)
    • [object #177] cleanup CommitRefIter imports and git_object::Error (058f68a)
    • [object #177] dissolve 'immutable' module (70e11c2)
    • [object #177] fix docs (2fd23ed)
    • [object #177] resolve 'mutable' module (b201b32)
    • [object #177] refactor (216dd0f)
    • [object #177] refactor (472e13b)
    • [object #177] Commit::write_to migration (60b9365)
    • [object #177] commit::RefIter -> CommitRefIter (e603306)
    • [object #177] migrate immutable::commit into crate::commit (45d3934)
    • [object #177] refactor tag write_to (7f19559)
    • [object #177] tag::RefIter -> TagRefIter (28587c6)
    • [object #177] into_mutable() -> into_owned() (7e701ce)
    • [object #177] fix docs (25d8e7b)
    • [object #177] move mutable objects to crate::* (c551c02)
    • [object #177] migrate immutable::tree to crate::tree (fa5cd06)
    • [object #177] fix docs (07be661)
    • [object #177] move immutable::* to crate::*Ref, start iter adjustments (461dc53)
    • [object #177] rename immutable::* to immutable::*Ref (6deb012)
    • Release git-object v0.13.0 (708fc5a)
    • Merge branch 'git-ref-refactor' (5dbf753)
    • Release git-actor v0.5.0 (a684b0f)
    • [actor #175] refactor (ec88c59)
    • Release git-actor v0.4.0 (16358c9)
    • [actor #173] fix docs (2d7956a)
    • [actor #173] rename immutable::Signature to SignatureRef! (96461ac)
    • Merge branch 'Byron:main' into main (dc58eca)
    • Upgrade to nom-7 (f0aa3e1)
    • [smart-release #162] use TreeRef capabilities to lookup path (51d1943)
    • [repository #162] what could be a correct implementation of a tree path lookup (1f638ee)
    • Release git-object v0.12.2 (6e58edd)
    • [object] argh, remove these tests for now no time for this (13d627d)
    • [object] simply exclude the feature from testing for now… (adba3b9)
    • [object] fix magically smaller object size expectation (bf4d2d7)
    • Apply nightly rustfmt rules. (5e0edba)
    • Release git-object v0.12.1 (086baa2)
    • Remove dev-dependency cycles by removing their version (c40faca)
    • Release git-object v0.12.0 (7006150)
    • Release git-actor-0.3.1 (727087d)
    • (cargo-release) version 0.11.0 (a5be31c)
    • (cargo-release) version 0.5.0 (bf15c2a)
    • (cargo-release) version 0.3.0 (64efc05)
    • (cargo-release) version 0.4.0 (70ef344)
    • (cargo-release) version 0.5.0 (ae02dab)
    • (cargo-release) version 0.4.0 (0d5c8b9)
    • (cargo-release) version 0.2.0 (8ff5115)
    • Clippy on tests and thanks clippy (a77a71c)
    • Thanks clippy (e1964e4)
    • [ref] fix build (bad find&replace) (467395f)
    • [ref] refactor (e26c72f)
    • Remove unnecessary pub(crate) exports (3d2456e)
    • [ref] refactor (207a799)
    • [ref] flexible and simple support for different hash lengths (9c2edd5)
    • Thanks clippy (c437304)
    • [object] Add feature toggle for verbose errors… (4b63d8a)
    • [object] support for verbose errors for object parsing (8156f10)
    • [object] refactor (6f63983)
    • [object] Generalize nom error handling and use nom-errors instead of custom ones (47c8a97)
    • [object] remove unused dependencies (2f01e46)
    • [object] cleanup parsing error handling by removing NomDetail (e91cb40)
    • [object] refactor (1ddb5c0)
    • [object] replace custom context impl with the one by nom (9a6692d)
    • [object] refactor (8205429)
    • [actor] git-object uses git-actor (d01dd2f)
    • [actor] make signature parsing public, exposing nom :/ (a627972)
    • [refs] try to get structure in place for reflog parsing (727c66a)
    • Thanks clippy (6200ed9)
    • (cargo-release) version 0.3.0 (87db688)
    • (cargo-release) version 0.3.0 (6b33678)
    • (cargo-release) version 0.2.0 (3286e42)
    • (cargo-release) version 0.4.0 (866f86f)
    • (cargo-release) version 0.2.0 (1327894)
    • [git-object] use git-validate crate (4ba98e8)
    • [git-object] refactor (d64d326)
    • [git-ref] the first failing test (7e802a0)
    • Switch to latest nom (859e57e)
    • [git-ref] clear it out and move existing functionality to git-object (fa548ce)
    • (cargo-release) version 0.5.0 (b6b5856)
    • [pack-gen] refactor (61554e2)
    • [pack-gen] tag support for tree traversal (28ed260)
    • (cargo-release) version 0.10.0 (5d7ee6a)
    • [pack-gen] more tests for Tag iterator (b69d6d6)
    • [pack-gen] the first green test for Tag iterators (df5ef8a)
    • (cargo-release) version 0.9.0 (84897fd)
    • Allow empty trees when parsing them at once, fixes #79 (d34fd19)
    • Refactor (9870923)
    • [hours-demo] computation seems to work better now (26ecca2)
    • Refactor (2d00c4e)
    • [hours-demo] Maybe the pinnacle of performance… (f70c61a)
    • Remove debug-assert which doesn't hold - it's OK to have empty commit messages (13abc2d)
    • And it's a wrap for git-diff docs for now (9e09dd5)
    • [traversal] first impl based on git-odb::traver (76a3017)
    • A new crate: git-traverse (1a9af50)
    • (cargo-release) version 0.8.0 (a1ce210)
    • (cargo-release) version 0.3.0 (e9665c7)
    • [traversal] add CommitIter::tree_id() convenience method (6affd9d)
    • [traversal] trying to get things done with gitoxide shows some teeth… (3fee661)
    • Refactor; better iter error handling tests (9fe139b)
    • [tree-diff] more tests for the tree iterator (91b5a02)
    • Test error handling of commit iteration (fcec4b4)
    • Thanks clippy (41418ed)
    • Fix serde support for commit iter token (3bfcb49)
    • [tree-diff] all the tests for commit iter (7ebea87)
    • [tree-diff] more tests (4f81450)
    • [tree-diff] And there is a working commit iterator, needs more tests (d991847)
    • [tree-diff] A complete nearly working impl of a Commit iterator (4711821)
    • Frame for Commit iterator (796b74a)
    • First failing test for commit iterator; store two parents without alloc (8337514)
    • [tree-diff] one more test green + refactor (bc5549d)
    • [tree-diff] refactor into iterator based model (29b527a)
    • [tree-diff] The least intrusive way to allow dealing with tree iterators (d41dd3c)
    • [tree-diff] prototype an immutable tree iterator to avoid entry allocs (f38e5cd)
    • [tree-diff] A step closer to handling additions in a directory (a11f210)
    • Refactor (a4d5f99)
    • Refactor (633cba7)
    • First sketch of diff API (fc3f2b7)
    • Better ergonomics for accessing decoded objects (ae3eab6)
    • Thanks clippy (8295548)
    • Refactor (9d03843)
    • Fix debug assert, thanks gitpython (fe954b9)
    • More explicit expectations towards entries in mutable Trees (d94f84c)
    • Refactor (f19ea33)
    • An even better name for decode errors (f270850)
    • Make clear it's a decode error we are using there (f45cb4b)
    • Rename git-object::(owned->mutable)|(borrowed|immutable) #(67) (91ee558)
    • The first basic traversal utility #(67) (ea6610b)
    • (cargo-release) version 0.7.0 (b900914)
    • (cargo-release) version 0.2.0 (4ec09f4)
    • Thanks clippy (cefbf3e)
    • Upgrade depdendencies (e4a7711)
    • Improved high-level docs for git-object (60036f2)
    • Add missing '.' at end of doc comments (7136854)
    • All crates use git-hash::Kind and its types, sometimes through git-object (124c171)
    • First round of git-object doc proof reading (524ce51)
    • (cargo-release) version 0.5.0 (fc7d600)
    • deny(missing_docs) for git-object (8525684)
    • More docs for owned git-object (b79101d)
    • A few more comments in git-object (171d269)
    • Thanks clippy (ba9b3c2)
    • Refactor (d5d7cf9)
    • More git-object docs (ba595f6)
    • More docs of git-object::owned (0620dce)
    • Docs for git-object::borrowed (68e524d)
    • Docs for git-object::borrowed::commit (c5c1df0)
    • Merge branch 'commit-graph' into main (9cb09b2)
    • Add and use borrowed::Id::null_sha1() (c717492)
    • Updated expect message (e8d8d93)
    • Update error message for type name (92cbb13)
    • Document borrowed odb objects (7626f7f)
    • Remove dash in all repository links (98c1360)
    • Merge from main. (b59bd5e)
    • Finish removal of rust 2018 idioms (0d1699e)
    • Refactor (e4bcfe6)
    • (cargo-release) version 0.4.0 (0d7b60e)
    • (cargo-release) version 0.4.0 (f9dd225)
    • [clone] proper parsing of V1 refs (d262307)
    • [clone] Don't expose hex-error in public interfaces anymore (92dab30)
    • Allow dual-licensing with Apache 2.0 (ea353eb)
    • Refactor (a0bebd1)
    • Bump minor version to 0.3 (4351e28)
    • Update to quick-error 2.0 (4b1b784)
    • Thanks clippy (62d2ff3)
    • Organize object type comparisons by probability… (19a5d94)
    • Don't cause re-allocs of the compression buffer (2bb6fd2)
    • Reduce memory consumption (6d1a7a1)
    • Also read the pack trailer during iteration (98a8e17)
    • Refactor; better tests (12d14bf)
    • First step towards putting the index file into position (d994c74)
    • Improve looks of documentation (11a32eb)
    • Finish Sink implementation (84f7908)
    • Introduce hash kind, as this should be specified when writing an object (f5d0acf)
    • (cargo-release) version 0.2.0 (76fe0ab)
    • (cargo-release) version 0.2.0 (d350a13)
    • Beautifully implement shared extra-header access (920d1ac)
    • Roundtrip Rust repo in stress test; accept more diverse trees when parsing (0347cdb)
    • Make sure we write out trailing newlines properly in multi-line headers! (7f044c3)
    • Consume PGP signature in tags fully (ffd6c31)
    • Support for very special tree entry mode… (2be2c9d)
    • Make tagger signature optional (3358f9a)
    • Remove now unused pgp_signature field - it's in extra-headers (c8c937c)
    • Proper support for extra-headers (d0feb2b)
    • Abiility to read mergetags (for now only these) as extra-headers (bd3a2db)
    • Switch to latest quick-error (9760856)
    • Fully implement --encode and --re-encode flags (a7cfac8)
    • Empty trees are allowed, and they are special, too (6bed200)
    • Refactor (56b66ac)
    • Basic top-level object round-tripping (e851cbe)
    • Refactor (ec5e50f)
    • Implement blob (f30caf4)
    • Refactor (335e98a)
    • Tree roundtrip (8b26a0e)
    • Prepare for writing out owned trees (2b6eced)
    • Manual deserialize implementation, for now (9f46efd)
    • Use borrowed::Id in trees for full type safety (5d57c1f)
    • Refactor (f7b8826)
    • Commit round-tripping works with multi-line signatures (b692b0a)
    • First attempts to roundtrip signatures shows I parse it wrongly :D (1b48367)
    • Prepare for allowing an owned, processed version of multi-line headers (f966e7f)
    • First attempt to round-trip multi-line headers (645ef94)
    • Single-line header support (478c09e)
    • The first basic version of commit serialization (5319f64)
    • Make reusing round-trip code easier (3b9d66c)
    • Refactor (987787e)
    • Fix tests on windows, by ignoring them (512ed6c)
    • Use borrowed::Id everywhere (9f876f0)
    • Move git_object::Id into git_object::owned::Id - much better already! (50c7136)
    • Basic integration of borrowed Id; translate between owned and borrowed (84ff638)
    • Prepare to allow Id be owned and borrwed; abstract over hash type (d883c31)
    • Introduce the notion of IdRef (7007361)
    • Use statically known borrowed arrays for perfect type safety! (3ead048)
    • Refactor (766f3e4)
    • Tags can write signatures (a48275e)
    • Tags can write a message properly (b590b77)
    • Green tests as basic tags can now be serialied (62a02b4)
    • More tests for signature serialization (5000f30)
    • Time serialization (1eb1e36)
    • Prepare writing of time as part of signature (f560bc5)
    • Add new 'git-ref' crate; place ref name validation code there (1a0e84e)
    • Refactor (b4392e8)
    • Some more boilerplate to actually implement complete ref name checking (087857a)
    • Very basic first steps of validated serialization (d3fd5ff)
    • It's probably OK to consume the borrowed objects when converting them to owned (101ddd5)
    • Try basics of roundtrip without consuming the source object (581794e)
    • Refactor (bca1f16)
    • First sketch of owned Tag in preparation for round-tripping (fa2745a)
    • Refactor (90ae25d)
    • Refactor (256581b)
    • 'data -> 'a as it's shorter and also more idiomatic (71821e9)
    • Refactor (dedd4dc)
    • Apply cargo-diet (better late than never :D) (295fc81)
    • Make crates publishable (5688a34)
    • Handle windows newlines in test suite for packs as well. (ebd5176)
    • Fixup text file tests on windows (2288088)
    • Add metadata to allow docs.rs build all featueres (10f9386)
    • Git-odb with serde support (0da930c)
    • Cut back on onnecessary annnotations: serde(borrow) (759915c)
    • Serde support for all git-object types, incl. test (1ae8f9c)
    • Learn from the best: with-serde -> serde1 (d651c21)
    • Commit to using bstr whenever something is not data bytes; remove miniserde (3183d1b)
    • Prepare centralization of bstr as optional component (aa857d9)
    • Add support for miniserde (f806647)
    • First gentle test of adding serde support selectively. (78d9bc0)
    • Allow for more screen space when formatting (6794300)
    • Pack offset by index (69e35b1)
    • Test V1 lookup (e9c7127)
    • Validate sha1 of pack objects, some work, some don't for some reason… (aa8799a)
    • Capability to write loose object headers, fast (de0aeff)
    • Simplify folder names (36fde1f)
    • Implement object Id as newtype for more convenenience and… (b7a4d17)
    • Rename grit to 'gitoxide', CLI name is 'gio' (9d6007f)
    • Fix clippy (a9c5da7)
    • More convenient access to our four object types (ecda6d2)
    • Even better trait derives (e78f9f6)
    • Better trait support for basic types (6617386)
    • Memory size checks for objects (ab51616)
    • Make single-field objects blob and tree more explicit (1aef68f)
    • Add Blob type to parsed objects (d3e8e4b)
    • Fix imports (10f2967)
    • Try pub use with rename. Not bad in the docs, but maybe a bit confusing (526f3f8)
    • Refactor (2ffd7fa)
    • Refacto (ffc0089)
    • Refactor (b9a1647)
    • Test for parsing trees from loose dbs (4f48249)
    • Refactor (9f9ccad)
    • Move git-object tests to top-level for separation and cleanness (df42a01)
    • Prefer integration level tests, but use unit-tests where appropriate (ec3be19)
    • Run previously unused method of Tree (0d159c2)
    • Actually use the Tree object (635e735)
    • Handle commits without newlines; make tag newlines optional (c0b54be)
    • Handle tags without newline; document fixture processing step (344a562)
    • Don't assume newlines in trees anymore (45d7c36)
    • Found huge issue with newlines polluting fixtures. (f182d22)
    • First tree implementation, which seems to work well (9694fcb)
    • Boilerplate for tree parsing (48c4c07)
    • Refactor (d48cafa)
    • Add conversion traits for Object<->Tag|Commit (7dcbd5d)
    • Make Commit available in borrowed object (b2d1b5d)
    • Use smallvec to save memory in the common case (single parent) (263835b)
    • More tests (56248fe)
    • Now gpg-signature parsing works correctly - thanks to peek(…) (7078dac)
    • First somewhat working version of single/multi-line signature parsing (dab5c65)
    • Support single-line gpg signatures (71330b5)
    • Support for commit encoding field (40bffe9)
    • More commit tests, next up: encoding (ca4d3aa)
    • First successful parsing of commit (b44765a)
    • Parse BStr versions of hex-shas directly (e3a2b77)
    • Parse parents (696e0a3)
    • Use BStr instead of Id to avoid parsing into something we might not use/need (7c97471)
    • Factor out hex sha parsing (d650dd2)
    • Refactor (0104f4c)
    • First stab at factoring header parsing into sub-parser (6f6ee8f)
    • First fixtures for commit parsing (551f2d1)
    • Avoid unnecessary allocation when creating SHA1 paths in loose ODB (09d8d3a)
    • Document existing use of unsafe, deny everywhere else (41f4bce)
    • Cleanup integer parsing in loose object database (ecdce1a)
    • Add remaining tag tests, along with some fixes (06e22fb)
    • Use bstr were possible (01dd4e2)
    • The defining property is actually that the object is borrowing data (e0125fd)
    • Refactor (683360a)
    • Move all tests into the top-level for nicer names basically :D (598901a)
    • Refactor (0f01e9f)
    • Refactor (87bbea4)
    • Refactor; add more signature parsing tests (ba9c7de)
    • Cleanup; all tests work! (7c96603)
    • Fix whitespace (ebaaa00)
    • First version of tag message parsing - it's actually changed now (74b2328)
    • Implement parse_signature with nom, starting to like it (ebdf205)
    • First part of parsing tagger signatures (5b43270)
    • Generalize with Boxed error cause (824cd2c)
    • First seemingly awkward way of not discarding too much error information… (6f9a636)
    • Refactor (fb287af)
    • The first sketch of parsing a tag with Nom and half-decent errors (4498dff)
    • Use git-object in git-odb (07f7c31)
    • Move all object related code into own crate… (605ef20)

0.26.0 (2023-01-06)

A maintenance release without user-facing changes.

0.25.0 (2022-12-30)

A maintenance release without user-facing changes.

0.24.0 (2022-12-19)

A maintenance release without user-facing changes.

0.23.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 gix-features and gix-pack are 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.

0.22.1 (2022-11-06)

New Features

  • Object::try_into_blob_ref() as alternative to consuming *::try_into_blob()

0.22.0 (2022-10-10)

New Features

  • add tree::EntryMode::is_blob() to quickly determine if an entry is a blob.

Bug Fixes

  • don't panic if broken loose objects are encountered. Previously a loose object could advertise any object size and cause a panic if it was shorter than advertised. Now an error will be returned.

0.21.0 (2022-09-20)

Changed (BREAKING)

  • upgrade bstr to 1.0.1

Chore (BREAKING)

  • remove quick-error in favor of thiserror Some errors change shape which makes this a breaking change.

0.20.3 (2022-08-28)

Maintenance release without user-facing changes.

0.20.2 (2022-08-24)

Chore

  • uniformize deny attributes

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

0.20.1 (2022-08-17)

New Features

  • tree::EntryMode::as_str() to display itself as a string.

0.20.0 (2022-07-22)

This is a maintenance release with no functional changes.

Bug Fixes

  • improve error messages related to object decoding

0.19.0 (2022-05-18)

New Features

  • TagRefIter::tagger(). Additionally ergonomics have been improved as the iterator is now Copy, similarly to the other iterators.

0.18.0 (2022-04-03)

New Features

  • support for trimming of whitespace around name and email It's separated from parsing to assure we can round-trip, but it's made easy to obtain trimmed results using new methods.

    This high-level git-repository will also trim by default now.

  • CommitRef::time() A shortcut to allow for fluid retrieval of the committer.time.

  • CommitRefIter::(author|committer)(), better usability The methods returning an iterator are now consuming, which allows them to be nested by callers.

  • CommitRefIter::parent_ids() Allocation-free parent retrieval.

  • in-manifest and in-lib feature documentation

0.17.1 (2022-02-01)

A automated maintenance release without impact to the public API.

Fixes

  • Corrected the tree-entry ordering implementation.

0.17.0 (2022-01-23)

Chore

  • upgrade dependencies

New Features

  • Add sorting mode to ancestor traversal #270

  • add Data object This is typed data baked by a slice for conversion into parsed ObjectRef's for example.

    This is usually the result of a Find operation on an object database.

Changed (BREAKING)

  • rename commit::ref_iter::Token::into_id() to *::try_into_id() This makes the method more consistent.
  • move gix_pack::data::Object to gix_object::Data, massively alter gix_odb::Find trait This will break a lot, but has to happen to prepare these traits for the next generation of object databases.

0.16.0 (2021-11-29)

Maintenance release due, which isn't really required but one now has to be careful what's committed at once.

0.15.1 (2021-11-16)

A maintenance release triggered by changes to gix-pack and changelog rewrites.

v0.15.0 (2021-10-19)

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

v0.14.1 (2021-10-15)

This release greatly improves performance when decoding trees, a critical requirement when building packs or generally trying to figure out what changed between commits.

Other

  • describe variants

Performance

  • Provide a new fast parser for tree objects which is used by the tree entry iterator.
  • parse entry mode into number instead of comparing it to byte strings

v0.14.0 (2021-09-08)

v0.13.1 (2021-09-07)

v0.13.0 (2021-08-27)

v0.12.2 (2021-08-17)

v0.12.1 (2021-08-13)

v0.12.0 (2021-08-12)

v0.11.0 (2021-08-11)

v0.10.0 (2021-08-10)

v0.9.0 (2021-05-09)

v0.8.0 (2021-04-30)

v0.7.0 (2021-04-08)

v0.6.0 (2020-12-16)

v0.5.0 (2020-12-15)

v0.4.0 (2020-09-12)

v0.3.0 (2020-08-12)

Refactor

  • Use borrowed::Id in trees for full type safety
  • make reusing round-trip code easier

v0.1.0 (2020-07-12)

Refactor

  • Prefer integration level tests, but use unit-tests where appropriate