gix v0.56.0
New Features
- add
gitoxide.core.externalCommandStderr
to allow enablingstderr
to the enclosing terminal.
Previously, this was enabled by default, now it can additionally be disabled by
the caller. - use
gitoxide.credentials.helperStderr
key to control how stderr is handled with helpers.
That way users can configure each repository instance according to their needs,
with which includes disabling thestderr
of credential helpers. revision::Spec::path_and_mode()
Provide additional information about revspecs for use with
worktree filters.- add key for
diff.external
.
That way it's conceivable that applications correctly run either
a configured external diff tool, or one that is configured on a
per diff-driver basis, while being allowed to fall back to
a built-in implementation as needed. - add the
diff::resource_cache()
low-level utility for rapid in-memory diffing of combinations of resources.
We also add theobject::tree::diff::Platform::for_each_to_obtain_tree_with_cache()
to pass a resource-cache
for re-use between multiple invocation for significant savings. - Add config value gitoxide.http.sslNoVerify
This value can by overriden by GIT_SSL_NO_VERIFY env variable. We use
the value to override http.sslVerify when specifying ssl_verify in
transport Options. - In gix read http.sslVerify config value and pass it to gix-transport.
- add
gitoxide.core.refsNamespace
key and respect theGIT_NAMESPACE
environment variable.
It's also provided as context value. - make
verbose-object-parsing-errors
available ingix
.
That way, it's easy to create programs that are geared towards
debugging repositories and finding invalid objects with detailed
errors. - add the
gitoxide.credentials.terminalPrompt
key to represent the GIT_TERMINAL_PROMPT
That way, it's easy to control the usage of terminals without using and environment. - Add
http-client-curl-rustls
(CLI) andblocking-http-transport-curl-rustls
(lib) features to avoid openssl.
That way, we should be able to avoid crashes on certain CI configurations. - add
Head::try_into_peeled_object()
andHead::peel_to_object_in_place()
This makes it easier to peel to a specific object type, after
all tags have been followed, without having to assume an intermediate
commit.
Bug Fixes
-
assure the correct repository is used for checkouts after clone.
If this is not the case, it's possible for filters to run in the context of
potential parent repositories, which then can have all kinds of issues.In case of
git-lfs
, for instance, it would try to download objects
from the wrong repository. -
Allow multiple packs to be received one after another.
Previously it would be difficult to perform another fetch operation on the
same connection as the final flush packet after a pack wouldn't be consumed.This has now been mitigated by consuming it in the one place where knoweldge
about this specialty exists. -
don't use
trust-dns
by default when using request.
It's reported to have issues under certain condition, please see
seanmonstar/reqwest#437 for more.The
blocking-http-transport-reqwest-rust-tls-trust-dns
feature was added
to provide the same feature-set as before for those who wanttrust-dns
. -
V1 negotiation won't hang anymore
The logic previously tried to estimate when a pack can be expected,
and when a NAK is the end of a block, or the beginning of a pack.This can be known because a pack (with our settings) needs two things:
- the server thinks it's ready
- a
done
sent by the client
New Features (BREAKING)
-
object::blob::diff::Platform
now performs all necessary conversions.
Previously it would just offer the git-ODB version of a blob for diffing,
while it will now make it possible to apply all necessary conversion steps
for you.This also moves
Event::diff()
toChange::diff()
, adds
Repository::diff_resource_cache()
and refactors nearly everything
about theobjects::blob::diff::Platform
. -
generalize rename-tracking engine for later use with status.
Previously the rename tracking engine was integrated with tree-diffs,
but already operates in a stand-alone fashion.
Now it's officially generalized which allows it to be tested separately
and used when tracking renames for diffs between index and tree, index
and index, and index and worktree. -
make it possible to trace incoming and outgoing packetlines.
Due to the way this is (and has to be) setup, unfortunately one
has to integrate that with two crates, instead of just one.This changes touches multiple crates, most of which receive a single
boolean as last argument to indicate whether the tracing should
happen in the first place. -
improve
head()
peeling API
Previously it was partially untested and it was hard to obtain an object of choice.Further breaking changes:
- rename
Head::peeled()
tointo_peeled_id()
- rename
- rename
Head::into_fully_peeled_id()
totry_peel_into_id()
- rename
Head::peel_to_id_in_place()
toHead::try_peel_to_id_in_place()
Bug Fixes (BREAKING)
- rename
GITOXIDE_*
environment variables toGIX_#
- Remove unsafe transmute of should_interrupt
Adds a lifetime to the ExtendedBufRead trait to specify how long the
callback provided must live.
Commit Statistics
- 68 commits contributed to the release over the course of 53 calendar days.
- 54 days passed between releases.
- 23 commits were understood as conventional.
- 6 unique issues were worked on: #1061, #1076, #1090, #1125, #1129, #972
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
- #1061
- V1 negotiation won't hang anymore (6295dec)
- #1076
- Don't use
trust-dns
by default when using request. (8d9296f)
- Don't use
- #1090
- Add the
gitoxide.credentials.terminalPrompt
key to represent the GIT_TERMINAL_PROMPT (e95bb9f)
- Add the
- #1125
- Fix;
SnapshotMut::set_value()
now sets values for keys in subsections as well. (d8452a0)
- Fix;
- #1129
- Assure the correct repository is used for checkouts after clone. (0b3eb14)
- #972
- Allow multiple packs to be received one after another. (3ff1827)
- Uncategorized
- Release gix-worktree-state v0.5.0, gix v0.56.0, gix-fsck v0.1.0, gitoxide-core v0.34.0, gitoxide v0.32.0 (c8568b9)
- Release gix-worktree v0.28.0, gix-diff v0.38.0, gix-discover v0.27.0, gix-macros v0.1.1, gix-mailmap v0.20.1, gix-negotiate v0.10.0, gix-pack v0.45.0, gix-odb v0.55.0, gix-pathspec v0.4.1, gix-packetline v0.17.0, gix-transport v0.39.0, gix-protocol v0.42.0, gix-revision v0.24.0, gix-refspec v0.20.0, gix-status v0.3.0, gix-submodule v0.6.0, gix-worktree-state v0.5.0, gix v0.56.0, gix-fsck v0.1.0, gitoxide-core v0.34.0, gitoxide v0.32.0 (d3fd11e)
- Release gix-date v0.8.1, gix-hash v0.13.2, gix-trace v0.1.4, gix-features v0.36.1, gix-actor v0.28.1, gix-validate v0.8.1, gix-object v0.39.0, gix-path v0.10.1, gix-glob v0.14.1, gix-quote v0.4.8, gix-attributes v0.20.1, gix-command v0.3.0, gix-packetline-blocking v0.17.0, gix-utils v0.1.6, gix-filter v0.7.0, gix-fs v0.8.1, gix-chunk v0.4.5, gix-commitgraph v0.22.1, gix-hashtable v0.4.1, gix-revwalk v0.10.0, gix-traverse v0.35.0, gix-worktree-stream v0.7.0, gix-archive v0.7.0, gix-config-value v0.14.1, gix-tempfile v11.0.1, gix-lock v11.0.1, gix-ref v0.39.0, gix-sec v0.10.1, gix-config v0.32.0, gix-prompt v0.8.0, gix-url v0.25.2, gix-credentials v0.22.0, gix-ignore v0.9.1, gix-bitmap v0.2.8, gix-index v0.27.0, gix-worktree v0.28.0, gix-diff v0.38.0, gix-discover v0.27.0, gix-macros v0.1.1, gix-mailmap v0.20.1, gix-negotiate v0.10.0, gix-pack v0.45.0, gix-odb v0.55.0, gix-pathspec v0.4.1, gix-packetline v0.17.0, gix-transport v0.39.0, gix-protocol v0.42.0, gix-revision v0.24.0, gix-refspec v0.20.0, gix-status v0.3.0, gix-submodule v0.6.0, gix-worktree-state v0.5.0, gix v0.56.0, gix-fsck v0.1.0, gitoxide-core v0.34.0, gitoxide v0.32.0, safety bump 27 crates (55d386a)
- Prepare changelogs prior to release (d3dcbe5)
- Merge branch 'adjustments-for-cargo' (8156340)
- Add
gitoxide.core.externalCommandStderr
to allow enablingstderr
to the enclosing terminal. (2762724) - Use
gitoxide.credentials.helperStderr
key to control how stderr is handled with helpers. (6cf73a4) - Rename
GITOXIDE_*
environment variables toGIX_#
(2189cee) - Merge branch 'gix-status' (5fdc9df)
- Merge branch 'remove-unsafe' (d2ba97c)
- Remove unsafe transmute of should_interrupt (88f8b34)
revision::Spec::path_and_mode()
(77686db)- J fmt (51c7abc)
- Merge branch 'gix-status' (dfb3f18)
- Adapt to changes in
gix-diff
(1706e23) object::blob::diff::Platform
now performs all necessary conversions. (4743212)- Add key for
diff.external
. (6f4bbc3) - Add the
diff::resource_cache()
low-level utility for rapid in-memory diffing of combinations of resources. (4aea9b0) - Merge branch 'support_ssl_verify' (5ce9784)
- Refactor (ead00e9)
- Add config value gitoxide.http.sslNoVerify (dd575cd)
- In gix read http.sslVerify config value and pass it to gix-transport. (c6e83cf)
- Merge pull request #1140 from bittrance/fix-pr1127 (698caaa)
- Connect new gitoxide.credentials subsection into section tree. (8b8704f)
- Adapt to changes in
gix-filter
(1763862) - Merge branch 'improve-filters' (f09ea13)
- Add
gitoxide.core.refsNamespace
key and respect theGIT_NAMESPACE
environment variable. (8434aab) - Merge branch 'check-cfg' (5a0d93e)
- Replace all docsrs config by the document-features feature (bb3224c)
- Merge branch 'sh-on-windows' (2b80d84)
- Remove special handling in favor of allowing shell-avoidance. (a0cc80d)
- Merge branch 'fix-1103' (d75159c)
- Adapt to changes in
gix-credentials
(c712850) - Merge branch 'gix-status' (c87f2cc)
- Generalize rename-tracking engine for later use with status. (089c4dc)
- Merge branch 'error' (c372321)
- Make
verbose-object-parsing-errors
available ingix
. (0ed0a89) - Merge branch 'fix-1096' (ff99a18)
- Adapt to changes in
gix-object
(203d69c) - Merge branch 'caio/main' (7227410)
- Count removed bytes correctly (267b13d)
- Merge branch 'gix-object-find' (c8bd660)
- Thanks clippy (82b01c2)
- Adapt to changes related to usage of
gix-object::Find
trait where necessary (5761a4d) - Adapt to changes in
gix_object
andgix_odb
. (24e319e) - Merge branch 'BloopAI/main' (c197cbf)
- Add feature to allow using rustls without trust-dns (ea8cd0e)
- Merge branch 'size-optimization' (c0e72fb)
- Remove CHANGELOG.md from all packages (b65a80b)
- Merge branch 'fix-v1-negotiation' (eb23338)
- Merge branch 'trace-packetlines' (e7de4c7)
- Make it possible to trace incoming and outgoing packetlines. (c3edef1)
- Merge branch 'discover-split-worktree' (16170d9)
- Improve the error message around incorrect worktree paths (dd57957)
- Allow to open split worktree repositories (20f962e)
- Merge branch 'fuzz' (c5a7e66)
- Add
http-client-curl-rustls
(CLI) andblocking-http-transport-curl-rustls
(lib) features to avoid openssl. (f34f46a) - Make it easier to see what's happening during negotiation with
tracing enabled
(4e48558) - Release gix-url v0.25.1 (47a1241)
- Merge branch 'head-conversions' (c2cf20c)
- Add
Head::try_into_peeled_object()
andHead::peel_to_object_in_place()
(117357e) - Improve
head()
peeling API (4e6a4e6)