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.36.0 (2023-10-12)

New Features (BREAKING)

  • add hash::bytes_with_header(), also make it 32bit compatible. That way it‘s possible to hash entire files as object. Previously it wasn’t possible to read more than u32::MAX bytes even on 32 bit system even though we are streaming the data.

Commit Statistics

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

Commit Details

  • Uncategorized
    • Prepare changelogs prior to release (1347a54)
    • Merge branch ‘reset’ (b842691)
    • Add hash::bytes_with_header(), also make it 32bit compatible. (4c03fdb)

0.35.0 (2023-09-24)

New Features

  • Add threading::make_mut() to allow obtaining a mutable reference to shared data. This is particularly useful when handling an index file, which may be shared across clones of a repository.

Bug Fixes

  • cargo-auditable build error Use prodash instead of dep:prodash in gix-features and tracing instead of dep:tracing in gitoxide-core.

    The dep:mydep syntax removes the implicit mydep feature for optional dependencies, this triggers a bug in cargo that affects cargo-auditable. See https://github.com/rust-lang/cargo/issues/12336

    This affects some Linux distributions like NixOS which use cargo-auditable by default. Related issues:

Bug Fixes (BREAKING)

  • parallel utilities that create thread-state now use FnOnce. This way, all unnecessary cloning is avoided.

Commit Statistics

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

Commit 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)
    • Merge branch ‘reset’ (54a8495)
    • Add threading::make_mut() to allow obtaining a mutable reference to shared data. (5197196)
    • Parallel utilities that create thread-state now use FnOnce. (70c7c29)
    • Merge pull request #1024 from Byron/nix-adjustments (14e0763)
    • Cargo-auditable build error (7a8f793)
    • Merge branch ‘optimize/progress-use’ (1f2ffb6)
    • Use trait object for progress in PrepareFetch::fetch_only (70989b3)

0.34.0 (2023-09-08)

Chore (BREAKING)

  • update to the latest prodash It makes proper usage of Progress types easier and allows them to be used as dyn traits as well.

New Features (BREAKING)

  • use prodash::Count to indicate that nothing more than counting is performed, in place of prodash::Progress

Bug Fixes (BREAKING)

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

Commit Statistics

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

Commit 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)
    • Use prodash::Count to indicate that nothing more than counting is performed, in place of prodash::Progress (24dd870)
    • Update to the latest prodash (ed327f6)
    • Merge branch ‘gix-submodule’ (363ee77)

0.33.0 (2023-08-22)

A maintenance release without user-facing changes.

Commit Statistics

  • 2 commits contributed to the release.
  • 30 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

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

0.32.1 (2023-07-22)

New Features

  • add interrupt::Write to auto-fail writes on interrupt.

Commit Statistics

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

Commit 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)
    • Update changelogs prior to release (2fc66b5)
    • Merge branch ‘gix-archive’ (1dda48b)
    • Add interrupt::Write to auto-fail writes on interrupt. (7179509)
    • Update license field following SPDX 2.1 license expression standard (9064ea3)

0.32.0 (2023-07-19)

New Features

  • add in_parallel_with_finalize to support a usecase for gix-worktree
  • add interrupt::Write to auto-fail writes on interrupt.

Changed (BREAKING)

  • remove zlib::stream::inflate::ReadBoxed. It was a special-case type that was only used in one spot, and thus not really that interesting to have in a shared place.

Commit Statistics

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

Commit 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 ‘refactor-pack-streaming’ (8a46a7e)
    • Remove zlib::stream::inflate::ReadBoxed. (032cea3)
    • Merge branch ‘integrate-filtering’ (b19a56d)
    • Add in_parallel_with_finalize to support a usecase for gix-worktree (2a76929)

0.31.1 (2023-06-29)

A maintenance release without user-facing changes.

Commit Statistics

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

  • Uncategorized
    • Release gix-features v0.31.1, gix-path v0.8.3, gix v0.48.0 (9ca3464)
    • Prepare changelogs once more (4bf355a)
    • Adjust gix-trace to the latest version. (353df4b)

0.31.0 (2023-06-22)

Chore

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

New Features

  • add tracing feature toggle to provide minimal tracing API This API is based on tracing-core, not on tracing, and provides a limited API that is always available, while being a no-op if tracing isn't enabled.

    That way, plumbing crates can add instrumentation at will.

Bug Fixes (BREAKING)

  • new_thread_state() functions are now FnOnce across the board. This properly communicates that they will only be called once per thread, while providing more options to the implementor.

Commit Statistics

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

Commit 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)
    • Merge branch ‘corpus’ (aa16c8c)
    • Change MSRV to 1.65 (4f635fc)
    • Add tracing feature toggle to provide minimal tracing API (093efaf)
    • new_thread_state() functions are now FnOnce across the board. (bc69804)
    • Merge branch ‘help-874-redundant-closures’ (fe59956)
    • Add clippy::redundant-closure-for-method-calls lint (bcad5c2)

0.30.0 (2023-06-06)

New Features

  • add zlib::Inflate::reset(). That way, each instance can be reused.
  • make prodash::RawProgress available. It's an object-safe version of the Progress trait.

New Features (BREAKING)

  • make current thread-count accessible in slice-workers. Threads started for working on an entry in a slice can now see the amount of threads left for use (and manipulate that variable) which effectively allows them to implement their own parallelization on top of the current one.

    This is useful if there is there is very imbalanced work within the slice itself.

    While at it, we also make consumer functions mutable as they exsit per thread.

Commit Statistics

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

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

  • #851
    • Make current thread-count accessible in slice-workers. (0fa04bc)
  • 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)
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch ‘integrate-gix-negotiate’ (ae845de)
    • Thanks clippy (9525ac8)
    • Merge branch ‘fix-alloc’ (d9d9bc0)
    • Add zlib::Inflate::reset(). (d81b7e3)
    • Merge branch ‘fix-docs’ (420553a)
    • Cleaning up documentation (2578e57)
    • Merge branch ‘auto-clippy’ (dbf8aa1)
    • Autofix map-or-unwrap clippy lint (and manual fix what was left) (2087032)
    • Merge branch ‘main’ into auto-clippy (3ef5c90)
    • Auto-fix clippy to remove explicit iter looping (3eff567)
    • Merge pull request #865 from nyurik/fix-tests (3a45973)
    • Merge branch ‘blinxen/main’ (9375cd7)
    • Include custom clippy settings (b057500)
    • Make cargo check to pass all tests (f4a44f7)
    • Include license files in all crates (facaaf6)
    • Merge branch ‘fix-851’ (2f275d5)
    • Make prodash::RawProgress available. (add5ea8)

0.29.0 (2023-04-19)

New Features (BREAKING)

  • remove types that are now available in gix-os

Commit Statistics

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

Commit Details

  • 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)
    • Support native zlib-ng via flate2's zlib-ng feature (9a6e0d7)
    • Merge branch ‘main’ into dev (23ee47f)
    • Merge branch ‘worktree-stack’ (3d47919)
    • Remove types that are now available in gix-os (b645d28)
    • Use existing concurrency primitive in_parallel (c5f3fc8)
    • Parallel status check (d7f250d)
    • Release gix-hash v0.10.4, gix-hashtable v0.1.3 (b574a39)

0.28.1 (2023-03-14)

A maintenance release without any user-facing changes.

Commit Statistics

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

Commit Details

  • Uncategorized
    • Release gix-features v0.28.1, gix-tempfile v5.0.1, gix-ref v0.27.1, gix-pack v0.33.1, gix-packetline v0.15.0, gix-transport v0.29.0, gix-protocol v0.30.0, gix v0.42.0, safety bump 3 crates (c1f1bfb)
    • Prepare changelogs prior to release (c66e298)
    • Make fmt (3836cc0)

0.28.0 (2023-03-04)

New Features (BREAKING)

  • use std::thread::scope() instead of crossbeam-utils::thread::scope(). This cuts a direct dependency. We can't removed crossbeam-channel yet due to the need for single-produce-multiple-consumer channels.

Commit Statistics

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

Commit 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)
    • Merge branch ‘adjustments-for-cargo’ (04ab852)
    • Use std::thread::scope() instead of crossbeam-utils::thread::scope(). (571ec0d)

0.27.0 (2023-03-01)

Chore

  • replace quick-error with thiserror This increases the compile time of the crate alone if there is no proc-macro in the dependency tree, but will ever so slightly improve compile times for gix as a whole.

New Features

  • make bytesize available in progress. Note that it is stubbed out unless the progress-unit-bytes feature is set.

  • add progress::count_with_decimals() and progress-unit-* feature toggles. The new feature toggles allow controlling the inclusion of the bytesize and human_format crates, which can be toggled with the progress-unit-bytes and progress-unit-human-numbers respectively.

    Without these features, the respective functions exist but don't provide special formatting, making bytes and larger numbers harder to read.

Bug Fixes

  • remove num_cpus in favor of std::thread::available_parallelism(). num_cpus was needed back in the days when std didn't support such functionality yet.

Changed (BREAKING)

  • use new dep: syntax to hide optional features from feature-set. That way, the set of features is clearly defined and controlled. This migth break applications who relied on direect access to features named after optional dependencies.

Commit Statistics

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

Commit 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)
    • Merge branch ‘adjustments-for-cargo’ (d686d94)
    • Depend on latest version of prodash for performance improvements. (5d00324)
    • Make bytesize available in progress. (7a44231)
    • Add progress::count_with_decimals() and progress-unit-* feature toggles. (7f6a807)
    • Use new dep: syntax to hide optional features from feature-set. (0cc5480)
    • Remove num_cpus in favor of std::thread::available_parallelism(). (264f78a)
    • Replace quick-error with thiserror (cce96ee)
    • Make fmt (8ef1cb2)

0.26.5 (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

  • 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.4 (2023-02-17)

New Features (BREAKING)

  • add support for explicit non-parallel iteration. That way we can allow the implementation to choose whether they need greatest speed at some cost or not.

    This also allows us to create a new thread-pool on each iteration as those who expect high cost or many files will likely chose to do that instead of single-threaded iteration, which nicely contains the threads needed and avoids keeping them alive as part of some global pool.

  • make jwalk fully optional

  • mild refactor of paths module to waste less on unix Previously it might have performed find-and-replace on unix paths even though they wouldn't have changed afterwards, yet costing an allocation.

    There is also the realization that it should go into its own crate to have neater import paths and more convenience.

  • interrupt::Iter, rename interrupt::Iter -> interrupt::IterWithError

Chore (BREAKING)

  • upgrade to prodash v23

Changed (BREAKING)

  • remove fs-jwalk-single-threaded in favor of fs-walkdir-parallel. This way, jwalk and the dependencies (and troubles) it brings have to be opted in, but also allow other users to actually opt out while allowing the parallel feature to be in effect.

    In other words, previously the parallel feature conflated jwalk dependencies into the tree, which isn't the case anymore.

  • remove local-time-support feature toggle. We treat local time as default feature without a lot of fuzz, and will eventually document that definitive support needs a compile time switch in the compiler (--cfg unsound_local_offset or something).

    One day it will perish. Failure is possible anyway and we will write code to deal with it while minimizing the amount of system time fetches when asking for the current local time.

  • remove path module in favor of git-path crate

  • renamed progress::Read::reader -> progress::Read::inner

  • parallel utilities now use Send + Clone insted of Send + Sync This helps to assure that thread-local computations always work with the kind of types we provide. The ones that are carrying out actions are notably not Sync anymore.

    We cater to that by defining our bounds accordingly, but for those who want to use other utilities that need Sync, using types like Repository and thread_local!() is the only way to make this work.

Other

  • try-join with static typing works, but… …seems like a lot of effort. Probably not worth continuing here

Bug Fixes

  • Assure std::io::copy() doesn't hang when we cause an interrupt The user can ask for interruptions which previously used the error kind Interrupted. This however has special meaning and usually means to retry.

Documentation

  • fix typos

Chore

  • uniformize deny attributes
  • update sha-1 dependency to 0.10

New Features

  • re-export prodash::progress::(Task|Value) directly under progress This is in addition to the progress re-export which allows everything but yields less optimal import paths.

  • re-export prodash in progress module. That way one can access all types even if they are not re-exported.

  • export prodash::progress::Id in the progress module for convenience.

  • zlib::inflate::Error can now represent zlib status codes that represent failure.

  • name spawned threads That way it‘s a bit more obvious what’s happening when the CPU goes up in flames.

  • upgrade to prodash 21.1 and add Ids to all progress instances. That way callers can identify progress they are interested in, say, for selective visualizations.

  • fs::Snapshot can Clone if T can Clone.

  • perfect granularity for threads processing with in_parallel_with_slice()

  • add progress::Step|StepShared as types of prodash This may help to use the Progress::counter() method as part of method signatures, being an Option<progress::StepShared>.

  • add zlib-ng feature to allow linking against system libz-ng Allow to use zlib-ng (zlib-ng-sys) with native API (no compat mode) that can co-exist with system libz (loaded by e.g. libcurl). This is used in gitoxide package on Alpine Linux.

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

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

  • add fs-jwalk-single-threaded feature to specifically decouple jwalk from rayon It has been an issue in https://github.com/starship/starship/issues/4251 apparently and rayon interactions can be difficult.

  • fs::Snapshot to on-demand reload shared resources.

  • initialize Time from now_utc and now_local Localtime support depends on some other factors now, but that will only get better over time.

    We might have to document unsound_local_time at some point.

  • Add git_config::values::Path for a typesafe git path Add a Path type to the git_config::values which can be interpolated according to gits own path interpolation rules.

  • add new ‘path’ module for all path-related conversions It's meant to unify all path and byte related handling to help assuring encoding is handled correctly or at least similarly everywhere.

  • in-manifest and in-lib documentation of feature toggles

  • Add InOrderIter to ‘parallel’ module This iterator makes possible identifies results using a sequence id and returns only consecutive items.

    Use it to collect unordered results produced by threads. It‘s advantage to collecting yourself and sorting is the potential for a smaller memory footprint of in-flight results, one doesn’t have to collect them all for ordering, necessarily.

  • Make a scope-like abstraction available This allows more delicate threading control like is required for the index.

  • decoding of variable int numbers. It's here only so that we can share the code across crates, for now without any feature toggles.

  • Add progress::Write to automatically pass bytes written to a progress instance

  • add threading primitives with feature toggle If the threading feature is set, the threading module will contain thread-safe primitives for shared ownership and mutation, otherwise these will be their single threaded counterparts.

    This way, single-threaded applications don't have to pay for threaded primitives.

Commit Statistics

Commit Details

  • #198
    • Handle changelogs with upcoming version section if they were left for editing (0f5f47d)
    • 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)
    • New changelogs for actor and features crates (e0d437c)
  • #222
    • Update changelogs prior to release (9a493d0)
    • Stabilize changelogs (920e832)
    • Update changelogs prior to release (b3e2252)
  • #259
    • Unify trait bounds for parallel code: prefer Clone over Sync (c805d0b)
    • Remove trait bounds to allow single-threaded applications to exist (3c790e0)
  • #263
    • Make it possible to return read guards with packed buffers (f5c3c8f)
    • Parallel utilities now use Send + Clone insted of Send + Sync (e7526b2)
    • A mad attempt to use thread-local everywhere and avoid Sync… (0af5077)
    • Add threading primitives with feature toggle (7e95d8a)
  • #266
    • Update sha-1 dependency to 0.10 (361892c)
    • Remove slow/unnecessary threading utilities (269b7ef)
  • #279
    • Add progress::Write to automatically pass bytes written to a progress instance (0a749a2)
    • Renamed progress::Read::reader -> progress::Read::inner (61e5cfe)
    • Adjust to changes in git-hash and git-pack (0cae25b)
  • #287
  • #293
    • Prepare changelogs for git-index and dependencies (f54bf4b)
    • Fix docs (3f89b63)
    • Fix build (e3977fe)
    • Use InOrderIter from git-features (7721b5f)
    • Add InOrderIter to ‘parallel’ module (cb7e4e7)
    • Make a scope-like abstraction available (ca095ed)
    • Single and multi-threaded index tests (a22cb0f)
    • Decoding of variable int numbers. (b8400ed)
  • #298
    • Enforce path conversion on windows gnu, it doesn't seem to like slashes (4d55a8f)
    • Use hash_hasher based hash state for better keys/less collisions (814de07)
    • Upgrade parking_lot and cargo_toml (f95c1a0)
  • #301
    • Update changelogs prior to release (84cb256)
    • Remove path module in favor of git-path crate (90611ce)
    • Mild refactor of paths module to waste less on unix (d078d6e)
    • Refactor (8345b7c)
    • More stable testing of perviously racy test for new parallelization mechanism (0b4b90f)
    • Salvage an alternative parallelization approach which might be good for index-creation (7e76796)
    • Refactor (f86eacc)
    • Use hopefully faster crossbeam channel to receive parallelized results (3b324b8)
    • Switch index checkout to chunk-based operation (e5f6943)
    • Add thread-count and chunk-size computation; interrupt capability (8cbe85d)
    • interrupt::Iter, rename interrupt::Iter -> interrupt::IterWithError (8945d95)
    • Fix interrupt::Iter (0f0d390)
  • #329
    • In-manifest and in-lib documentation of feature toggles (15ff212)
  • #331
    • Remove local-time-support feature toggle. (89a41bf)
    • Initialize Time from now_utc and now_local (c76fde7)
    • A first sketch on how identity management could look like. (780f14f)
    • Update changelog prior to release (1d07934)
    • Remove Option return values in favor of Result (493dbae)
    • Add git_config::values::Path for a typesafe git path (e4d6685)
  • #333
    • Use git_features::path everywhere where there is a path conversion (2e1437c)
    • Make real clear panics are only possible on windows (6b283dc)
    • One usage of os_str_bytes down, along with some custom conversion code (1cc95ce)
    • Gitoxide-core without os-str-bytes (909aa14)
    • Remove os_str_bytes from git-pack (86f6e50)
    • Don't use os_str_ext in git-features; adapt git-ref (9258b7b)
    • Add new ‘path’ module for all path-related conversions (3c8581f)
  • #366
    • The first possibly working version of loading a mailmap with multiple sources (98d745e)
    • Cleanup bstr usage to not accidentally pull in unicode (8ff53af)
  • #427
    • Make fmt (4b320e7)
    • Optimize some portions of the Snapshot code for speed. (711fd5c)
    • More convenient API for fs::Snapshots (561d2e7)
    • fs::Snapshot to on-demand reload shared resources. (7f199f0)
    • Use generalized reload-on-demand in git-ref (8d0cce7)
    • Now it's possible to update packed refs using the shared code (78222c2)
    • The first step towards using the generalized ReloadIfChanged in git-ref (e8de0ef)
    • Generalized port of packed-refs update logic for use in index (e3aff0c)
    • Turn on performance mode for sha-1 computation (44371a1)
  • #450
    • Upgrade to prodash v21 (a0655dc)
    • fs::Snapshot can Clone if T can Clone. (9076ce3)
  • #470
    • Update changelogs prior to release (caa7a1b)
    • Working progress printing (67ec2c7)
    • First attempt to get progress information from stat worker. (0947c70)
    • Upgrade to prodash 20.1 for Progress::counter() feature (0ac4a2c)
  • #503
  • #524
    • Prepare changelogs prior to release (6446b39)
  • #63
    • Git-protocol uses oid type (3930a6f)
    • Make ObjectId/oid happen! (ca78d15)
    • Move git-hash::owned::Id into git-hash::Id (fdbe704)
    • Rename git_hash::*::Digest to Id (188d90a)
  • #691
  • Uncategorized
    • 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)
    • 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)
    • 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)
    • Rename git-features to gix-features (85f7e1a)
    • 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)
    • Re-export prodash::progress::(Task|Value) directly under progress (a3bd14a)
    • Release git-features v0.26.3 (1ecfb7f)
    • Re-export prodash in progress module. (4260572)
    • 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)
    • Make fmt (e22080e)
    • Merge branch ‘adjustments-for-cargo’ (7bba270)
    • Export prodash::progress::Id in the progress module for convenience. (c4a7634)
    • Release git-date v0.4.1, git-features v0.26.1, git-glob v0.5.2, git-attributes v0.8.1, git-tempfile v3.0.1, git-ref v0.23.1, git-sec v0.6.1, git-config v0.15.1, git-prompt v0.3.1, git-url v0.13.1, git-discover v0.12.1, git-index v0.12.2, git-mailmap v0.9.1, git-pack v0.30.1, git-odb v0.40.1, git-transport v0.25.3, git-protocol v0.26.2, git-revision v0.10.1, git-refspec v0.7.1, git-worktree v0.12.1, git-repository v0.33.0 (5b5b380)
    • Prepare changelogs prior to release (93bef97)
    • Merge branch ‘patch-1’ (b93f0c4)
    • Thanks clippy (9e04685)
    • 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)
    • Make fmt (511ed00)
    • Merge branch ‘adjustments-for-cargo’ (f8c562a)
    • Upgrade to prodash v23 (5bf0034)
    • Release git-features v0.25.1, git-url v0.12.2, git-odb v0.38.1, git-transport v0.24.2, git-repository v0.30.2 (bb0a07b)
    • Merge branch ‘loose-find-panic’ (95cccdd)
    • Zlib::inflate::Error can now represent zlib status codes that represent failure. (25ad372)
    • 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)
    • Merge branch ‘main’ into read-split-index (c57bdde)
    • Merge branch ‘adjustments-for-cargo’ (083909b)
    • Thanks clippy (f1160fb)
    • Add support for explicit non-parallel iteration. (0f27c67)
    • Merge branch ‘adjustments-for-cargo’ (70ccbb2)
    • Upgrade to prodash v22 for API improvements (77ab98d)
    • Release git-hash v0.10.1, git-hashtable v0.1.0 (7717170)
    • Merge branch ‘main’ into http-config (6b9632e)
    • Release git-features v0.24.1, git-actor v0.14.1, git-index v0.9.1 (7893502)
    • Merge branch ‘named-threads’ (726dd87)
    • Name spawned threads (6d530a1)
    • Upgrade to prodash 21.1 and add Ids to all progress instances. (c8835c6)
    • 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)
    • Release git-features v0.23.1, git-glob v0.4.1, git-config-value v0.8.1, git-tempfile v2.0.6, git-object v0.22.1, git-ref v0.18.0, git-sec v0.4.2, git-config v0.10.0, git-prompt v0.1.1, git-url v0.10.1, git-credentials v0.6.1, git-diff v0.21.0, git-discover v0.7.0, git-index v0.7.0, git-pack v0.25.0, git-odb v0.35.0, git-transport v0.21.1, git-protocol v0.22.0, git-refspec v0.3.1, git-worktree v0.7.0, git-repository v0.26.0, git-commitgraph v0.10.0, gitoxide-core v0.19.0, gitoxide v0.17.0, safety bump 9 crates (d071583)
    • Prepare changelogs prior to release (423af90)
    • Merge branch ‘main’ into write-sparse-index (c4e6849)
    • Merge branch ‘gix-clone’ (def53b3)
    • Thanks clippy (ad96233)
    • 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)
    • Remove fs-jwalk-single-threaded in favor of fs-walkdir-parallel. (38446dc)
    • Make jwalk fully optional (3b29fc1)
    • Merge branch ‘main’ into new-http-impl (702a161)
    • Merge branch ‘main’ into clone (acb0738)
    • Merge branch ‘delta-tree-parallelization’ (cca2ad5)
    • Don't enforce Send bounds in serial version of in_parallel_with_slice() (dda661e)
    • Allow discarding the state which could otherwise be used for aggregation. (56792fb)
    • Allow input for in_parallel_with_slice to be mutable. (e928bf7)
    • Perfect granularity for threads processing with in_parallel_with_slice() (a7c11d2)
    • Add progress::Step|StepShared as types of prodash (ff1db66)
    • Merge branch ‘fix-git-features’ (82fd251)
    • 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)
    • Release git-features v0.22.6 (c9eda72)
    • Update changelog prior to release (ff80042)
    • Fix git-features docs build (e5963fe)
    • Upgrade all dependencies, except for windows (2968181)
    • Merge branch ‘dep-upgrade’ (59767b1)
    • Upgrade prodash and crosstermion to latest versions (ab7ee5b)
    • Add zlib-ng feature to allow linking against system libz-ng (cfe46b5)
    • 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-features v0.22.3, git-revision v0.4.4 (c2660e2)
    • Merge branch ‘main’ into filter-refs-by-spec (dbfa328)
    • Merge branch ‘zlib-sys’ (7b48297)
    • Restrict sha1 asm to supported archs (b383fab)
    • Add feature to link to traditional zlib for dynamic linking support (c954bbf)
    • 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-hash v0.9.7, git-features v0.22.1 (232784a)
    • Add fs-jwalk-single-threaded feature to specifically decouple jwalk from rayon (f498d35)
    • Merge branch ‘rev-parse-delegate’ (2f506c7)
    • Thanks clippy! (c072dbb)
    • Merge pull request #2 from SidneyDouw/main (ce885ad)
    • Merge branch ‘Byron:main’ into main (9b9ea02)
    • Merge branch ‘main’ into rev-parse-delegate (6da8250)
    • Merge branch ‘main’ into pathspec (7b61506)
    • Merge branch ‘kianmeng-fix-typos’ (4e7b343)
    • Fix typos (e9fcb70)
    • Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
    • Prepare changelog prior to release (3c50625)
    • Merge branch ‘config-cascade’ (f144eaf)
    • Merge pull request #1 from Byron/main (085e76b)
    • Git-features' walkdir: 2.3.1 -> 2.3.2 (41dd754)
    • Merge branch ‘main’ into pathspec (89ea12b)
    • Merge branch ‘main’ into cont_include_if (41ea8ba)
    • Release git-date v0.0.1, git-hash v0.9.5, git-features v0.21.1, git-actor v0.10.1, git-path v0.2.0, git-attributes v0.2.0, git-ref v0.14.0, git-sec v0.2.0, git-config v0.5.0, git-credentials v0.2.0, git-discover v0.2.0, git-pack v0.20.0, git-odb v0.30.0, git-url v0.6.0, git-transport v0.18.0, git-protocol v0.17.0, git-revision v0.2.1, git-worktree v0.3.0, git-repository v0.19.0, safety bump 13 crates (a417177)
    • Update changelogs prior to release (bb424f5)
    • Assure we used most recent version of crossbeam-utils (033f0d3)
    • 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)
    • Merge branch ‘worktree-stack’ (98da8ba)
    • Thanks clippy (380174f)
    • Release git-features v0.20.0, git-config v0.2.0 (a6460db)
    • Release git-hash v0.9.3, git-features v0.20.0, git-config v0.2.0, safety bump 12 crates (f0cbb24)
    • Remove ‘unused_mut’ warning on windows (4733e6c)
    • Make fmt (7cf3545)
    • Commit to using ‘unicode’ feature of bstr as git-object wants it too (471fa62)
    • Assure std::io::copy() doesn't hang when we cause an interrupt (234cd10)
    • Upgrade to prodash 19 (90c6c5a)
    • Thanks clippy (07a4094)
    • Properly document optional features (572e57d)
    • Merge branch ‘svetli-n-path_value’ (e8383ca)
    • Small refactoring and documentation. (fefb01b)
    • Upgrade document-features (c35e62e)
    • Merge branch ‘unify-path-encoding’ (566ff8a)
    • Thanks clippy (a8e9497)
    • 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)
    • Prepare changelogs for release (674ec73)
    • Prepar changelogs for cargo-smart-release release (8900d69)
    • Upgrade to tui 0.17 and prodash 18 (eba101a)
    • 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)
    • Upgrade dependencies (968df47)
    • Refactor (e7fbd9f)
    • Merge branch ‘sync-db-draft’ (7d2e20c)
    • Thanks clippy (7dd2313)
    • Release git-features v0.18.0, git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0, safety bump 12 crates (acd3737)
    • Adjust changelogs prior to release (ec38950)
    • Thanks clippy (db1bb99)
    • Merge branch ‘pack-consistency’ (5982406)
    • 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)
    • Make fmt, but now it picked up some parts that usually don't get altered… (01f7b72)
    • Release git-features v0.16.4 (fd189c7)
    • Merge branch ‘repository-integration’ (49f5453)
    • Bump git-hash v0.6.0 (6efd90d)
    • [features #190] be more explicit about why sha1-asm is disabled (507d710)
    • [various #190] rename ‘local-offset’ to ‘local-time-support’ (3a7d379)
    • [actor #190] methods to get an actor signature at the current time (6d0bedd)
    • [features #189] simple UTC-offset support for git-features (b58134b)
    • [features #???] WIP local time (1388ebf)
    • [#189] Upgrade to prodash 16… (8e98418)
    • [pack #67] Optimize caches based on cache debugging (1271c01)
    • [pack #67] Add cache debugging capabilities to git-features (8776c98)
    • Merge branch ‘main’ into 162-repo-design-sketch (e63b634)
    • Thanks clippy (d689599)
    • [features] refactor (0958fc8)
    • [features] refactor (d4605cd)
    • Release git-features v0.16.2 (42861ca)
    • Apply nightly rustfmt rules. (5e0edba)
    • (cargo-release) version 0.16.1 (e10e55c)
    • (cargo-release) version 0.5.0 (ae02dab)
    • (cargo-release) version 0.16.0 (1231dbd)
    • Upgrade prodash/crosstermion (f109409)
    • Clippy on tests and thanks clippy (a77a71c)
    • [pack] fix build (98dd557)
    • [pack] all tests running for now, but… (aec8439)
    • Refactor sha-1 specification to avoid duplication (e23d19c)
    • Resolver = 2: works! (6dc8779)
    • Try windows one more time: resolver = “2” (69d52b8)
    • Fix windows, leave todo, move on (2de9e78)
    • See if turning off “asm” support entirely fixes windows (b804ef2)
    • Try to fix build, again (c616627)
    • Don't use ASM on windows for Sha1 as it fails to build there. (ba1fb7a)
    • [features] enable ASM for everyone… (7a1128f)
    • [ref] reproducible loose ref iteration with built-in sorting (e138748)
    • [features] fix docs in the absence of sha1 related features (6ca02ac)
    • Remove unnecessary pub(crate) exports (3d2456e)
    • [ref] first rough implementation of loose ref iteration (918af42)
    • Refactor (2174513)
    • Fix docs (e68d460)
    • Remove mentions of interrupt handling feature toggles (833ac04)
    • Fix everything up so that… (5930563)
    • A first attempt to make intrerupt tools work, but… (8fb8d37)
    • First step towards moving git-features::interrupt… (8a741d0)
    • Fix build (ea2bfac)
    • Refactor (7f9be36)
    • And one less usage of the global interrupt handler… (5da57a3)
    • Make most interrupts local to the method or function (4588993)
    • Fix build (04d919f)
    • Refactor (e0b7f69)
    • [features] sketch of iterator to auto-check for interruptions (61d3a15)
    • [tempfile] integrate with git-features to have a single top-level interrupt… (6e9400d)
    • [features] protect interrupt handler from multi-initialization (592404c)
    • [interrupt] remove any user mesasages as it can't be done in a handler. (8a10af7)
    • [tempfile] a first somewhat working version of signal-hooks for interrupt handling (07b3242)
    • Update to latest prodash to get rid of ctrlc (c070d6f)
    • Refactor (2e86723)
    • Bump crossbeam-utils from 0.8.4 to 0.8.5 (fce4d10)
    • (cargo-release) version 0.4.0 (866f86f)
    • [git-pack] fix docs (efd20d4)
    • [git-features] fix compilation (38c7961)
    • [git-pack] move hash-writer to git-features as it's quite general purpose (80e5640)
    • [git-features] Remove feature that would break licensing agreements (cd6ce67)
    • [git-features] fix typo (c6f342f)
    • [git-features] Finally zlib with feature toggles is working… (057016e)
    • [git-features] And now zlib finally works! (6d887d5)
    • [git-features] simplify even more (ca54d97)
    • [git-features] refactor to help understand a zlib-related logic bug (ae826e8)
    • [git-features] a first step towards supporting a pure rust zlib backend (040cab7)
    • [git-features] Add zlib module to allow changing implementation on the fly (4bdf783)
    • (cargo-release) version 0.15.0 (d69d9fb)
    • Put prodash behind a feature toggle, too (966058d)
    • Put ‘walkdir’ behind a feature flag/make it optional. (1a3cc5b)
    • Put ‘sha1’ behind a feature toggle (4f326bc)
    • Use crc32fast instead of crc (11955f9)
    • Put crc functionality behind a feature toggle (458fa6e)
    • (cargo-release) version 0.14.0 (a760f8c)
    • Upgrade to prodash 13/tui 0.15 (1c99f51)
    • (cargo-release) version 0.3.0 (e9665c7)
    • Allow calling ‘finalize()’ on the entries iterator (3c617bc)
    • Git-odb without cargo warnings due to using the same test twice (8945f95)
    • Fix compile warning for git-features (d457faa)
    • Fix doc links (870af2a)
    • Run git-odb tests in parallel, too; improved threaded error handling (40802fd)
    • Refactor (82c2f42)
    • Refactor (7a6b514)
    • Refactor (5ef1f22)
    • Fix docs #(67) (01db10a)
    • Refactor (3e908bd)
    • Refactor (409d763)
    • Refactor (896ab94)
    • Remove unused dependency (26beb2a)
    • Don't finish the computation on drop of SteppedReduce (6453633)
    • Thanks clippy (c320761)
    • Remove unsafe interface for stepped computation #(67) (c856613)
    • A first working version of a static parallel iterator #(67) (d7d5c68)
    • A way iteration won't work with 'static #(67) (6fda1f2)
    • Sketch of machinery for producing pack entries #(67) (ac8e7fb)
    • Less restrictive requirements: Clone instead of Copy #(67) (410e7d6)
    • Improve Safety docs #(67) (15e4748)
    • A test to assure referenced input and references in ‘consume’ work #(67) (4526d82)
    • Make iterator creation unsafe and document why #(67) (593d5df)
    • First seemingly working version of an iterator which allows controlling threaded work #(67) (4a7ef7d)
    • Make the parallel SteppedReduce compile #(67) (017fdf4)
    • More docs to differentiate SteppedReduce from in_parallel() #(67) (153c083)
    • Serial version of SteppedReduce seems to be working #(67) (779542e)
    • Only store thread state #(67) (0bf8a9b)
    • Sketch instantiation of iterator adapter #(67) (a3083ad)
    • A reducer test in preparation for allow it to be used as iterator #(67) (1c2adf4)
    • (cargo-release) version 0.13.0 (ac2eddb)
    • Allow parallel reducers to produce something during ‘feed()’ #(67) (6c04fcd)
    • (cargo-release) version 0.12.0 (3b71e7e)
    • (cargo-release) version 0.2.0 (4ec09f4)
    • Refactor (dee8c66)
    • (cargo-release) version 0.11.0 (1aa1f5e)
    • (cargo-release) version 0.10.1 (0dcdfd7)
    • Remove usage of gitfeatures::fs in organize subcommand (b567d37)
    • Assure basic ‘organize’ operation is working as expected (deb6073)
    • A first stab at finding git repositories (e4dc964)
    • Upgrade ‘jwalk’ (cba048f)
    • Upgrade ‘bytes’ (3934392)
    • Upgrade prodash and friends (50755bc)
    • Add missing ‘.’ at end of doc comments (7136854)
    • Use git-hash in git-features (5b307e0)
    • (cargo-release) version 0.9.0 (a89fdb9)
    • (cargo-release) version 0.5.0 (fc7d600)
    • More docs for owned git-object (b79101d)
    • Fix io::pipe tests (9604154)
    • Uograde everything else (0cd79d0)
    • Upgrade prodash and tui (b5eadca)
    • Add remaining docs to git-features using the missing_docs directive (f8aafd6)
    • (cargo-release) version 0.8.0 (47c00c2)
    • Finish git-features documentation (934a26c)
    • Refactor (b3a8bb5)
    • Refactor (f9e8d29)
    • Docs for the git-features::pipe module (67a950a)
    • Document git-features::parallel (b899227)
    • Dependency update (fb077f9)
    • Finish git_features::interrupt docs (471a1bf)
    • Dependency update (b3b4aba)
    • Docs for git-features::hash (a3fdecc)
    • First sketch of filesystem docs for git-features (1a8141c)
    • (cargo-release) version 0.7.0 (7fa7bae)
    • Merge branch ‘commit-graph’ into main (9cb09b2)
    • Specify the hash to create with ‘hash::bytes_of_file’ (c000294)
    • Move ‘git_odb::hash::bytes_of_file’ into git_features::hash (c5f6b45)
    • Remove dash in all repository links (98c1360)
    • Merge branch ‘main’ into commit-graph (ca5b801)
    • Use parallel walkdir (via jwalk) when parallel feature is enabled (f444c85)
    • Merge from main. (b59bd5e)
    • Refactor (e4bcfe6)
    • (cargo-release) version 0.6.0 (9ef184e)
    • Switch to prodash 10 and safe a lot of trait bounds in the process (e2fb1d9)
    • (cargo-release) version 0.5.0 (82b7313)
    • [clone] This actually works: first MVP of retrieving packs via clone (c06d819)
    • [clone] test (and fix) for piped line reading (afe2996)
    • [clone] Send headers with BufReaders (6a95aaa)
    • [clone] pipe allows to send errors as well (69286ec)
    • [clone] BufRead for Reader… (bf1d40f)
    • [clone] a piped iterator (5148c85)
    • [clone] pipe probably shouldn't abort on empty writes (9cfa9b7)
    • Thanks clippy (c4f570f)
    • [clone] more pipe tests (1652a74)
    • [clone] first working pipe implementation (490a9b9)
    • [clone] frame for implementing ‘pipe’ support (c555681)
    • Fix git-features hash tests (35e8809)
    • Bump git-features to 0.4 to allow publishes after breaking changes (9d6b879)
    • [protocol] properly implement remote progress reporting (a81954a)
    • Allow dual-licensing with Apache 2.0 (ea353eb)
    • Add ‘disable-interrupts’ feature flag (ccd9c3e)
    • Refactor (b4a6e16)
    • Bump minor version to 0.3 (4351e28)
    • Thanks clippy (6725104)
    • First step towards parallelizing file hashes and traversal! (9573836)
    • Better usability for units (b226253)
    • Update dependencie (ade06b4)
    • Make obvious that interrupt request was received (34b2373)
    • Remove once_cell dependency as it is really not required anymore (5ac9538)
    • Make interrupt handler work reliably (e71da0f)
    • Conditionally use an eager iterator… (e9b5511)
    • Refactor (d14f0f6)
    • Allow eager iterator to behave properly when used with index writing (66ebc5f)
    • First successful test of moving the streaming iterator into its own thread (c9fcb68)
    • Now it's order preserving (4c8711e)
    • First sketch of order-destroying eager iterator (20fca45)
    • Print read throughput automatically (0a71b48)
    • Make sure interrupt logic works even without an interrupt handler… (66b1644)
    • Add percentage and throughput to tasks that matter (763d7ca)
    • Upgrade to latest iteration of prodash (3a4faec)
    • First part of migration to prodash 8.0, but… (6901a09)
    • Thanks clippy (ed5882d)
    • Write about user interfaces and the use/non-use of async (91ba045)
    • Interrupt support for pretty plumbing (bca7ce2)
    • Support for interruptible operations (a025593)
    • Refactor (413968d)
    • Receive progress information when reading packs in bundle (759091d)
    • Initial batch of progress usage for index creation… (b10e5c6)
    • First stab at streaming pack header encoding (3c6e78b)
    • We can now restore (possibly half-written) packs (b1daa46)
    • See how big a Sha1 hasher really is (26b271d)
    • First sketch of new verify expressed in terms of traversal (4cb570f)
    • (cargo-release) version 0.2.0 (0bb8314)
    • Incorporate dynamic chunking into ‘less-time’ algorithm (295aa2f)
    • Integrate new chunk size code into lookup code (a8422cf)
    • First round of number tuning done (a647b2d)
    • Somehow handle chunk size in absence of known chunk amount (acfccad)
    • Chunk computation seems alright, what about realistic values (973e6bb)
    • Getting there… (a1b5d56)
    • First step towards computing better chunk sizes and thread limits (1cdde7d)
    • Add ‘inc()’ convenience methods to progress (2e46c9b)
    • (more) graceful shutdown of failing parallel tasks (163f50f)
    • Respect thread limit in ‘in_parallel’ (babfd84)
    • Make crates publishable (5688a34)
    • Flume isn't actually needed for that… (c750022)
    • Don't just ignore send errors - we should panic for now (f128117)
    • Proper implementation of line renderer into ‘lean’ CLI (e98e7c2)
    • Upgrade to prodash version 7 (af02b46)
    • Update prodash to verion 6.0 (a4731a3)
    • Add metadata to allow docs.rs build all featueres (10f9386)
    • Switch to prodash 5.0 for windows support (88542e1)
    • Allow to limit the logging depth for less cluttered output (fce7035)
    • Finally speed up logging progress properly - needs input throttling (1a550c6)
    • Avoid calling system time too often in logs, it reduced performance (b17bd76)
    • Revert “ABORT: try-join with static typing works, but…” (b8b979b)
    • Try-join with static typing works, but… (ab6f98b)
    • Remove dependency to git-object from git-features - it better remains free (67c3a6a)
    • #[forbid(unsafe)] for all crates (afda803)
    • Allow for more screen space when formatting (6794300)
    • Refactor (7add82c)
    • Automatically close the TUI when there is no progress anymore. (c416152)
    • Pretty progress in a generalized form (caa883b)
    • Express DoOrDiscard in terms of Either (progress) (cb29a45)
    • Provide ‘either’ type with implementation for Progress (237bb5e)
    • Better trait bounds of in_parallel_if… (6264f2f)
    • First implementation of logging per thread (477dd90)
    • Support for providing progress to threads (2815858)
    • First very basic progress implementation (b820717)
    • Pass progress everywhere, for now just to discard it (da3ae1c)
    • Implement Progress trait for prodash::tree::Item (0eeb6d7)
    • Implement progress trait for logs with throttling (287eca9)
    • Add ‘fast-sha1’ to git-features (b22541f)
    • A new crate to represent features that can toggle from the top-level (23c420c)

0.26.3 (2023-02-14)

New Features

  • re-export prodash in progress module. That way one can access all types even if they are not re-exported.

0.26.2 (2023-02-09)

Documentation

  • fix typos

New Features

  • export prodash::progress::Id in the progress module for convenience.

0.26.1 (2023-01-10)

A maintenance release without user-facing changes.

0.26.0 (2022-12-30)

Chore (BREAKING)

  • upgrade to prodash v23

0.25.1 (2022-12-26)

New Features

  • zlib::inflate::Error can now represent zlib status codes that represent failure.

0.25.0 (2022-12-19)

New Features (BREAKING)

  • add support for explicit non-parallel iteration. That way we can allow the implementation to choose whether they need greatest speed at some cost or not.

    This also allows us to create a new thread-pool on each iteration as those who expect high cost or many files will likely chose to do that instead of single-threaded iteration, which nicely contains the threads needed and avoids keeping them alive as part of some global pool.

0.24.1 (2022-11-27)

New Features

  • name spawned threads That way it‘s a bit more obvious what’s happening when the CPU goes up in flames.
  • upgrade to prodash 21.1 and add Ids to all progress instances. That way callers can identify progress they are interested in, say, for selective visualizations.

0.24.0 (2022-11-21)

A maintenance release without user facing changes.

0.23.1 (2022-11-06)

New Features

  • fs::Snapshot can Clone if T can Clone.

0.23.0 (2022-10-10)

New Features

  • perfect granularity for threads processing with in_parallel_with_slice()
  • add progress::Step|StepShared as types of prodash This may help to use the Progress::counter() method as part of method signatures, being an Option<progress::StepShared>.

Changed (BREAKING)

  • remove fs-jwalk-single-threaded in favor of fs-walkdir-parallel. This way, jwalk and the dependencies (and troubles) it brings have to be opted in, but also allow other users to actually opt out while allowing the parallel feature to be in effect.

    In other words, previously the parallel feature conflated jwalk dependencies into the tree, which isn't the case anymore.

New Features (BREAKING)

  • make jwalk fully optional

0.22.6 (2022-09-16)

Fix docs.rs rendering.

New Features

  • add zlib-ng feature to allow linking against system libz-ng Allow to use zlib-ng (zlib-ng-sys) with native API (no compat mode) that can co-exist with system libz (loaded by e.g. libcurl). This is used in gitoxide package on Alpine Linux.

0.22.5 (2022-09-20)

New Features

  • add zlib-ng feature to allow linking against system libz-ng Allow to use zlib-ng (zlib-ng-sys) with native API (no compat mode) that can co-exist with system libz (loaded by e.g. libcurl). This is used in gitoxide package on Alpine Linux.

0.22.4 (2022-09-04)

A maintenance release without breaking changes.

0.22.3 (2022-08-27)

Fix

  • restrict sha1 asm to supported archs (b383fab)

0.22.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.22.1 (2022-08-15)

New Features

  • add fs-jwalk-single-threaded feature to specifically decouple jwalk from rayon It has been an issue in https://github.com/starship/starship/issues/4251 apparently and rayon interactions can be difficult.
  • fs::Snapshot to on-demand reload shared resources.

0.22.0 (2022-07-22)

New Features

  • initialize Time from now_utc and now_local Localtime support depends on some other factors now, but that will only get better over time.

    We might have to document unsound_local_time at some point.

Changed (BREAKING)

  • remove local-time-support feature toggle. We treat local time as default feature without a lot of fuzz, and will eventually document that definitive support needs a compile time switch in the compiler (--cfg unsound_local_offset or something).

    One day it will perish. Failure is possible anyway and we will write code to deal with it while minimizing the amount of system time fetches when asking for the current local time.

0.21.1 (2022-06-13)

A maintenance release without user-facing changes.

0.21.0 (2022-05-18)

Changed (BREAKING)

  • remove path module in favor of gix-path crate

New Features (BREAKING)

  • mild refactor of paths module to waste less on unix Previously it might have performed find-and-replace on unix paths even though they wouldn't have changed afterwards, yet costing an allocation.

    There is also the realization that it should go into its own crate to have neater import paths and more convenience.

0.20.0 (2022-04-02)

New Features

  • Add gix_config::values::Path for a typesafe git path Add a Path type to the gix_config::values which can be interpolated according to gits own path interpolation rules.
  • add new ‘path’ module for all path-related conversions It's meant to unify all path and byte related handling to help assuring encoding is handled correctly or at least similarly everywhere.
  • in-manifest and in-lib documentation of feature toggles

Bug Fixes

  • Assure std::io::copy() doesn't hang when we cause an interrupt The user can ask for interruptions which previously used the error kind Interrupted. This however has special meaning and usually means to retry.

New Features (BREAKING)

  • interrupt::Iter, rename interrupt::Iter -> interrupt::IterWithError

0.19.1 (2022-01-23)

A maintenance release thanks to upgrade to prodash 18.

Changed (BREAKING)

  • renamed progress::Read::reader -> progress::Read::inner

New Features

  • Add InOrderIter to ‘parallel’ module This iterator makes possible identifies results using a sequence id and returns only consecutive items.

    Use it to collect unordered results produced by threads. It‘s advantage to collecting yourself and sorting is the potential for a smaller memory footprint of in-flight results, one doesn’t have to collect them all for ordering, necessarily.

  • Make a scope-like abstraction available This allows more delicate threading control like is required for the index.

  • decoding of variable int numbers. It's here only so that we can share the code across crates, for now without any feature toggles.

  • Add progress::Write to automatically pass bytes written to a progress instance

Chore

  • update sha-1 dependency to 0.10

0.19.0 (2022-01-19)

Chore

  • update sha-1 dependency to 0.10

New Features

  • Add InOrderIter to ‘parallel’ module This iterator makes possible identifies results using a sequence id and returns only consecutive items.

    Use it to collect unordered results produced by threads. It‘s advantage to collecting yourself and sorting is the potential for a smaller memory footprint of in-flight results, one doesn’t have to collect them all for ordering, necessarily.

  • Make a scope-like abstraction available This allows more delicate threading control like is required for the index.

  • decoding of variable int numbers. It's here only so that we can share the code across crates, for now without any feature toggles.

  • Add progress::Write to automatically pass bytes written to a progress instance

Changed (BREAKING)

  • renamed progress::Read::reader -> progress::Read::inner

0.18.0 (2021-11-29)

New Features

  • add threading primitives with feature toggle If the threading feature is set, the threading module will contain thread-safe primitives for shared ownership and mutation, otherwise these will be their single threaded counterparts.

    This way, single-threaded applications don't have to pay for threaded primitives.

Changed (BREAKING)

  • parallel utilities now use Send + Clone instead of Send + Sync This helps to assure that thread-local computations always work with the kind of types we provide. The ones that are carrying out actions are notably not Sync anymore.

    We cater to that by defining our bounds accordingly, but for those who want to use other utilities that need Sync, using types like Repository and thread_local!() is the only way to make this work.

v0.17.0 (2021-10-19)

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

v0.16.5 (2021-10-15)

This release contains no functional changes.

v0.16.4 (2021-09-07)

v0.16.3 (2021-08-27)

v0.16.2 (2021-08-17)

v0.16.1 (2021-08-10)

v0.16.0 (2021-08-10)

v0.14.0 (2021-05-08)

v0.13.0 (2021-04-30)

v0.12.0 (2021-04-08)

v0.11.0 (2021-01-24)

v0.10.1 (2021-01-24)

v0.10.0 (2020-12-16)

v0.9.0 (2020-12-15)

v0.8.0 (2020-11-26)

v0.7.0 (2020-11-18)

v0.6.0 (2020-09-14)

v0.5.0 (2020-09-12)

v0.4.0 (2020-08-18)

v0.3.0 (2020-08-12)

v0.2.0 (2020-07-23)

v0.1.0 (2020-07-12)

Other

  • try-join with static typing works, but… …seems like a lot of effort. Probably not worth continuing here