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.25.1 (2023-10-14)

Bug Fixes

  • make file:// url parsing with full backslashed path more robust on windows.

Commit Statistics

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

Commit Details

  • #1063
    • Make file:// url parsing with full backslashed path more robust on windows. (562b0c9)
  • Uncategorized
    • Merge branch ‘head-conversions’ (c2cf20c)
    • Fix yet another fuzzed test-case related to url::parse DoS (21729ed)

0.25.0 (2023-10-12)

This release contains a complete rewrite of the internal url parsing logic, the public interface stays mostly the same however. Gitoxide will now be more correct, interpreting more urls the same way Git does. Improvements include the added support for ssh aliases (github:byron/gitoxide has previously been parsed as local path), adjustments around the interpretation of colons in file names (previously we disallowed colons that were not followed up with a slash character) and some smaller changes that bring the interpretation of file urls more in line with Git's implementation. Additionally, the error types have been adjusted to print a more comprehensive message by default, making sure they stay helpful even when bubbled up through multiple abstraction layers.

There are still many (edge) cases in Git's url parsing implementation which are not handled correctly by Gitoxide. If you notice any such deviation please open a new issue to help us making Gitoxide even more correct.

Bug Fixes

  • another fuzz-issue that could cause long parse times of URLs
  • denial of service attack by passing a URL with a very long host. We now check for certain size limits and prevent passing long URLs to the url crate.

New Features

  • enable fuzzing for git url parsing

Commit Statistics

  • 19 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-hash v0.13.1, gix-features v0.36.0, gix-actor v0.28.0, gix-object v0.38.0, gix-glob v0.14.0, gix-attributes v0.20.0, gix-command v0.2.10, gix-filter v0.6.0, gix-fs v0.8.0, gix-commitgraph v0.22.0, gix-revwalk v0.9.0, gix-traverse v0.34.0, gix-worktree-stream v0.6.0, gix-archive v0.6.0, gix-tempfile v11.0.0, gix-lock v11.0.0, gix-ref v0.38.0, gix-config v0.31.0, gix-url v0.25.0, gix-credentials v0.21.0, gix-diff v0.37.0, gix-discover v0.26.0, gix-ignore v0.9.0, gix-index v0.26.0, gix-mailmap v0.20.0, gix-negotiate v0.9.0, gix-pack v0.44.0, gix-odb v0.54.0, gix-pathspec v0.4.0, gix-packetline v0.16.7, gix-transport v0.37.0, gix-protocol v0.41.0, gix-revision v0.23.0, gix-refspec v0.19.0, gix-worktree v0.27.0, gix-status v0.2.0, gix-submodule v0.5.0, gix-worktree-state v0.4.0, gix v0.55.0, safety bump 37 crates (68e5432)
    • Prepare changelogs prior to release (1347a54)
    • Another fuzz-issue that could cause long parse times of URLs (ea0ea88)
    • Add yet another bypass attack that runs into the url DoS issue (6aa63b1)
    • Merge branch ‘improvements’ (3939a45)
    • Assure we don't accidentally parse a valid-looking URL to url and cause long compute times. (7497553)
    • Merge branch ‘gix-url-fixture-improvements’ (3d60c02)
    • Fix panics not shown in gix-url baseline generation (2488ad9)
    • Improve output of the gix-url baseline test (a530037)
    • Denial of service attack by passing a URL with a very long host. (60126d7)
    • Merge branch ‘gix-url-parse-rewrite’ (a12e4a8)
    • Enable fuzzing for git url parsing (4184a5e)
    • Assure we don't loose test coverage; possibly adjust expecations (30bb7dc)
    • Refactor (e318a4c)
    • Refactor baseline tests (4b4ac8a)
    • Add platform specific baseline tests and run always run them. (e9aa690)
    • Update changelogs (4349353)
    • Align test with real behavior (a31af62)
    • Fix absolute windows file urls with extra slash (3bf12a3)

0.24.0 (2023-09-24)

New Features

  • add Url::host_argument_safe() and Url::path_argument_safe() This will not provide values if they could be confused for an argument to to a commaneline application.

Bug Fixes

Commit Statistics

  • 14 commits contributed to the release over the course of 14 calendar days.
  • 16 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.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 ‘fix-exploit’ (c53bbd2)
    • Prevent hosts or paths that look like arguments to be passed to invoked commands. (b06a0dd)
    • Add Url::host_argument_safe() and Url::path_argument_safe() (d80b5f6)
    • Parse absolute paths in file urls on Windows (637e1ae)
    • Parse absolute paths as local urls on Windows (3af8834)
    • Create test urls from raw parts directly (5ac705c)
    • Fix file urls with dos driver letter on unix (99f4447)
    • Fix dropping of host during file url conversion (f3e1331)
    • Use helper function for common url parsing steps (2344f91)
    • Thanks clippy (d077f56)
    • Add missing slash to file url test (ffaead6)
    • Remove wrong ssh alias url test (4da440d)

0.23.0 (2023-09-08)

Bug Fixes (BREAKING)

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

Commit Statistics

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

Commit Details

  • 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)
    • Handle missing host and path separator in file url (f05edae)
    • Use same logic for file urls and local file paths (679a7f4)
    • Return errors for empty paths and relative urls (8af79ec)
    • Merge branch ‘gix-submodule’ (363ee77)

0.22.0 (2023-08-22)

Chore

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

Reverted (BREAKING)

  • url parsing error NotALocalFile The NotALocalFile error variant was previously returned if the input url contained a colon but the slice after that character contained no slash character (/ or \). This behavior is wrong.

    SCP like URLs may not need a slash character to specify the repositories location. Similarly, a local directory that contains a colon in its name is a valid repository path as well.

    The new implementation correctly parses such URLs.

  • url parsing error MissingResourceLocation The MissingResourceLocation error variant was previously returned if the input URL had either scheme ssh (no matter if URL or SCP format) or git and the URL contained no or an empty path section. In the future we will instead return the MissingRepositoryPath error in such a case.

    The only benefit of such a seperation is that it allows the caller to infer the kind of URL we tried to parse. A future commit will add a new field to the MissingRepositoryPath error variant which will clearly communicate this information and can therefore be used instead for this purpose.

Chore (BREAKING)

  • restructure gix-url parsing error variants All error variants now own a copy of the input which is used in their display implementation. I noticed that URL parsing errors are almost never acted upon but only wrapped and bubbled up to the user. It therefore makes sense to ensure the message for this error is informative enough by default.

    If an error can be thrown for different types of URLs it now also includes a kind field. With this field the caller can determine what kind of URL we tried to parse. Additionally, this information is used for the error message too.

    For testing the assert_matches crate was added which implements the unstable feature with the same name in stable rust. It makes testing the invalid variants much more convenient.

    BREAKING because public fields of some error variants are now no longer available

Bug Fixes (BREAKING)

  • let Url::canonicalize(d)() take the current working dir as argument. That way it's free of side-effects and can be used properly from gix::Repository

Commit Statistics

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

Commit Details

  • Uncategorized
    • Release 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 (6c62e74)
    • Make gix-url publishable by adding baseline test (d3746df)
    • 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)
    • Restructure gix-url parsing error variants (313a7b3)
    • Url parsing error NotALocalFile (fb0b8a7)
    • Url parsing error MissingResourceLocation (dd1a125)
    • Rewrite gix-url parsing (14facd9)
    • Merge branch ‘gix-url-fixture-tests’ (1b957c5)
    • For now, ignore baseline tests as most of them fail. (c0be6ab)
    • Don't call crate ‘WIP’ in manifest anymore. (229bd48)
    • Merge branch ‘submodule-active’ (a3afaa4)
    • Add support for “git+ssh” and “ssh+git” urls (3faac36)
    • Let Url::canonicalize(d)() take the current working dir as argument. (8857580)
    • Fix wrong assertion in gix-url baseline test (f18bfd8)
    • Improve error printing for gix-url baseline test (0e9a18e)
    • Fix prints of panics in gix-url baseline test (938baee)
    • Add assert output to failures in gix-url baseline test (163e139)
    • Thanks clippy (fe5dbe1)
    • Use libtest_mimic to run gix-url fixture tests (f128742)
    • Refactor (cbaf339)
    • Fix assertion in gix-url fixture test (ca421b7)
    • Thanks clippy (252dbb6)
    • Add parsing and asserting to gix-url fixture test (23e2982)
    • Fix bash styling in gix-url fixture (c77cd31)
    • Adjust gix-url fixture loop for our test suite (f4214a6)
    • Make gix-url fixture more readable (1ab3b07)
    • Add copy of gits t5500 test in preparation for fixture (d0de915)

0.21.1 (2023-07-22)

A maintenance release without user-facing changes.

Commit Statistics

  • 6 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-tempfile v7.0.2, 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 (107a64e)
    • 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.21.0 (2023-07-19)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release.
  • 19 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.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)

0.20.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-glob v0.9.1, gix-attributes v0.14.1, gix-config-value v0.12.3, gix-ref v0.32.1, gix-sec v0.8.3, gix-config v0.25.1, gix-url v0.20.1, gix-credentials v0.16.1, gix-discover v0.21.1, gix-ignore v0.4.1, gix-pack v0.39.1, gix-odb v0.49.1, gix-worktree v0.21.1, gix v0.48.0 (69c6a36)
    • Prepare changelogs prior to release (c143cf4)
    • Align usage of gix-path across all crates (73c1292)

0.20.0 (2023-06-22)

Chore

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

Commit Statistics

  • 6 commits contributed to the release over the course of 10 calendar days.
  • 15 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.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)
    • Merge branch ‘help-874-redundant-closures’ (fe59956)
    • Add clippy::redundant-closure-for-method-calls lint (bcad5c2)

0.19.0 (2023-06-06)

A maintenance release without user-facing changes.

Commit Statistics

  • 7 commits contributed to the release over the course of 12 calendar days.
  • 40 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.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 ‘auto-clippy’ (dbf8aa1)
    • Autofix map-or-unwrap clippy lint (and manual fix what was left) (2087032)
    • Merge branch ‘main’ into auto-clippy (3ef5c90)
    • Merge branch ‘blinxen/main’ (9375cd7)
    • Include license files in all crates (facaaf6)

0.18.0 (2023-04-27)

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

  • Uncategorized
    • Release gix-path v0.8.0, gix-glob v0.7.0, gix-attributes v0.12.0, gix-config-value v0.12.0, gix-ref v0.29.0, gix-sec v0.8.0, gix-config v0.22.0, gix-prompt v0.5.0, gix-url v0.18.0, gix-credentials v0.14.0, gix-discover v0.18.0, gix-ignore v0.2.0, gix-pack v0.35.0, gix-odb v0.45.0, gix-transport v0.31.0, gix-protocol v0.32.0, gix-refspec v0.10.1, gix-worktree v0.17.0, gix v0.44.1 (7ebc9f7)
    • Prepare changelogs prior to release (0135158)
    • Bump gix-path v0.8.0, safety bump 20 crates (gix set to 0.44.1 manually) (43ebaf2)

0.17.0 (2023-04-26)

New Features (BREAKING)

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

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

Commit Statistics

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

Commit Details

  • #814
    • Rename serde1 cargo feature to serde and use the weak-deps cargo capability. (b83ee36)
  • Uncategorized
    • Release gix-hash v0.11.1, gix-path v0.7.4, gix-glob v0.6.0, gix-attributes v0.11.0, gix-config-value v0.11.0, gix-fs v0.1.1, gix-tempfile v5.0.3, gix-utils v0.1.1, gix-lock v5.0.1, gix-object v0.29.1, gix-ref v0.28.0, gix-sec v0.7.0, gix-config v0.21.0, gix-prompt v0.4.0, gix-url v0.17.0, gix-credentials v0.13.0, gix-diff v0.29.0, gix-discover v0.17.0, gix-hashtable v0.2.0, gix-ignore v0.1.0, gix-bitmap v0.2.3, gix-traverse v0.25.0, gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0, safety bump 7 crates (91134a1)
    • Prepare changelogs prior to release (30a1a71)
    • 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)
    • Merge branch ‘main’ into dev (cdef398)
    • Rename the serde1 feature to serde (19338d9)
    • Merge branch ‘fix-cred-helper’ (01277a6)

0.16.0 (2023-03-10)

New Features (BREAKING)

  • support passwords in urls. It's now possible to use urls like https://user:pass@host/repo without loosing the password portion of the URL.

    We also change the from_parts() method to take all parts needed to describe a URL, which is a breaking change.

Commit Statistics

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

Commit Details

  • Uncategorized
    • Release gix-tempfile v5.0.0, gix-lock v5.0.0, gix-ref v0.27.0, gix-config v0.19.0, gix-url v0.16.0, gix-credentials v0.12.0, gix-discover v0.16.0, gix-index v0.15.0, gix-pack v0.33.0, gix-odb v0.43.0, gix-transport v0.28.0, gix-protocol v0.29.0, gix-worktree v0.15.0, gix v0.41.0, safety bump 12 crates (29a0870)
    • Prepare changelogs prior to release (e06f5f5)
    • Merge branch ‘password-in-urls’ (85f8b28)
    • Support passwords in urls. (c6897d9)

0.15.0 (2023-03-04)

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

  • Uncategorized
    • Release gix-attributes v0.10.0, gix-ref v0.26.0, gix-config v0.18.0, gix-url v0.15.0, gix-credentials v0.11.0, gix-discover v0.15.0, gix-index v0.14.0, gix-mailmap v0.11.0, gix-odb v0.42.0, gix-transport v0.27.0, gix-protocol v0.28.0, gix-revision v0.12.0, gix-refspec v0.9.0, gix-worktree v0.14.0, gix v0.39.0 (93e75fe)
    • Prepare changelogs prior to release (895e482)
    • 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)

0.14.0 (2023-03-01)

Bug Fixes

  • improve error message spelling

Commit Statistics

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

Commit Details

  • Uncategorized
    • Release gix-tempfile v4.1.0, gix-lock v4.0.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, safety bump 6 crates (ea9fd1d)
    • 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)
    • Improve error message spelling (6d51849)

0.13.3 (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.13.2 (2023-02-17)

Bug Fixes (BREAKING)

  • make Scheme work with serde, removing Copy in the process. e#450) This wasn't supposed to happen but a requirement to get serde support back.

  • Prohibit invalid state by making parts the url's data private This fix is meant to improve serialization support which can now happen to_bstring() without possibility for error.

    Empty paths can still be set which won't be valid for all URLs.

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.

  • generalize extension schemes. Previously this was hard-coded to radicle, now it's just an extension scheme along with a statically known string. This means we have to explicitly support new formats which should be fine.

Changed (BREAKING)

  • upgrade bstr to 1.0.1
  • Introduce parse(&BStr) (previously it took &[u8]) A &BStr better indicates that we are expecting human-readable input with ascii-compatible or UTF-8 endcoding.
  • Use &BStr as input instead of [u8] This signals that it‘s indeed intended to be human readable while allowing it to be a path as well without loss, at least theoretically. After all we currently don’t have a way to parse invalid UTF-8.
  • remove impl std::fmt::Display for Url as it's not lossless.
  • From<&[u8]> is now From<&BStr> This better represents the meaning of the input, and simplifies interactions with git-config.

Other

  • try for leaner tests, but it does the opposite kind of :D

New Features

  • collect ssh-specific options to control how the ssh program is invoked. These are passed through when creating the ssh transport.

  • add Url::canonicalized() and Url::canonicalize(). These methods allow to assure file urls are absolute, useful when cloning from any url.

  • Url::try_from(path: &std::path::Path) for more convenient instantiation.

  • (mostly) lossless roundtripping of scp-like urls. Previously git@host:path would turn into ssh://git@host/path, which now remains exactly as is.

  • lossless serialization of file urls. Previously a url like /path/to/repo would serialize to file:///path/to/repo, preventing round-trips.

    Now it serializes like it was parsed. This also means that file://path still serializes as file://path.

  • Url::port_or_default() to fill in default numbers for ports if possible.

  • Url::path_is_root() to determine if the path is /. This could also be considered an empty path depending on the context which is what makes it useful.

  • Scheme::try_from(&str)

  • TryFrom<&OsStr> to allow direct usage of Url in clap. In clap_derive, this needs parse(try_from_os_str = std::convert::TryFrom::try_from).

  • TryFrom<PathBuf> which is useful if urls are obtained from the command-line.

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

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

  • more conversions for TryFrom: String and &str

  • Url::write_to(out) to write itself more flexibly.

  • Add Url::to_bstring() for lossless but fallible bstring conversion.

Chore

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

Documentation

  • fix typos

Bug Fixes

  • correctly parse scp-like ssh urls with alias as such. Previously it would falsely consider it a file path, leading to the inability to use the URL at all.

    Now the initial scheme detection has been improved to not rely on the ‘.’ in host names exclusively anymore.

  • properly set default SSH port to 22

  • scp-like URLs should preserve relative and home-relative paths

  • reject empty paths where needed, add Url::from_parts_as_alternative_form(). The new constructor allows to create URLs that represent paths which otherwise couldn't be valid URLs.

  • make sure that file:.. isn't considered a valid file url.

  • handle file:///C:/foo/bar urls correctly on windows, as paths now are C:\\foo\bar. These paths are created when using the url::Url::from_file_path() family of methods, which adds an extra slash at the beginning of a windows path which makes it invalid there unless there is further processing.

    This is now applied by using url features, making this case work specifically. Note that all other attributes are still the same and git-url generally tries to keep paths in tact to be a hybrid of type that can handle any file system paths as well as actual urls.

Commit Statistics

Thanks Clippy

Clippy helped 8 times to make code idiomatic.

Commit Details

  • #198
    • Adjust all changelogs to fulfil requirements for publishing (04b9ca0)
    • Deduplicate conventional message ids (e695eda)
    • Regenerate all changelogs to get links (0c81769)
    • Mention actual issues that where worked on (a517e39)
    • Respect release-wide ignore list to allow removing entire conventional headlines (145103d)
    • Only write headlines that we can parse back… (d44369a)
    • Rebuild all changelogs to assure properly ordered headlines (4a9a05f)
    • Sort all commits by time, descending… (f536bad)
    • Greatly reduce changelog size now that the traversal fix is applied (a0bc98c)
    • Fixup remaining changelogs… (2f75db2)
  • #301
    • Update changelogs prior to release (84cb256)
    • Adapt to changes in git-path (cc2d810)
    • Use git-path crate instead of git_features::path (47e607d)
  • #329
    • Document all features related to serde1 (72b97f2)
  • #331
    • Adapt to changes in git_features::path to deal with Result (bba4c68)
  • #333
    • Use git_features::path everywhere where there is a path conversion (2e1437c)
  • #364
    • Update changelogs prior to release (746a676)
  • #450
    • Add Url::canonicalized() and Url::canonicalize(). (01f2574)
    • Upgrade bstr to 1.0.1 (99905ba)
    • Refactor (02e5775)
    • Url::port_or_default() to fill in default numbers for ports if possible. (7484db5)
    • Url::path_is_root() to determine if the path is /. (fbe75c9)
    • Make note about why we don't support passwords in URLs (970ec9b)
    • Url-preprocessing for scripts (c00cc35)
    • Scheme::try_from(&str) (d40f6e1)
    • Generalize extension schemes. (96a265c)
    • TryFrom<&OsStr> to allow direct usage of Url in clap. (7a17690)
    • TryFrom<PathBuf> which is useful if urls are obtained from the command-line. (b7a5f7a)
    • A first sketch on how connections could be working (e55b43e)
    • Use &BStr as input instead of [u8] (f6506e0)
    • Prohibit invalid state by making parts the url's data private (2bcfdee)
    • Remove invalid test as it looks like it parses hosts from paths and that is fine (224c605)
    • Switch to thiserror (cfd7c0a)
    • Prepare for better error handling around ssh urls (6d8d9b8)
    • More conversions for TryFrom: String and &str (a67fc26)
    • Remove impl std::fmt::Display for Url as it's not lossless. (79ab4ae)
    • Url::write_to(out) to write itself more flexibly. (833899d)
    • Add Url::to_bstring() for lossless but fallible bstring conversion. (5f707c7)
  • #470
    • Update changelogs prior to release (caa7a1b)
  • #524
    • Prepare changelogs prior to release (6446b39)
    • Introduce parse(&BStr) (previously it took &[u8]) (653ebc5)
  • #691
  • #725
    • Correctly parse scp-like ssh urls with alias as such. (372cea1)
  • #XXX
    • Prepare changelogs prior to release (8c0bca3)
  • Uncategorized
    • Release 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 (41d57b9)
    • Release gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (e313112)
    • Release gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (6efd0d3)
    • Release gix-date v0.4.2, gix-hash v0.10.2, gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (6ccc88a)
    • Merge branch ‘rename-crates’ into inform-about-gix-rename (c9275b9)
    • Rename git-testtools to gix-testtools (b65c33d)
    • 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-worktree to gix-worktree (108bb1a)
    • Adjust to renaming of git-url to gix-url (b50817a)
    • Rename git-url to gix-url (e95d72e)
    • 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)
    • Adjust to renaming of git-glob to gix-glob (35b2a3a)
    • Adjust to renaming of git-sec to gix-sec (eabbb92)
    • Adapt to renaming of git-path to gix-path (d3bbcfc)
    • Adjust to rename of git-config-value to gix-config-value (622b3e1)
    • Release git-features v0.26.4 (109f434)
    • Release git-features v0.26.3 (1ecfb7f)
    • Release git-date v0.4.2, git-hash v0.10.2, git-features v0.26.2, git-actor v0.17.1, git-glob v0.5.3, git-path v0.7.1, git-quote v0.4.1, git-attributes v0.8.2, git-config-value v0.10.1, git-tempfile v3.0.2, git-lock v3.0.2, git-validate v0.7.2, git-object v0.26.1, git-ref v0.24.0, git-sec v0.6.2, git-config v0.16.0, git-command v0.2.3, git-prompt v0.3.2, git-url v0.13.2, git-credentials v0.9.1, git-diff v0.26.1, git-discover v0.13.0, git-hashtable v0.1.1, git-bitmap v0.2.1, git-traverse v0.22.1, git-index v0.12.3, git-mailmap v0.9.2, git-chunk v0.4.1, git-pack v0.30.2, git-odb v0.40.2, git-packetline v0.14.2, git-transport v0.25.4, git-protocol v0.26.3, git-revision v0.10.2, git-refspec v0.7.2, git-worktree v0.12.2, git-repository v0.34.0, safety bump 3 crates (c196d20)
    • Prepare changelogs prior to release (7c846d2)
    • Merge branch ‘Lioness100/main’ (1e544e8)
    • Fix typos (39ed9ed)
    • Thanks clippy (bac57dd)
    • 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)
    • Collect ssh-specific options to control how the ssh program is invoked. (61d89f5)
    • 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 ‘fix/ssh-clone’ (3678a6a)
    • Properly set default SSH port to 22 (1058330)
    • Release git-url v0.12.1, git-transport v0.24.1, git-protocol v0.25.1, git-repository v0.30.1, git-commitgraph v0.12.0, gitoxide-core v0.22.0, gitoxide v0.20.0 (08ec3a9)
    • Prepare changelogs prior to release (68ce15d)
    • Merge branch ‘fix/relative-scplike-urls’ (b688592)
    • Don't sanitize SCP-like paths (d21f9eb)
    • Refactor (c70bf74)
    • 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)
    • Scp-like URLs should preserve relative and home-relative paths (f20f272)
    • Merge branch ‘adjustments-for-cargo’ (70ccbb2)
    • Merge branch ‘main’ into adjustments-for-cargo (bb60d3d)
    • Reject empty paths where needed, add Url::from_parts_as_alternative_form(). (302a2d8)
    • Make sure that file:.. isn't considered a valid file url. (3e3aff9)
    • Merge branch ‘paulyoung/scheme-ext’ (3e27550)
    • Realign test expectations (93e6d71)
    • Improve documentation (db7577f)
    • Cargo fmt (3b61a47)
    • Allow parsing arbitrary URL schemes (4753e64)
    • Handle file:///C:/foo/bar urls correctly on windows, as paths now are C:\\foo\bar. (d6f90be)
    • 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 ‘main’ into http-config (bcd9654)
    • Release git-hash v0.10.0, git-features v0.24.0, git-date v0.3.0, git-actor v0.14.0, git-glob v0.5.0, git-path v0.6.0, git-quote v0.4.0, git-attributes v0.6.0, git-config-value v0.9.0, git-tempfile v3.0.0, git-lock v3.0.0, git-validate v0.7.0, git-object v0.23.0, git-ref v0.20.0, git-sec v0.5.0, git-config v0.12.0, git-command v0.2.0, git-prompt v0.2.0, git-url v0.11.0, git-credentials v0.7.0, git-diff v0.23.0, git-discover v0.9.0, git-bitmap v0.2.0, git-traverse v0.19.0, git-index v0.9.0, git-mailmap v0.6.0, git-chunk v0.4.0, git-pack v0.27.0, git-odb v0.37.0, git-packetline v0.14.0, git-transport v0.23.0, git-protocol v0.24.0, git-revision v0.7.0, git-refspec v0.4.0, git-worktree v0.9.0, git-repository v0.29.0, git-commitgraph v0.11.0, gitoxide-core v0.21.0, gitoxide v0.19.0, safety bump 28 crates (b2c301e)
    • Prepare changelogs prior to release (e4648f8)
    • Merge branch ‘version2021’ (0e4462d)
    • Upgrade edition to 2021 in most crates. (3d8fa8f)
    • 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)
    • Make a clearer note of the obvious deviation due to lack of storing passwords (d91bbcc)
    • Release git-hash v0.9.11, git-features v0.23.0, git-actor v0.13.0, git-attributes v0.5.0, git-object v0.22.0, git-ref v0.17.0, git-sec v0.4.1, git-config v0.9.0, git-url v0.10.0, git-credentials v0.6.0, git-diff v0.20.0, git-discover v0.6.0, git-traverse v0.18.0, git-index v0.6.0, git-mailmap v0.5.0, git-pack v0.24.0, git-odb v0.34.0, git-packetline v0.13.1, git-transport v0.21.0, git-protocol v0.21.0, git-revision v0.6.0, git-refspec v0.3.0, git-worktree v0.6.0, git-repository v0.25.0, safety bump 24 crates (104d922)
    • Prepare changelogs for release (d232567)
    • Merge branch ‘clone’ (507dc7e)
    • Url::try_from(path: &std::path::Path) for more convenient instantiation. (22d3b37)
    • More assurance we understand how relative paths in scp-like urls work (5926322)
    • (mostly) lossless roundtripping of scp-like urls. (39ce98b)
    • Lossless serialization of file urls. (58a6000)
    • Merge branch ‘fix-git-features’ (82fd251)
    • Merge branch ‘diff’ (25a7726)
    • Release 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 (f5c36d8)
    • Release git-hash v0.9.10, git-features v0.22.5, git-date v0.2.0, git-actor v0.12.0, git-glob v0.4.0, git-path v0.5.0, git-quote v0.3.0, git-attributes v0.4.0, git-config-value v0.8.0, git-tempfile v2.0.5, git-validate v0.6.0, git-object v0.21.0, git-ref v0.16.0, git-sec v0.4.0, git-config v0.8.0, git-discover v0.5.0, git-traverse v0.17.0, git-index v0.5.0, git-worktree v0.5.0, git-testtools v0.9.0, git-command v0.1.0, git-prompt v0.1.0, git-url v0.9.0, git-credentials v0.5.0, git-diff v0.19.0, git-mailmap v0.4.0, git-chunk v0.3.2, git-pack v0.23.0, git-odb v0.33.0, git-packetline v0.13.0, git-transport v0.20.0, git-protocol v0.20.0, git-revision v0.5.0, git-refspec v0.2.0, git-repository v0.24.0, git-commitgraph v0.9.0, gitoxide-core v0.18.0, gitoxide v0.16.0, safety bump 28 crates (29a043b)
    • Merge branch ‘filter-refs’ (fd14489)
    • Release git-features v0.22.6 (c9eda72)
    • Make fmt (535e967)
    • Merge branch ‘filter-refs-by-spec’ (5c05198)
    • Merge branch ‘main’ into filter-refs-by-spec (9aa1d3d)
    • Release git-features v0.22.4, git-url v0.8.0, safety bump 4 crates (1d4600a)
    • Merge branch ‘main’ into index-from-tree (bc64b96)
    • Release git-path v0.4.2, git-config-value v0.7.0 (c48fb31)
    • Merge branch ‘main’ into filter-refs-by-spec (cef0b51)
    • Release git-object v0.20.3, git-ref v0.15.4, git-config v0.7.1, git-diff v0.18.0, git-traverse v0.16.3, git-pack v0.22.0, git-odb v0.32.0, git-url v0.7.3, git-transport v0.19.3, git-protocol v0.19.1, git-refspec v0.1.1, git-repository v0.23.0, safety bump 6 crates (85a3bed)
    • Release git-features v0.22.3, git-revision v0.4.4 (c2660e2)
    • 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)
    • Thanks clippy (dc74fbd)
    • Make Scheme work with serde, removing Copy in the process. e#450) (2da6c86)
    • Release git-path v0.4.1 (5e82346)
    • Merge branch ‘remote-ls-refs’ (39d585d)
    • Merge branch ‘main’ into remote-ls-refs (e2ee3de)
    • Merge branch ‘docsrs-show-features’ (31c2351)
    • Use docsrs feature in code to show what is feature-gated automatically on docs.rs (b1c40b0)
    • Uniformize deny attributes (f7f136d)
    • Pass --cfg docsrs when compiling for https://docs.rs (5176771)
    • Remove default link to cargo doc everywhere (533e887)
    • Merge branch ‘main’ into remote-ls-refs (bd5f3e8)
    • Release git-date v0.0.3, git-actor v0.11.1, git-attributes v0.3.1, git-tempfile v2.0.3, git-object v0.20.1, git-ref v0.15.1, git-config v0.6.1, git-diff v0.17.1, git-discover v0.4.0, git-bitmap v0.1.1, git-index v0.4.1, git-mailmap v0.3.1, git-traverse v0.16.1, git-pack v0.21.1, git-odb v0.31.1, git-packetline v0.12.6, git-url v0.7.1, git-transport v0.19.1, git-protocol v0.18.1, git-revision v0.4.0, git-worktree v0.4.1, git-repository v0.21.0, safety bump 5 crates (c96473d)
    • Prepare changelogs prior to reelase (c06ae1c)
    • Release git-hash v0.9.7, git-features v0.22.1 (232784a)
    • Merge pull request #2 from SidneyDouw/main (ce885ad)
    • Merge branch ‘Byron:main’ into main (9b9ea02)
    • Merge branch ‘main’ into rev-parse-delegate (6da8250)
    • Merge branch ‘main’ into pathspec (7b61506)
    • Release git-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 (aa639d8)
    • Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
    • Prepare changelog prior to release (3c50625)
    • Merge pull request #1 from Byron/main (085e76b)
    • Assure document-features are available in all ‘usable’ and ‘early’ crates (238581c)
    • From<&[u8]> is now From<&BStr> (ffc4a85)
    • Merge branch ‘main’ into pathspec (89ea12b)
    • Merge branch ‘main’ into cont_include_if (41ea8ba)
    • Release git-path v0.3.0, safety bump 14 crates (400c9be)
    • 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)
    • Merge branch ‘main’ into SidneyDouw-pathspec (a22b1d8)
    • Merge branch ‘main’ into git_includeif (598c853)
    • Release 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 (349c590)
    • 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)
    • Release git-diff v0.14.0, git-bitmap v0.1.0, git-index v0.2.0, git-tempfile v2.0.1, git-lock v2.0.0, git-mailmap v0.1.0, git-traverse v0.13.0, git-pack v0.17.0, git-quote v0.2.0, git-odb v0.27.0, git-packetline v0.12.4, git-url v0.4.0, git-transport v0.16.0, git-protocol v0.15.0, git-ref v0.12.0, git-worktree v0.1.0, git-repository v0.15.0, cargo-smart-release v0.9.0, safety bump 5 crates (e58dc30)
    • Release git-hash v0.9.3, git-features v0.20.0, git-config v0.2.0, safety bump 12 crates (f0cbb24)
    • Merge branch ‘svetli-n-path_value’ (e8383ca)
    • Merge branch ‘unify-path-encoding’ (566ff8a)
    • Release git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (42ebb53)
    • Release git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (1b76119)
    • Release git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (8f57c29)
    • Release git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (d78aab7)
    • Release git-hash v0.9.1, git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0, safety bump 4 crates (373cbc8)
    • Prepare changelogs for release (674ec73)
    • Prepar changelogs for cargo-smart-release release (8900d69)
    • Merge branch ‘sync-db-draft’ (7d2e20c)
    • Thanks clippy (4ca9e07)
    • 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)
    • Update changelogs just for fun (21541b3)
    • Release git-url v0.3.3 (fdd5bdb)
    • Apply nightly rustfmt rules. (5e0edba)
    • (cargo-release) version 0.3.2 (03de99e)
    • (cargo-release) version 0.3.1 (4deef67)
    • Fix compile warnings (42fd77b)
    • (cargo-release) version 0.3.0 (d5c6643)
    • Thanks clippy (e13adb2)
    • [gitoxide-core] Use git-config for remote url parsing (c45feed)
    • (cargo-release) version 0.2.0 (0c39373)
    • Support for radicle urls (2c5b955)
    • (cargo-release) version 0.1.1 (e94fefa)
    • Finish git-url docs (4099508)
    • Begin of documenting git-url crate (c891901)
    • Remove dash in all repository links (98c1360)
    • Merge from main. (b59bd5e)
    • Finish removal of rust 2018 idioms (0d1699e)
    • Refactor (e07fbd6)
    • [clone] encode message for git credentials helper (143549e)
    • [clone] make URL available in transport layer (6778447)
    • [clone] Finish round-trip testing (df617fd)
    • Refactor (aea52fe)
    • [clone] first sketch of roundtripping URLs (23678f8)
    • [clone] first steps towards launching git-upload-pack while… (41f05f1)
    • [clone] Better error handling for generalized connect(…) (713808c)
    • [clone] expand-path should be server-side (8a38856)
    • Thanks clippy (0506fd9)
    • [url] more specific ‘missing user home’ error (ec5721a)
    • Refactor (e54681a)
    • [url] Actually the is_relative() case should never be triggered (ac89d38)
    • [url] try again, maybe this works on windows… (f14fdd1)
    • [url] Once more with feeling (2ea4a8c)
    • [url] all debug output there is… (3df5b41)
    • [url] yikes, more debugging for windows on CI (9a430e7)
    • [url] Another try to make this work on windows - tests probably (a51647f)
    • [url] See if this fixes the windows tests (534c6a6)
    • [url] add standard conversions (27e3bdc)
    • Refactor (73e2b1b)
    • [url] BString in public interface (745662d)
    • [url] Commit to ‘bstr’ (3d26ae1)
    • [url] remove feature toggle, ‘home’ dependency is small enough (a5a6f0f)
    • [url] Add user expansion support (behind feature toggle) (a684cfe)
    • [url] first stab at expanding paths with user names (37459dc)
    • Thanks clippy (50acab7)
    • [url] Support for git and http urls, as well as user expansion parsing (5ef201d)
    • Refactor (6ab7cc6)
    • [url] first stab at implementing username expansion reasonably (86d17a3)
    • [url] fix serde (569014d)
    • [url] Now with support for non-utf8 byte strings (81f01fd)
    • [url] more tests and additional limitations (3c2811f)
    • [url] handle trivial file protocol URLs better (18eb512)
    • [url] Disable URL parsing for things that look like paths (03b0de9)
    • [url] turns out that relative URLs and windows paths are killing it (0bee58e)
    • [url] Switch to ‘url’ crate, as correctness certainly is more important than compile times (da6ad48)
    • Thanks clippy (a37c7a3)
    • [url] user and IPv4 parsing/simple validation (d1929ac)
    • [url] parse port number (bc8bd99)
    • Try for leaner tests, but it does the opposite kind of :D (098f802)
    • Refactor (4499a08)
    • Refactor (42a1b51)
    • [url] the first green tests (a501bc1)
    • Refactor (9c5fb91)
    • [url] infrastructure for nom errors, taken from git-object (0ae38ed)
    • [url] basic frame and first failing test (60aacf0)
    • Allow dual-licensing with Apache 2.0 (ea353eb)
    • Add git-url crate (fd2e5ba)

0.13.1 (2023-01-10)

A maintenance release without user-facing changes.

0.13.0 (2022-12-30)

New Features

  • collect ssh-specific options to control how the ssh program is invoked. These are passed through when creating the ssh transport.

0.12.2 (2022-12-26)

Bug Fixes

  • properly set default SSH port to 22

0.12.1 (2022-12-22)

A maintenance release without user-facing changes.

0.12.0 (2022-12-19)

Bug Fixes

  • reject empty paths where needed, add Url::from_parts_as_alternative_form(). The new constructor allows to create URLs that represent paths which otherwise couldn't be valid URLs.

  • make sure that file:.. isn't considered a valid file url.

  • handle file:///C:/foo/bar urls correctly on windows, as paths now are C:\\foo\bar. These paths are created when using the url::Url::from_file_path() family of methods, which adds an extra slash at the beginning of a windows path which makes it invalid there unless there is further processing.

    This is now applied by using url features, making this case work specifically. Note that all other attributes are still the same and gix-url generally tries to keep paths in tact to be a hybrid of type that can handle any file system paths as well as actual urls.

  • scp-like URLs should preserve relative and home-relative paths

0.11.0 (2022-11-21)

New Features (BREAKING)

  • upgrade edition to 2021 in most crates. MSRV for this is 1.56, and we are now at 1.60 so should be compatible. This isn‘t more than a patch release as it should break nobody who is adhering to the MSRV, but let’s be careful and mark it breaking.

    Note that gix-features and gix-pack are still on edition 2018 as they make use of a workaround to support (safe) mutable access to non-overlapping entries in a slice which doesn't work anymore in edition 2021.

0.10.1 (2022-11-06)

New Features

  • add Url::canonicalized() and Url::canonicalize(). These methods allow to assure file urls are absolute, useful when cloning from any url.

0.10.0 (2022-10-10)

New Features

  • Url::try_from(path: &std::path::Path) for more convenient instantiation.

  • (mostly) lossless roundtripping of scp-like urls. Previously git@host:path would turn into ssh://git@host/path, which now remains exactly as is.

  • lossless serialization of file urls. Previously a url like /path/to/repo would serialize to file:///path/to/repo, preventing round-trips.

    Now it serializes like it was parsed. This also means that file://path still serializes as file://path.

0.9.0 (2022-09-20)

Changed (BREAKING)

  • upgrade bstr to 1.0.1

0.8.0 (2022-09-04)

A major release to properly introduce the signature change that happened in 0.7.2, which effectively broke compilation for users of parse() in 0.7.1.

New Features

  • Url::port_or_default() to fill in default numbers for ports if possible.
  • Url::path_is_root() to determine if the path is /. This could also be considered an empty path depending on the context which is what makes it useful.

Changed (BREAKING)

  • Introduce parse(&BStr) (previously it took &[u8]) A &BStr better indicates that we are expecting human-readable input with ascii-compatible or UTF-8 endcoding.

0.7.3 (2022-08-28)

Maintenance release without user-facing changes.

0.7.2 (2022-08-24)

Chore

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

Bug Fixes (BREAKING)

  • make Scheme work with serde, removing Copy in the process. e#450) This wasn't supposed to happen but a requirement to get serde support back.

New Features (BREAKING)

  • generalize extension schemes. Previously this was hard-coded to radicle, now it's just an extension scheme along with a statically known string. This means we have to explicitly support new formats which should be fine.

New Features

  • TryFrom<&OsStr> to allow direct usage of Url in clap. In clap_derive, this needs parse(try_from_os_str = std::convert::TryFrom::try_from).
  • TryFrom<PathBuf> which is useful if urls are obtained from the command-line.
  • use docsrs feature in code to show what is feature-gated automatically on docs.rs
  • pass --cfg docsrs when compiling for https://docs.rs
  • Scheme::try_from(&str)

0.7.1 (2022-08-17)

A maintenance release without user facing changes.

Bug Fixes (BREAKING)

  • Prohibit invalid state by making parts the url's data private This fix is meant to improve serialization support which can now happen to_bstring() without possibility for error.

    Empty paths can still be set which won't be valid for all URLs.

Changed (BREAKING)

  • Use &BStr as input instead of [u8] This signals that it‘s indeed intended to be human readable while allowing it to be a path as well without loss, at least theoretically. After all we currently don’t have a way to parse invalid UTF-8.
  • remove impl std::fmt::Display for Url as it's not lossless.

New Features

  • more conversions for TryFrom: String and &str
  • Url::write_to(out) to write itself more flexibly.
  • Add Url::to_bstring() for lossless but fallible bstring conversion.

0.7.0 (2022-07-22)

Changed (BREAKING)

  • From<&[u8]> is now From<&BStr> This better represents the meaning of the input, and simplifies interactions with gix-config.

0.6.0 (2022-06-13)

A maintenance release without user-facing changes.

0.5.0 (2022-05-18)

A maintenance release without user-facing changes.

0.4.0 (2022-04-03)

A maintenance release without surfacing changes.

0.3.5 (2022-01-23)

A maintenance release with no relevant changes.

v0.3.4 (2021-10-15)

This release contains no functional change, but a more useful changelog.

v0.3.3 (2021-08-17)

v0.3.2 (2021-08-10)

v0.3.0 (2021-03-26)

v0.2.0 (2021-01-14)

v0.1.1 (2020-12-18)

v0.1.0 (2020-09-12)

Other

  • try for leaner tests, but it does the opposite kind of :D

v0.0.0 (2020-08-13)