New Features
-
diff algorithm is controlled by git configuration
diff.algorithm
-
Query of
core.logAllRefUpdates
is now fallible.
This is the same behaviour as shown bygit
, which requires valid
values or aborts. -
automatically handle
.keep
files after writing a pack bundle to disk.
The logic implemented here tries to do the right thing, that is when
we have reason to believe that the objects in the pack are linked up
with a ref, we delete the keep file automatically.However, if there was no local ref edit as the ref specs didn't contain
local destinations, or if the pack was empty, then keep the .keep file
and leave it to the caller to handle. -
Use
core.askpass
when building the credential helper.
Previously it would only consider the environment variable, which can
still override the provided git-configuration at core.askpass . -
remote::fetch::Prepare::handshake_outcome()
to obtain server information right after listing refs. -
open::Options::config_overrides()
for early configuration; support forinit.defaultBranch
.
Bug Fixes
-
don't allow non-bare repositories to be initialized into non-empty directories.
-
init_bare()
now creates the destination directory if it doesn't exist. -
build correct path for
$HOME/.config/…
files.
The special per-userignore
andattributes
files can also be
defaulted if some environment variables are set and may be accessed.Previously the default for
$HOME
was incorrect, as it was missing the
intermediate.config/
directory. This is now present to build paths
exactly like git. -
ref-map filtering now uses correct prefixes.
Previously specs could get filtered out server-side as a matching prefix
was entirely missing.
Changed (BREAKING)
-
Repository::branch_remote_name()
returnsreference::remote::Name
.
That way it's made clear the remote can also be a URL, while rejecting
illformed UTF8. The latter isn't valid for remote names anyway as these
only support a very limited character set.Note that this error currently is degenerated, making it appear if the
remote name doesn't exists if illformed UTF-8 is found in what appears
to be a symbolic ref. -
be specific about the kind of
diff::Error
, moving it todiff::for_each::Error
.
New Features (BREAKING)
Tree::lookup_entry*()
returns attachedEntry
type.
That way chaining gets even easier.
Bug Fixes (BREAKING)
create::into(…)
takescreate::Kind
to determine if it's bare or not.
First of all,bare
is not an option anymore, but a parameter as
it can't be defaulted.
Other public signatures change as well to accomodate for it.
Other (BREAKING)
-
DiffPlatform::text()
to*::lines()
.
This is more specific as one could also do character changes in a single
line, and it adapts the signature to the newimra-diff
powered
mechanism, for a 2x speed boost.
Commit Statistics
- 113 commits contributed to the release over the course of 27 calendar days.
- 27 days passed between releases.
- 15 commits were understood as conventional.
- 1 unique issue was worked on: #450
Thanks Clippy
Clippy helped 12 times to make code idiomatic.
Commit Details
view details
- #450
- make last test work to allow us to clone properly (3890f1a)
- initail implementation of writing branch tracking information (e2a5714)
- adapt to changes in
git-protocol
(d61eb2c) - Don't deviate by creating strange reflogs (with null-source & null-destination) (f1b5570)
- Support unborn remotes and pick up their default branch name. (619fd61)
- adapt to changes in
git-protocol
(179ccd7) - prepare test for handling the 'unborn' lsrefs extension (547e450)
- fix: support for proper identification of '.' remote paths in
reference::remote::Name
(b219033) Repository::branch_remote_name()
returnsreference::remote::Name
. (449ff06)- failing test for us setting up remote information after cloning (07efbce)
- update docs (c788b51)
- refactor (7bd5263)
- definitely write all non-symbolic refs into packed-refs (b62d5b4)
- auto-pack references when creating them during clone (a9a621e)
- refactor (728f688)
- use
tempfile
viagit-testools
(2c9edff) - failing test to show we don't pack refs yet (58cc01a)
- sort out last test-case to assure setting symbolic refs is safe (d06900d)
- adjust to changes in
git-ref
(669249a) - assure that inital refs are placed into the correct spot (3e4c0cb)
- and show that we don't manage to write the reflog for some reason (a70a6aa)
- the first successful test showing that we can write symbolic refs (2330305)
- figure out more details on how to handle symbolic refs just enough (86a18bd)
- finally figure out how symbolic ref updates should work (376829a)
- first step towards supporting writing of symbolic refs locally (61cd430)
- failing test to check for presence of remote HEAD (2f649e9)
- thanks clippy (767fb7b)
- Use correct diff algorithm when diffing text (6fe93c2)
- refactor (71c6a20)
- be specific about the kind of
diff::Error
, moving it todiff::for_each::Error
. (71f15fc) - initial support for obtaining the
diff.algorithm
lazily (f362ab2) - refactor (af0c28d)
- proper reflog entries for all other updated refs during cloning (ff4412e)
- show that HEAD's referent also has the correct reflog (c25cb00)
- the first test to prove that HEAD reflogs are correct (1e7fd4e)
- canonicalize URL right away for it to manifest in the changelog (3cfe13d)
- Query of
core.logAllRefUpdates
is now fallible. (072f5bc) - Fully reload in-memory configuration after configuration changes… (bc5b4e7)
- allow to re-read the logallrefupdates config after overrides (ff06de4)
- re-apply overrides more correctly after clone, however… (372e9d4)
- validate that the remote HEAD branch overrides local init.defaultBranch settings (1c3dd3a)
- assure stored file urls are absolute (5d7a055)
- make it possible to clone empty remote repositories (e97eeda)
- refactor (d29bb62)
- test for cloning empty repositories (0aa97fe)
- checkout returns index checkout result (2ef8d53)
- avoid showing thread progress during clone-pack-resolution (056f4dd)
create::into(…)
takescreate::Kind
to determine if it's bare or not. (2bece79)- less noisy way of writing trait bounds (b593806)
- upgrade to
prodash
v21 (a0655dc) - don't allow non-bare repositories to be initialized into non-empty directories. (f869b22)
- assure the reflog settings aren't permanently overidden during init/fetch (bc5e3e4)
- Make it possible to ignore specs that don't match when iterating mappings. (bc991ff)
init_bare()
now creates the destination directory if it doesn't exist. (91baefa)- first rough sketch of
gix clone
(23a5e8b) - the first working checkout as per simple simple test (9ce28ac)
- finally perform actual checkout, but test fails without clear reason (3821b4f)
- prepare attribute-group setup as far as possible. (f5e2eeb)
- build correct path for
$HOME/.config/…
files. (5c11b84) - sketch access to the attributes file, realize that there is an issue to be fixed first (0081e2f)
- refactor (28de9df)
- read core.checkstat to configure the checkout as well (05a666c)
- refactor (2f1c9dc)
- don't be lenient towards paths that can't be interpolated in case of excludes file (3df7788)
- collect all filesystem attributes affecting checkout (91b360f)
- prepare to move checkout_options into
config
(e731757) - Use
core.askpass
when building the credential helper. (8b9fbd4) - obtain worker count from configuration; prep for more options (d947d8b)
- write index from root tree and get ready for checkout (485a252)
- prepare checkout, but needs to be able to create an index from a tree (e462bd5)
- also update the HEAD reference after a fetch (e561021)
- ref-map filtering now uses correct prefixes. (275e80f)
- prepare for handling the server object-format correctly. (54c91eb)
- a sketch to check and update the object format upon cloning. (ebfd7d6)
- refactor (36c5ca9)
remote::fetch::Prepare::handshake_outcome()
to obtain server information right after listing refs. (a9d1449)- refactor (992522a)
open::Options::config_overrides()
for early configuration; support forinit.defaultBranch
. (0b5c53e)
- Uncategorized
- prepare changelogs prior to release (423af90)
- Merge branch 'main' into write-sparse-index (upgrade to Rust 1.65) (5406630)
- fix tests on windows (f2a8a45)
- thanks clippy (04cfa63)
- Merge branch 'main' into write-sparse-index (c4e6849)
- make fmt (ea2136b)
- Merge branch 'gix-clone' (def53b3)
- thanks clippy (3495c56)
- fix build and docs (971fe0c)
- diff algorithm is controlled by git configuration
diff.algorithm
(b1edb9e) - Merge branch 'main' into gix-clone (fa27570)
- Merge branch 'imra-diff' (f53f942)
- fix docs (7d5fb3c)
- thanks clippy (24254a4)
DiffPlatform::text()
to*::lines()
. (c6f92c1)- thanks clippy (d2f56df)
- Merge branch 'main' into gix-clone (3b48317)
- thanks clippy (93e7691)
- automatically handle
.keep
files after writing a pack bundle to disk. (2eaf69e) - thanks clippy (6f8356c)
- thanks clippy (700cc2d)
- thanks clippy (73b6ec0)
- thanks clippy (f22bdc0)
- Merge branch 'main' into gix-clone (de4fe06)
- thanks clippy (6ac6580)
- thanks clippy (c6e7663)
- Mark the upcoming usage of init.defaultBranch. (6225f35)
- realize that we don't know hot to set HEAD correctly just yet (11d636c)
- Merge branch 'fix-gix-index-from-tree' (da5f63c)
- adjust to changes in
git-index
(fa6bcde) - fix docs (34b3e03)
- sketch of method to checkout the main worktree (a88d5a3)
- finish sketch of
fetch_and_checkout()
(e39a9d5) - sketch checkout API and refactor (9145a32)
Tree::lookup_entry*()
returns attachedEntry
type. (7413a28)