Changed
- represent
GIT_(COMMITTER|AUTHOR)_(NAME|EMAIL|DATE)
with git configuration.
That way it becomes more obvious where values are coming from.
New Features
-
expose
git-features
crate at root underfeatures
.
That way application developers can use more of the utilities
that power most of thegitoxide
plumbing crates. -
Remote
knows about itstagOpt
configuration.
That way it's clear if it should or shouldn't fetch included/reachable
tags automatically.The default setting for this is to include tags, similar to
git
.The
fetch_tags()
accessor allows to query this information, and the
with_fetch_tags()
builder method allows to set the value comfortably
right after creating theRemote
instance.The
tagOpt
key will also be written as part of the remote's git
configuration.Clone operations can set the
Tags
setting when configuring the
remote in a callback.This also comes with a fix to assure that ref-updates aren't skipped
just because there was no pack to receive. That way, locally missing
refs or tags will automatically be put back. -
network related Error type support
is_spurious()
method.
That way the caller can determine more easily if it makes sense
to try again. -
Make
prodash::tree
avaialble asprogress::tree
. -
read worktree specific configuration to override the one from the shared repository.
This is intensively used when space checkouts are created, along with
Cone mode. Thus it's the basis for properly interpreting sparse checkout
options which are set on a per-worktree basis. -
add
permissions::Environment::http_transport
.
That way it's possible to deny using environment variables that affect
the HTTP transport, like setting the proxy. -
open::Options::modify()
as general pattern to allow builder methods usage in&mut self
.
That way it's easier to configure both thefull
and thepartial
trust instances
of discovery options. -
Add
Repository::commit_as(committer, author, …)
convenience method.
That way it's, very much beyond convenience, possible to set the time
of a commit.Many thanks to @epage for the suggestion.
-
upgrade to
prodash 21.1
and addIds
to all progress instances.
That way callers can identify progress they are interested in, say, for
selective visualizations.
Bug Fixes
-
provide a clearer error message when trying to open a git repository that isn't one.
-
http transports can now reuse a connection.
This makes connections more efficient generally andcargo
relies
on that behaviour in their tests as well. -
allow to open a
Repository
from if 'config' file is missing.
In this case, treat it similar to having an empty repository configuration
file and assume defaults everywhere. -
improve error verbosity when fetching and cloning
-
tree::diff::Platform::for_each_to_obtain_tree()
now properly surfaces user provided errors.
Previously it would squelch them unintentionally.First discovered via Byron/crates-index-diff-rs#35.
-
when fetching from file://, don't upset windows by trying
d:/foo
, used:\\foo
instead. -
config::CommitAutoRollback
now implementsDerefMut
.
Changed (BREAKING)
-
default features are set to
max-performance-safe
to assure compatibility.
Previously themax-performance
setting might have caused issues during compilation
or issues at runtime if libraries likegit2
are used in the same binary, and the
new default feature settings maximizes compatbility so this won't happen.For best performance, however, one will have to activate the
max-performance
feature on top of that. -
environment variable permissions are per topic.
NowPermissions
for environment variables are so that they
are by topic instead of by prefix, by default. That way
it's easier to allow or deny particular sets of related
environment variables.The catch-all permissions by prefix are still present for all
other variables that aren't contained in one particular topic. -
open::ReplacementObjects
is removed in favor of two custom git-configuration flags.
Now it's possible to map the environment variablesGIT_REPLACE_REF_BASE
andGIT_NO_REPLACE_OBJECTS
to custom git configuration keys which can also be set, namelygitoxide.odb.replaceObjectsRefBase
andgitoxide.odb.noReplaceObjects
.Along with the possibility of disabling the usage of
GIT_
prefixed environment variables one
reaches the previous level of control without making object replacement a special case.
New Features (BREAKING)
-
interrupts::init_handler()
can now be undone.
This can be done by callingderegister()
orauto_deregister()
on the return value
ofinterrupts::init_handler(…)
.That way it's possible to temporarily do interrupt handling only while some methods
that rquire it are running. -
represent object cache configuration like
GITOXIDE_PACK_CACHE_MEMORY
in git-configuration.
That way there is a unified system for how to set values, which may be overridable by configuration
variables or not.With this changes, the explicit application of environment variables for setting the cache
isn't required anymore as everything happens using git-configuration, and automatically,
while providing full control like before. -
remove
SnapshotMut::apply_cli_overrides()
in favor ofopen::Options::cli_overrides()
. -
more type-safety for remote names by making clear they can be named after URLs.
Other (BREAKING)
-
Remote::with_refspec()
toRemote::with_refspecs()
to allow adding more than one refspec as part of the builder.
Commit Statistics
- 74 commits contributed to the release over the course of 27 calendar days.
- 27 days passed between releases.
- 25 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Thanks Clippy
Clippy helped 2 times to make code idiomatic.
Commit Details
view details
- Uncategorized
- prepare chnagelogs prior to git-repository release (7114bbb)
- Merge branch 'read-header' (3d01252)
- expose
git-features
crate at root underfeatures
. (1683a84) - adjust to changes in
git-odb
(50ea7fb) - Merge branch 'patch-1' (fbce7bb)
- Use specific Iter constructors in stats example (0a72c18)
- Merge branch 'adjustments-for-cargo' (083909b)
- thanks clippy (f1160fb)
- adapt to changes in
git-features::fs
. (35f7d59) Remote
knows about itstagOpt
configuration. (90ef6fc)- adjust to changes in
git-testtools
(4eb842c) - Merge branch 'adjustments-for-cargo' (94750e1)
- improve docs related to authentication when fetching (5979503)
- provide a clearer error message when trying to open a git repository that isn't one. (d659bda)
- http transports can now reuse a connection. (ff0332e)
- allow to open a
Repository
from if 'config' file is missing. (9079b9d) - Merge branch 'adjustments-for-cargo' (70ccbb2)
- upgrade clru, remove it from git-repository dependencies (unused) (7e7547d)
- Merge branch 'main' into adjustments-for-cargo (bb60d3d)
- adapt to changes in git-repository (89230f4)
- improve error verbosity when fetching and cloning (40f7379)
- network related Error type support
is_spurious()
method. (28e4808) - Merge branch 'paulyoung/scheme-ext' (3e27550)
- realign test expectations (93e6d71)
tree::diff::Platform::for_each_to_obtain_tree()
now properly surfaces user provided errors. (b77fc86)- when fetching from file://, don't upset windows by trying
d:/foo
, used:\\foo
instead. (5386eed) Remote::with_refspec()
toRemote::with_refspecs()
to allow adding more than one refspec as part of the builder. (fceee74)- default features are set to
max-performance-safe
to assure compatibility. (3c84ceb) interrupts::init_handler()
can now be undone. (f8a2bfb)- Make
prodash::tree
avaialble asprogress::tree
. (457c2e0) - read worktree specific configuration to override the one from the shared repository. (d1b7ec6)
- refactor (2d83222)
- move tests::repository::config::worktree to
tests::repository::open::worktree
(62afb7b) - improve documentation about the configuration we always load (75488a7)
- Assure that worktree configuration is marked as such with
Source::Worktree
. (a191948) - test to check if worktree overrides shared configs (b69f219)
- remove
canonicalize
calls from test… (bea689a) - fix type - prevent creating a fixture archive (33992ab)
- exclude fixture archive from being uploaded… (5c2b44c)
- refactor… (ae812bd)
- refactor… (394aab9)
- remove worktree permission configuration option… (7ebf229)
- load worktree config if necessary (760e736)
- add test for worktree configs (23d8474)
- Release git-hash v0.10.1, git-hashtable v0.1.0 (7717170)
- Merge branch 'remove-lines-parsing' (9d8e32d)
- environment variable permissions are per topic. (5fe6aa3)
- make fmt (747008d)
- switch from
atty
tois-terminal
(7304bc1) - Merge branch 'main' into http-config (6b9632e)
- represent object cache configuration like
GITOXIDE_PACK_CACHE_MEMORY
in git-configuration. (becbd8d) - represent
GIT_(COMMITTER|AUTHOR)_(NAME|EMAIL|DATE)
with git configuration. (a4ac9cf) open::ReplacementObjects
is removed in favor of two custom git-configuration flags. (49f39d6)- apply related environment variables as config overrides (9441c26)
- add
permissions::Environment::http_transport
. (fc64693) - refactor (603f341)
open::Options::modify()
as general pattern to allow builder methods usage in&mut self
. (0ce29a9)- remove
SnapshotMut::apply_cli_overrides()
in favor ofopen::Options::cli_overrides()
. (f16e361) - Merge branch 'optimize_hashtables' (95ad56c)
- use newly added git-hashtable (50cb436)
- Merge branch 'path-normalize' (805329a)
- switch to custom Hasher implementation (269d59e)
- Release git-features v0.24.1, git-actor v0.14.1, git-index v0.9.1 (7893502)
- more faithfully parse http.followRedirect (b84ae6a)
- adjust for changes in
git-path
(cf25e35) - thanks clippy (10f4f21)
- Allow remote overrides for http options (340dcad)
- more type-safety for remote names by making clear they can be named after URLs. (84d594c)
- Add
Repository::commit_as(committer, author, …)
convenience method. (8482f90) - upgrade to
prodash 21.1
and addIds
to all progress instances. (c8835c6) - Merge branch 'http-config' (a4ff140)
config::CommitAutoRollback
now implementsDerefMut
. (363ac7a)- Merge branch 'main' into http-config (bcd9654)
- make fmt (0abab7d)