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

Bug Fixes

  • hanging Read implementation of pipeline::convert::ToGitOutcome. This codepath was never tested and its function more subtle than one could have known. Also fix incorrect configuration handling which could lead to binary files with text=auto to be identified as text, which would then require conversion.

Bug Fixes (BREAKING)

  • don‘t provide path to object-retrieval callback of Pipeline::convert::to_git::IndexObjectFn(). It implies that one has to be ready to fetch any kind of path from the index, even though it’s always the path to the file that is currently converted.

    Also fix a bug that could cause it to return input as unchanged even though it was read into a buffer already.

Commit Statistics

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

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

  • Uncategorized
    • Prepare changelogs prior to release (1347a54)
    • Fix docs (995bc84)
    • Thanks clippy (345712d)
    • Merge branch ‘reset’ (b842691)
    • Hanging Read implementation of pipeline::convert::ToGitOutcome. (b5b50f8)
    • Don't provide path to object-retrieval callback of Pipeline::convert::to_git::IndexObjectFn(). (260c781)

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

  • 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.4.0 (2023-09-08)

Bug Fixes

  • Use Vec::resize() instead of set_len() Otherwise it's possible for uninitialized memory to be used as if it was initialized, which can lead to strange behaviour.

    As the buffer is re-used, it's not actually zeroing that much memory either.

Bug Fixes (BREAKING)

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

Commit Statistics

  • 9 commits contributed to the release over the course of 17 calendar days.
  • 17 days passed between releases.
  • 2 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 ‘optimizations’ (6135a5e)
    • Adapt to changes in gix-worktree (d7fc182)
    • Merge branch dynification (f658fcc)
    • Use dyn trait where possible. (072ee32)
    • Merge branch ‘perf-and-safety’ (9ad9c5b)
    • Use Vec::resize() instead of set_len() (96a07e0)
    • Merge branch ‘gix-submodule’ (363ee77)

0.3.0 (2023-08-22)

Chore

  • don't call crate ‘WIP’ in manifest anymore.

Commit Statistics

  • 8 commits contributed to the release over the course of 18 calendar days.
  • 30 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.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)
    • Merge branch ‘worktree-organization’ (8d0d8e0)
    • Adapt to changes in gix-worktree (e5717e1)
    • Don't call crate ‘WIP’ in manifest anymore. (229bd48)
    • 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)
    • Merge branch ‘dev-on-linux’ (6b4a303)
    • Fix various tests to run properly on linux (ef8ccd9)

0.2.0 (2023-07-22)

A maintenance release without user-facing changes.

Commit Statistics

  • 5 commits contributed to the release over the course of 1 calendar day.
  • 3 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.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)
    • Update license field following SPDX 2.1 license expression standard (9064ea3)

0.1.0 (2023-07-19)

New Features (BREAKING)

  • make it possible to use filter pipeline with streaming for checkouts. This is done by providing a gix_filter::Pipeline to checkout::Options to control how filters are applied.

  • a complete, streaming compatible, git filter pipeline. It's configuring itself based on each input path and supports streaming.

    Some name changes where also performed while at it.

Bug Fixes (BREAKING)

  • improve conversion API of Pipeline::convert_to_git(index_object) to be more consistent and practical. index_object now receives the path to the entry as first argument, notably in a data-type that is fitting for the purpose. Additionally, implement Clone for Pipeline. We also make sure that the input stream is turned into a buffer in case there is no driver, previously filtering had nothing to work with if there was no driver.

Commit Statistics

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

Commit Details

  • Uncategorized
    • Release 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 (4aca8c2)
    • Fix gix-filter dev-dependencies (a7f9441)
    • 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)
    • Just fmt (a063c62)
    • Merge branch ‘integrate-filtering’ (b19a56d)
    • Make it possible to use filter pipeline with streaming for checkouts. (29a64c2)
    • Improve conversion API of Pipeline::convert_to_git(index_object) to be more consistent and practical. (35415db)
    • A complete, streaming compatible, git filter pipeline. (94df6e0)

0.0.0 (2023-07-01)

An empty crate without any content to reserve the name for the gitoxide project.

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.

New Features

  • API support for receiving delayed entries
  • Ability to steer long running filter processes.
  • ability to run define and run simple filters. Simple filters run in real-time and are piped their content to stdin while we read it from stdout.
  • worktree::encode_to_worktree() to turn UTf-8 into the worktree encoding.
  • worktree::encode_to_git() to turn worktree encoding to UTF-8.
  • add eol::convert_to_worktree(). It's the inverse of eol::convert_to_git() to re-add CRLF where there were LF only.
  • Add eol::convert_to_git(). This function supports all the logic that git executes to determine if a converion should actually be done.
  • eol::Stats::from_bytes() to obtain stats about a buffer. It can help to determine if it is binary and if line conversions should be performed at all.
  • add ident::apply() to substitute $Id$ with $Id: <hex>$
  • ident::undo() to replace $Id: XXX$ with $Id$

Chore

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

Commit Statistics

  • 41 commits contributed to the release over the course of 438 calendar days.
  • 13 commits were understood as conventional.
  • 2 unique issues were worked on: #301, #691

Commit Details

  • #301
    • Add git-filter crate for name generation (5a3c628)
  • #691
  • Uncategorized
    • Release gix-filter v0.0.0 (c3ee57b)
    • Use latest version of gix-path to allow gix-filter release. (bb9f308)
    • Release gix-packetline-blocking v0.16.3, gix-filter v0.0.0 (fb3ad29)
    • Merge branch ‘filter-programs’ (97f8e96)
    • API support for receiving delayed entries (198ce27)
    • Handle process error codes similarly to how git does it (d00e6c5)
    • Make it possible to not run a process at all and test graceful shutdowns (cb74130)
    • Ability to steer long running filter processes. (5670bbb)
    • Ability to run define and run simple filters. (c538c6e)
    • 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)
    • Merge branch ‘worktree-encoding’ (5af2cf3)
    • worktree::encode_to_worktree() to turn UTf-8 into the worktree encoding. (d1fed3e)
    • worktree::encode_to_git() to turn worktree encoding to UTF-8. (1b8f2b7)
    • Refactor (7ae7ebd)
    • Merge branch ‘basic-filtering’ (3fd5e16)
    • Add eol::convert_to_worktree(). (1517cbc)
    • Add eol::convert_to_git(). (e45fec9)
    • eol::Stats::from_bytes() to obtain stats about a buffer. (b79ffeb)
    • Refactor (9bb9c48)
    • Add ident::apply() to substitute $Id$ with $Id: <hex>$ (306c8ea)
    • ident::undo() to replace $Id: XXX$ with $Id$ (496445c)
    • Merge branch ‘corpus’ (aa16c8c)
    • Change MSRV to 1.65 (4f635fc)
    • Merge branch ‘main’ into auto-clippy (3ef5c90)
    • Merge branch ‘blinxen/main’ (9375cd7)
    • Include license files in all crates (facaaf6)
    • Merge branch ‘rename-crates’ into inform-about-gix-rename (c9275b9)
    • Rename git-filter to gix-filter (0875ae6)
    • Rename git-filter to gix-filter (4aa193f)
    • Merge branch ‘main’ into http-config (bcd9654)
    • Merge branch ‘version2021’ (0e4462d)
    • Upgrade edition to 2021 in most crates. (3d8fa8f)
    • Merge branch ‘main’ into index-from-tree (bc64b96)
    • Merge branch ‘main’ into remote-ls-refs (e2ee3de)
    • Merge branch ‘docsrs-show-features’ (31c2351)
    • Uniformize deny attributes (f7f136d)
    • Remove default link to cargo doc everywhere (533e887)
    • Merge branch ‘main’ into msrv-for-windows (7cb1972)
    • Release git-filter v0.0.0 (2465381)