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.
- add first 'debug' version of
gix log
It's primarily meant to better understandgix blame
. - add
--tree-favor
togix merge tree|commit
. With it one can decide which side to favor in case of irreconcilable tree-conflicts.
-
gix merge file
now usesTHEIRS
instead ofOURS
where needed
- 7 commits contributed to the release over the course of 27 calendar days.
- 28 days passed between releases.
- 3 commits were understood as conventional.
- 1 unique issue was worked on: #1703
view details
- #1703
gix merge file
now usesTHEIRS
instead ofOURS
where needed (0727b56
)
- Uncategorized
- Merge pull request #1643 from cruessler/add-gix-log (
29cb775
) - Add first 'debug' version of
gix log
(c7e04e9
) - Merge pull request #1705 from GitoxideLabs/merge (
520c832
) - Adapt to changes in
gix-diff
(960773e
) - Add
--tree-favor
togix merge tree|commit
. (471e046
) - Merge pull request #1704 from GitoxideLabs/fix-1703 (
e8ce25f
)
- Merge pull request #1643 from cruessler/add-gix-log (
- add
gix merge commit --debug
This yields additional debugging information with details about detected conflicts. - add
gix merge commits
- add
gix merge tree
to merge trees similarly togit merge-tree
.
- 9 commits contributed to the release over the course of 21 calendar days.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge pull request #1661 from GitoxideLabs/merge (
0b7abfb
) - Add
gix merge commit --debug
(0a5993f
) - Merge pull request #1658 from GitoxideLabs/merge (
905e5b4
) - Add
gix merge commits
(4a5afc7
) - Merge pull request #1651 from GitoxideLabs/merge (
a876533
) - Adapt to changes in
gix
(8d590f3
) - Merge pull request #1618 from GitoxideLabs/merge (
3fb989b
) - Add
gix merge tree
to merge trees similarly togit merge-tree
. (84707c2
) - Support for merge related options in config tree (
80e006b
)
- Merge pull request #1661 from GitoxideLabs/merge (
-
support for listing worktrees with
gix worktree list
-
add first 'debug' version of
gix diff tree
. It's primarily meant to better understandgix blame
. -
add new
gix cat
command. It only prints things without fuzz.Inspired by https://youtu.be/JYH5ILv5g1g?si=bHLBPFJiZyRUTl6u&t=211.
-
add
gix merge-file
with similar features asgit merge-file
-
gix merge-base
for the CLI For now it only supports the standard merge-base, but more derivatives can be added easily on demand.
- Adjust
gix clean
warning and help for worktree fix - Clarify -r/--repositories and --skip-hidden-repositories
This adds information to the help text for the
git clean
options-r
/--repositories
and--skip-hidden-repositories
to make it clearer what their relationship is, avoid creating the false impression that repositories are never deleted in the absence of-r
/--repositories
, and note that--skip-hidden-repositories
is sometimes needed to preserve not only separate repositories but the (probably rarer) case of hidden nested worktrees of the current repository.
- switch from
time
tojiff
This swaps outtime
forjiff
. It doesn't completely removetime
from the dependency tree. The last remaining use oftime
is inprodash
, outside of the gitoxide project.
-
Unify style in config support info This builds on b31d6b7 (#1531) by adjusting the capitalization and quoting style of string arguments in
progress.rs
that help document the status of what configuration options are and are not planned.-
Since I believe these strings are not usually rendered as Markdown, and most places that code formatting in Markdown would be used were already written with single quotes, this applies that quoting style consistently.
-
This applies initial capitalization, which was sometimes but not always done. It does not apply a consistent style for when a string will end in a
.
, which seems already to differ deliberately for reasons of clarity. That can be adjusted later. -
A small amount of minor rewording for clarity is also included.
-
- 28 commits contributed to the release over the course of 89 calendar days.
- 91 days passed between releases.
- 9 commits were understood as conventional.
- 1 unique issue was worked on: #1572
view details
- #1572
- Make clear what
gix commit-graph
is (49bca2a
)
- Make clear what
- Uncategorized
- Merge pull request #1639 from cruessler/respect-env-variables (
48aa74b
) - Respect env variables when running gix (
0bebe52
) - Merge pull request #1626 from cruessler/add-gix-diff (
f186c23
) - Some minor modifications (
6777ecb
) - Add first 'debug' version of
gix diff tree
. (0c554e0
) - Merge pull request #1616 from Byron/git-cat (
31bdd2e
) - Add new
gix cat
command. (9c8bc03
) - Merge pull request #1611 from Byron/merge (
5ffccd2
) - Add
gix merge-file
with similar features asgit merge-file
(3da2da9
) - Add all keys for merge-configuration (
e0b09d2
) - Merge pull request #1566 from Byron/merge (
d69c617
) - Merge pull request #1557 from Byron/merge-base (
649f588
) gix merge-base
for the CLI (7249291
)- Allow empty-docs (
beba720
) - Merge pull request #1546 from nyurik/semilocons (
f992fb7
) - Add missing semicolons (
ec69c88
) - Merge pull request #1537 from EliahKagan/progress-style (
472fe5f
) - Unify style in config support info (
786bfec
) - Merge pull request #1531 from EliahKagan/progress-typos (
25a3f1b
) - Fix typos in config support info (
b31d6b7
) - Merge branch 'ag/jiff' (
5871fb1
) - Switch from
time
tojiff
(28ac657
) - Merge pull request #1471 from EliahKagan/hidden (
a9aac4f
) - Adjust
gix clean
warning and help for worktree fix (6eb4ea6
) - Clarify -r/--repositories and --skip-hidden-repositories (
c241422
) - Merge branch 'fix-clean' (
33eacfb
) - Support for listing worktrees with
gix worktree list
(c7213bc
)
- Merge pull request #1639 from cruessler/respect-env-variables (
- add
mailmap check
similar togit check-mailmap
. That way it becomes a little easier to maybe try out other special cases in the wild. -
gix clone
with--ref
support.--ref
is similar to--branch
, but was renamed as it also supports tags for example.
-
Make it easier to compile gitoxide as dynlib And also optimize compilation time: By making
plumbing
andporcelain
as modules thelib.rs
, they can be compiled after the rmeta for the dependencies are generated.For the
uni.rs
which uses bothplumbing
andporcelain
, this would avoid compiling these two modules twice.
- 13 commits contributed to the release.
- 62 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Clippy helped 1 time to make code idiomatic.
view details
- Uncategorized
- Merge branch 'fix-mailmap' (
f107014
) - Add descriptive docs for
mailmap check
(3e08fa3
) - Add
mailmap check
similar togit check-mailmap
. (2a56387
) - Merge branch 'main' into config-key-take-2 (
9fa1054
) - Merge branch 'feat/checkout-other-refs' (
ecfde07
) gix clone
with--ref
support. (9bf01e4
)- Merge branch 'status' (
2f9f0ac
) - Thanks clippy (
acc1331
) - Merge pull request #1384 from NobodyXu/feat/easier-to-compile-gix-as-dynlib (
bb30e52
) - Fix clippy warning (
bf5a111
) - Fix compilation error in
src/plumbing/main.rs
(4596a39
) - Fix compilation errors (
0b5dc74
) - Make it easier to compile gitoxide as dynlib (
202f3e4
)
- Merge branch 'fix-mailmap' (
-
checkout respects options for
core.protectHFS
andcore.protectNTFS
. This also addsgitoxide.core.protectWindows
as a way to enforce additional restrictions that are usually only available on Windows.Note that
core.protectNFS
is always enabled by default, just like it is in Git.
-
more robustness in the face of a trampling-herd of threads loading a single index. The motivating example is here: praetorian-inc/noseyparker#179
Previously, it was possible for a trampling herd of threads to consolidate the disk state. Most of them would be 'needs-init' threads which could notice that the initialization already happened, and just use that.
But a thread might be late for the party and somehow manages to not get any newly loaded index, and thus tries to consolidate with what's on disk again. Then it would again determine no change, and return nothing, causing the caller to abort and not find objects it should find because it wouldn't see the index that it should have seen.
The reason the thread got into this mess is that the 'is-load-ongoing' flagging was racy itself, so it would not wait for ongoing loads and just conclude nothing happened. An extra delay (by yielding) now assures it either seees the loading state and waits for it, sees the newly loaded indices.
Note that this issue can be reproduced with:
'./target/release/gix -r repo-with-one-pack -t10 --trace odb stats --extra-header-lookup'
- 6 commits contributed to the release over the course of 10 calendar days.
- 38 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'various-fixes' (
d6cd449
) - Merge pull request from GHSA-7w47-3wg8-547c (
79dce79
) - Checkout respects options for
core.protectHFS
andcore.protectNTFS
. (886d6b5
) - Mark safety-related core-flags as planned (
f3d5a69
) - Merge branch 'status' (
04ef31e
) - More robustness in the face of a trampling-herd of threads loading a single index. (
addf446
)
- Merge branch 'various-fixes' (
-
add
gix status --ignored
support -
add
gix status --index-worktree-renames
This enables rename-tracking between worktree and index, something that Git also doesn't do or doesn't do by default. It is, however, available ingit2
. -
gix status
with submodule and rewrite support. Submodule changes are now picked up as long as the submodule is in the index. Further, it's possible to enable rename-tracking between index and worktree separately. -
add
gix is-clean|is-changed
It's a good way to compare the time it takes to run a full status compared to a quick is-dirty check. -
gix submodules list --dirty-suffix
for dirty-information This is a submodule-centric and greatly simplified way of obtaining describe information with dirty-suffix.Note that
status
information is also possible, but it seems hard to display nicely, which this command isn't great at in the first place. -
add
gix commit describe --dirty-suffix
That way a suffix will be added depending on the dirty-state of the repository.
- 11 commits contributed to the release.
- 6 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge pull request #1341 from szepeviktor/typos (
55f379b
) - Fix typos (
f72ecce
) - Merge branch 'status' (
3e5c974
) - Add
gix status --format
to communicate the current format is very simple. (23bea36
) - Add
gix status --ignored
support (84c74ff
) - Add
gix status --index-worktree-renames
(66e87cd
) - Fix lints for nightly, and clippy (
f8ce3d0
) gix status
with submodule and rewrite support. (61c002b
)- Add
gix is-clean|is-changed
(98b3680
) gix submodules list --dirty-suffix
for dirty-information (afd20ca
)- Add
gix commit describe --dirty-suffix
(58231b4
)
- Merge pull request #1341 from szepeviktor/typos (
- add
gix clean --patterns-for-entries|-m
to help with wildcards. - basic
gix clean
- 20 commits contributed to the release.
- 58 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'status' (
d53504a
) - Allow the
-n
argument as no-op to make them more compatible. (8959b21
) - Add
gix clean --patterns-for-entries|-m
to help with wildcards. (9863d75
) - Merge branch 'tabled' (
ed79aa7
) - Refactor (
e25d7eb
) - Merge branch 'ein-completions' (
cebeedf
) - Fix clippy lints (
454e6b9
) - Add back line wrapping simplify Usage Variants (
4ac597a
) - Tell clap that ein is named ein (
4fd6ab8
) - Copy over code from gix to generate completions for ein as well (
abe0043
) - Fix indenting by removing formatting on the config str (
c0c4d59
) - Reserve 50 characters for the config name (
cc8d008
) - Bring back old implementation from https://github.com/Byron/gitoxide/commit/65e64964c7cd151e53e5a7d4b9ba8fabda1c0e16 this also removes terminal_size, although its not large (
1ecc96d
) - Remove tabled (
fcd585b
) - Merge branch 'dirwalk' (
face359
) - Basic
gix clean
(e8597f3
) - Merge branch 'chunks_exact' (
d4d478b
) - Use chunks_exact where possible (
2482023
) - Merge pull request #1248 from joshtriplett/tyop (
39f35da
) - Typo fixes (
3ef3bc2
)
- Merge branch 'status' (
- Add
rev parse --reference
. It's similar togit rev-parse --symbolic-full-name
.
-
mark
gix::interrupt::init_handler()
as unsafe The passedinterrupt()
argument will be called from a signal handler, so that needs to be documented and the call sites need to state that they fulfill the contract.Thanks to @Manishearth for pointing this out.
- 7 commits contributed to the release over the course of 21 calendar days.
- 22 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'maintenance' (
4454c9d
) - Upgrade tabled and setup wordwrapping (
a78caba
) - Merge branch 'tracking-branch' (
0fe20e8
) - Add
rev parse --reference
. (193ffcd
) - Merge branch 'main' into fix-1183 (
1691ba6
) - Merge branch 'push-yvzxzqrkkvry' (
4917beb
) - Mark
gix::interrupt::init_handler()
as unsafe (59b8104
)
- Merge branch 'maintenance' (
-
gix rev parse --format
to provide different versions of the same content. This only applies to blobs, but allows to obtain different versions of the same blob like:- what's stored in Git
- what would be checked out to the worktree
- what would be diffed
- in
--trace
mode, greatly increase message-buffer size. That way, it's much less likely that messages will get lost due to being overwritten before they can be displayed every 100ms or so. - set binary name for completions
- rename
GITOXIDE_*
environment variables toGIX_#
- 27 commits contributed to the release.
- 10 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'adjustments-for-cargo' (
8156340
) - Rename
GITOXIDE_*
environment variables toGIX_#
(2189cee
) - Merge branch 'gix-status' (
5fdc9df
) gix rev parse --format
to provide different versions of the same content. (cf51a4d
)- J fmt (
51c7abc
) - Merge branch 'gix-status' (
dfb3f18
) - Adapt to changes in
gix-diff
(1706e23
) - Add the
diff::resource_cache()
low-level utility for rapid in-memory diffing of combinations of resources. (4aea9b0
) - Merge branch 'support_ssl_verify' (
5ce9784
) - In gix read http.sslVerify config value and pass it to gix-transport. (
c6e83cf
) - Merge branch 'check-cfg' (
5a0d93e
) - Remove dead code from non-existent "lean-cli" feature (
be1fa2f
) - Replace all docsrs config by the document-features feature (
bb3224c
) - Merge branch 'feat_basic_connectivity_check' (
1f9aca5
) - Flatten
fsck connectivity
into justfsck
much likegit fsck
(7ab5c76
) - Refactor (
7a88b42
) - Add basic connectivity check (
8f795e8
) - Merge branch 'fix-1096' (
48ef17e
) - Allow to print a tree without prettification, using
--tree-style raw
. (8dfbb4b
) - Merge branch 'trace-packetlines' (
e7de4c7
) - Automatically enforce strict mode if
-c
options are given on the command-line. (f9ae1bc
) - In
--trace
mode, greatly increase message-buffer size. (b230078
) - Merge branch 'discover-split-worktree' (
16170d9
) - Add
gix free discover
to inform about repository discovery. (886289f
) - Merge branch 'fix_completion-bin-name' (
fb81093
) - Refactor (
7f2bc08
) - Set binary name for completions (
eab22bd
)
- Merge branch 'adjustments-for-cargo' (
A re-release to deal with breakage in the dependency tree (self-caused).
- 1 commit contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Improve documentation slightly (
b7c9275
)
- Improve documentation slightly (
This release includes an overhaul of the url parsing implementation, allowing more urls to be parsed correctly and refining the error messages for
invalid ones. 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.
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.
- add shell completions for bash
-
gix status
auto-writes changed indices. This prevents expensive operations to re-occour. -
gix status -s/--statistics
to obtain additional information on what happened. This is useful for understanding performance characteristics in detail.
- 8 commits contributed to the release over the course of 7 calendar days.
- 18 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'feat_completions' (
681c607
) - Refactor (
fdd2df8
) - User decides completion output (
215c3ac
) - Add shell completions for bash (
70923a0
) - Merge branch 'reset' (
b842691
) - Trust Ctime again (
f929d42
) gix status
auto-writes changed indices. (46e5919
)gix status -s/--statistics
to obtain additional information on what happened. (7ba2fa1
)
- Merge branch 'feat_completions' (
This release contains a security fix which assure URLs like 'ssh://-oProxyCommand=open$IFS-aCalculator/foo'
will not execute attacker-controlled
strings. The above can, on MacOS, launch the calculator app when using it with gix clone
for example, up to v0.29.0.
-
gix status
with basic index-worktree comparison -
gix free index from-list
andgix index from-tree
gain--skip-hash
. This flag can be derived from options, but thus far we have no higher-level writing of the index so this has to do to see the difference in performance.
- both
ein
andgix
now share some code via thegitoxide
library. This can slightly improve compile times as well, even though it wasn't measured.
- update to the latest
prodash
It makes proper usage ofProgress
types easier and allows them to be used asdyn
traits as well.
- use
dyn
trait where possible. This reduces compile time due to avoiding duplication.
- 13 commits contributed to the release over the course of 27 calendar days.
- 33 days passed between releases.
- 5 commits were understood as conventional.
- 2 unique issues were worked on: #987, #992
Clippy helped 1 time to make code idiomatic.
view details
- #987
- Use a multi-call binary ('uni') to have only one build step (
4ef9a32
)
- Use a multi-call binary ('uni') to have only one build step (
- #992
- Both
ein
andgix
now share some code via thegitoxide
library. (d3ac691
)
- Both
- Uncategorized
- Merge branch 'reset' (
54a8495
) gix status
with basic index-worktree comparison (f094f71
)- Merge branch
dyn
ification (f658fcc
) - Use
dyn
trait where possible. (072ee32
) - Update to the latest
prodash
(ed327f6
) - Merge branch 'adjustments-for-cargo' (
b7560a2
) - Merge branch 'fixes' (
4bfd1cc
) - Thanks clippy (
0d6d4ec
) - Adapt to changes in
gix-index
and pass skip-hash through for performance.. (713cd59
) gix free index from-list
andgix index from-tree
gain--skip-hash
. (3ff5ac0
)- Add more configuration variables prior to potentially using them; remove
index.skipHash
(773b6e3
)
- Merge branch 'reset' (
-
gix submodule
subcommand for simple submodule listing and information retrieval -
gix index entries --recurse-subomdules
to also list submodules. -
gix index entries
with styles and pathspecs. This adds support for more simple git style, which is faster and thus allows for more direct comparisons togit ls-files
. - use real pathspecs where it was supported before.
- add
gix commit verify-signature
to do something akin togit ... --show-signature
.
- 20 commits contributed to the release over the course of 15 calendar days.
- 30 days passed between releases.
- 5 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'gix-submodule' (
8f3f358
) gix submodule
subcommand for simple submodule listing and information retrieval (1ccbe16
)- Just fmt (
0d258f4
) - Merge branch 'submodule-in-gix' (
36f7b78
) gix index entries --recurse-subomdules
to also list submodules. (6bc69e3
)- Merge branch 'submodule-active' (
a3afaa4
) - Adapt to changes in
gix
(ca972a2
) - Use
Defaults::from_environment()
when parsing pathspecs. (2a99034
) - Optimize startup times of
gix index entries
(22477bd
) - Merge branch 'pathspec-matching' (
9f4dfe0
) gix index entries
with styles and pathspecs. (c30ac0c
)- Use real pathspecs where it was supported before. (
f194cfc
) - Merge branch 'handlers-mt' (
f584d76
) - Adapt to changes in
gix
(a201f0d
) - Merge branch 'extract-signatures' (
b37affe
) - Add
gix commit verify-signature
to do something akin togit ... --show-signature
. (cd6cfe4
) - Merge branch 'archive-gz' (
c7d9129
) - Adapt to changes in
gix-archive
(feba76d
) - Merge branch 'submodules' (
b629f8a
) .gitmodule
file abstraction (6a2e6a4
)
- Merge branch 'gix-submodule' (
- add simple CLI for
gix archive
- 8 commits contributed to the release over the course of 29 calendar days.
- 30 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'gix-archive' (
1dda48b
) - Allow to create additional entries via the command-line (
4a9d0f1
) - Add compression support to
gix archive
, which is where it should shine. (567b1a4
) - Add simple CLI for
gix archive
(32bbb8b
) - Merge branch 'integrate-filtering' (
b19a56d
) - Add keys required to deal with worktree conversions and filters. (
3fbd7b0
) - Merge branch 'basic-filtering' (
3fd5e16
) - Add some configuration variables as planned due to relevancy with filters (
fa04378
)
- Merge branch 'gix-archive' (
This release fixes a possibility for V1 fetches to deadlock if negotiation would span multiple rounds (see issue #882) for details.
- list commit-graph entries by graph traversal, move commit-graph up to
gix
level. This is merely a debug tool to learn about generation numbers. All commit-graph commands now operate on a repository.
-
gix --trace
to also print tree-like instrumentation -
gix fetch --open-negotiation-graph[=limit]
Open the negotiation graph as SVG, after optionally specifying a limit as rendering/layouting can be very slow.It's useful to see how the negotiation algorithm is reasoning about each commit.
-
gix fetch --negotiation-info
to provide additional information about the negotiation phase. -
bit revision list --svg
to create a visual graph of commits. It's mainly a test of how welllayout-rs
performs.
- Add
clippy::redundant-closure-for-method-calls
lint
- 27 commits contributed to the release over the course of 10 calendar days.
- 15 days passed between releases.
- 6 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Clippy helped 1 time to make code idiomatic.
view details
- Uncategorized
- Make
gitoxide
publishable again (c16b1df
) - Merge branch 'gix-corpus' (
5861afb
) - Add
corpus --dry-run
and--task-sql-suffix
and--repo-sql-suffix
(4cef57d
) - Gix-corpus now respects the --trace flag (
0f973ac
) - Adapt to changes in
gix-trace
(bd6e3d7
) - Merge branch 'corpus' (
aa16c8c
) - Thanks clippy (
361cf96
) gix --trace
to also print tree-like instrumentation (c494cfd
)- Run tasks in parallel (
cfd8e88
) - Refresh a corpus repositories by updating all of them. (
a0b4385
) - Obtain a repository-list with classifiers (
a4300c8
) - Provide all the meta-data that is needed to make a run (and associate it with that) (
fcbda1d
) - A build script to set a
gitoxide
version according to what's in git (83f6466
) - A basic command to perform a corpus run (
d9e74ff
) - Merge branch 'gix-revision-graph' (
036e60a
) gix fetch --open-negotiation-graph[=limit]
(452ed6b
)gix fetch --negotiation-info
to provide additional information about the negotiation phase. (096838f
)- Make top-level
gix
docs available when usingcargo doc
(518159d
) bit revision list --svg
to create a visual graph of commits. (bd32e39
)- Merge branch 'help-874-redundant-closures' (
fe59956
) - Merge branch 'fix-commitgraph' (
2213321
) - Bring back the no-repo commitgraph for stress-tests to work (
ff8d42a
) - Move commit-graph implementation into its correct place (
750b07a
) - Add
clippy::redundant-closure-for-method-calls
lint (bcad5c2
) - Merge branch 'future-dates' (
8d2e6a9
) - List commit-graph entries by graph traversal, move commit-graph up to
gix
level. (b82edc8
) - Add options related to commitgraph to
gix config tree
(7aaaebf
)
- Make
The main attraction of this release is support for multi-round negotiations thanks to support for the standard negotiations algorithms.
Further, gix index entries
now lists attributes as well, and there is the new gix attribute query
sub-command in the vain of git check-attrs
.
-
gix attributes validate
to validate attributes and ignore againstgit
as baseline. Use this command to test the entire index for ignored paths and their attributes and usegit check-attr
andgit check-ignore
to validate thatgit
agrees. Collect all mismatches and print them. -
--statistics
forgix excludes query
With it one gets some insights into the work done to fulfil the query. -
gix attribute query
as something similar togit check-attrs
. -
no-repo index from-list
to create an index with empty files from the given list. The list could be created withfind . -type f
for example. - add pro-forma library to allow feature documentation of
gitoxide
on docs.rs
- 17 commits contributed to the release over the course of 34 calendar days.
- 40 days passed between releases.
- 5 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
just fmt
(ffc1276
)- Merge branch 'integrate-gix-negotiate' (
ae845de
) - Adapt to changes in
gix
(7983f6f
) - Keep track of core.alternateRefsCommand (
d925896
) - Merge branch 'auto-clippy' (
dbf8aa1
) - Include custom clippy settings (
b057500
) - Merge branch 'consecutive-negotiation' (
4507f94
) - Support reading the fetch algorithm from configuration (
33b7770
) - Merge branch 'gix-attributes-validate' (
a849da8
) gix attributes validate
to validate attributes and ignore againstgit
as baseline. (e1fcc7f
)- Merge branch 'gix-attribute-query' (
1d70213
) --statistics
forgix excludes query
(450b232
)gix attribute query
as something similar togit check-attrs
. (bfdcb14
)no-repo index from-list
to create an index with empty files from the given list. (b8db207
)- Merge branch 'fix-841' (
edeb4de
) - Add pro-forma libaray to allow feature documentation of
gitoxide
on docs.rs (13a0f1e
) - Use unlimited parallelism for
jwalk
to have a better comparison. (d67551d
)
A maintenance release without user-facing changes, just to fix installation
-
gix index entries
also prints attributes. -
gix clone
andgix fetch
with controls for shallow repositories. -
ein t trace-path
know accepts thetrace-file
alias.
- printing to stdout for commands that don't show progress is greatly improved.
Previously it would have to lock
stdout
on each write, now this is done only once. - opening repositories without 'strict' mode also ignores IO errors. These will instead be logged, but won't make it impossible to open an otherwise fine repository.
- turn
gix free index entries
intogix index entries
.
- 25 commits contributed to the release.
- 6 commits were understood as conventional.
- 2 unique issues were worked on: #301, #790
view details
- #301
- Update crate status (
ed63ec0
)
- Update crate status (
- #790
- Opening repositories without 'strict' mode also ignores IO errors. (
7bd8823
)
- Opening repositories without 'strict' mode also ignores IO errors. (
- Uncategorized
- Merge branch 'index-entries-attrs' (
f37a930
) gix index entries
also prints attributes. (08e8fc2
)- Printing to stdout for commands that don't show progress is greatly improved. (
dd14a80
) - Turn
gix free index entries
intogix index entries
. (ca8ebdf
) - Merge branch 'attributes-cache' (
3456c84
) - Adjust to changes in
gix-worktree
(13a070f
) - Merge branch 'fix-819' (
69faad0
) - Add information about configuration flags related to fsync usage (
8d5762c
) - Merge branch 'main' into dev (
23ee47f
) - Merge branch 'worktree-stack' (
3d47919
) - Assure we load all gitattributes when needed. (
9237121
) - Merge branch 'fix-790' (
ee36e5b
) - Add group headings to all shallow-related arguments. (
bbb4cb0
) - Keep track of
index.skipHash
(f29f35c
) - Make fmt (
3836cc0
) - Merge branch 'various-fixes' (
cc0f506
) - Fix clap derive declaration of conflicts (
c502fa8
) - Merge branch 'shallow-protocol' (
531dd19
) gix clone
andgix fetch
with controls for shallow repositories. (9723e1a
)- Improve error handling and reporting of
ein t query
(d5616b6
) - Make fmt (
8ef1cb2
) - Merge branch 'rename-tracking' (
3827ac6
) ein t trace-path
know accepts thetrace-file
alias. (f93e964
)
- Merge branch 'index-entries-attrs' (
This release adds the new ein tool query
analytics engine, which maintains a database of a git repository as acceleration data structure to run useful queries on.
It's nothing more than an MVP, and was inspired by a program to accelerate Git-Heat-Map.
-
ein tool query
- a git analytics engine. A tool to build and efficiently maintain a database of information contained in a git repository, preferably the kind of information that is expensive to obtain, in order to facilitate queries that would be prohibitive without an accelerating data structure. -
gix tree entries
with rev-spec support. Previously it wanted a tree-id, now it can derive it itself.
- 4 commits contributed to the release over the course of 7 calendar days.
- 7 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- re-enable local-time support for all binaries
The
time
improved the way one can opt-in to potential unsoundness in their local time support, forcing the application to make that decision at runtime.
- 1 commit contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Re-enable local-time support for all binaries (
73372d0
)
- Re-enable local-time support for all binaries (
A maintenance release without user-facing changes.
- 7 commits contributed to the release.
- 7 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'rename-crates' into inform-about-gix-rename (
c9275b9
) - Adjust to renaming for
git-protocol
togix-protocol
(823795a
) - Adjust to renaming of
git-features
togix-features
(e2dd68a
) - Merge branch 'rename-crates' (
6461c3d
) - Rename
git-repository
togix
(7bed2a9
) - Merge branch 'rename-tracking' (
9e7d792
) - Keep track of all keys relevant renaming when merging and obtaining status (
0f2ed59
)
- Merge branch 'rename-crates' into inform-about-gix-rename (
- upgrade to clap 4.1
-
gix clone <url>
is now permitted without specifying a destination directory. Note that the implementation doesn't take into account potential redirects and renames as it's implemented only with the first URL it sees (not the redirected ones). - make more HTTP options available
http.schannelCheckRevoke
- 15 commits contributed to the release over the course of 47 calendar days.
- 49 days passed between releases.
- 3 commits were understood as conventional.
- 1 unique issue was worked on: #683
Clippy helped 2 times to make code idiomatic.
view details
- #683
gix clone <url>
is now permitted without specifying a destination directory. (b81f650
)
- Uncategorized
- Make fmt (
e22080e
) - Merge branch 'adjustments-for-cargo' (
7bba270
) gix progress
now usees the configuration tree as basis for data. (ea76bf5
)- Thanks clippy (
f7b8794
) - Upgrade to clap 4.1 (
1d9a5e9
) - Merge branch 'patch-1' (
b93f0c4
) - Thanks clippy (
9e04685
) - Upgrade
tabled
(7aed326
) - Merge branch 'gix-clone-improvements' (
76c99f3
) - Merge branch 'adjustments-for-cargo' (
f8c562a
) - Adapt to changes in git-repository and git-transport (
d336368
) - Update planned usage of
ssh
related configuration variables. (3f91088
) - Merge branch 'adjustments-for-cargo' (
d821fc5
) - Make more HTTP options available (
38ae61a
)
- Make fmt (
This release also fixes compatibility issues that formerly prevented to fetch or clone form https://googlesource.com
.
- represent
GIT_(COMMITTER|AUTHOR)_(NAME|EMAIL|DATE)
with git configuration. That way it becomes more obvious where values are coming from.
-
auto-enabled verbosity for
gix fetch/clone
and add--no-verbose
. I found myself always adding (and having to remember to add) the-v
flag for long-running operations so these should be able to default to a higher verbosity level.To counter that, there is a new
--no-verbose
flag to turn that off. -
add
--strict
option to enforce strict checking of configuration. -
gix odb stats
to calculate statistics on the object database. This includes the amount of objects along with a listing of where they are located. -
gix clone --no-tags
support. This is the same asgit clone --no-tags
.
-
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.
-
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.
- 22 commits contributed to the release over the course of 30 calendar days.
- 30 days passed between releases.
- 7 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Fix label for
ein t estimate-hours
command (4c93de1
) - Merge branch 'read-header' (
3d01252
) gix odb stats
to calculate statistics on the object database. (8c9c243
)- Merge branch 'main' into read-split-index (
c57bdde
) - Merge branch 'adjustments-for-cargo' (
083909b
) gix clone --no-tags
support. (e2b8c5d
)- Update
gix progress
to inform aboutremote.<name>.tagOpt
(3ebb340
) - Merge branch 'adjustments-for-cargo' (
70ccbb2
) - Upgrade to prodash v22 for API improvements (
77ab98d
) - Auto-enabled verbosity for
gix fetch/clone
and add--no-verbose
. (9814369
) - Switch from
atty
tois-terminal
(7304bc1
) - Adapt to changes in
git-repository
(c4f68bf
) - 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
) - Adapt to changes in
git-repository
(f1a4c8b
) - Update progress of http.proxyAuthMethod (
872dc1a
) - Add
--strict
option to enforce strict checking of configuration. (aeb4a1d
) - Don't lock stdout/stderr as it will deadlock on dbg-printing (
62cae0e
) - Adapt to changes in
git-config
(1c2e755
) - Merge branch 'main' into http-config (
bcd9654
)
- Fix label for
-
Make
reqwest
TLS backend configuration easy. We provide the choice ofnative-tls
orrust-tls
. If none is provided, the user can configure on their on similar to how it's done ingix
.Please note that a choice now has to be made or HTTPS will not be available, so use one of…
- blocking-http-transport-reqwest-rust-tls
- blocking-http-transport-reqwest-native-tls
- 1 commit contributed to the release.
- 4 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Make
reqwest
TLS backend configuration easy. (3ddbd2d
)
- Make
This releases fixes gix fetch
so that it is able to clone or fetch pytorch
or other repositories on case-insensitive file systems.
It's also an attempt to trigger CI to build binary releases.
- 9 commits contributed to the release over the course of 9 calendar days.
- 10 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'http-config' (
665b53e
) - Document that histogram is now the default diff algorithm (
c76572b
) - Introduce new
gitoxide.http.connectTimeout
for more control for git clients (2ab80e4
) - Keep track of
no_proxy
environment variable support (f0625de
) - Update progress (
3d9fb6c
) - Don't forget to update 'progress' (
0ec5220
) - Update progress with gitoxide.userAgent (
1c012f4
) - Plan for user agent string configuration (
f5499a5
) - Keep track of http related configuration keys. (
1afaebd
)
- Merge branch 'http-config' (
-
gix remote ref-map --show-unmapped-remote-refs
. That way it's more obvious to see what was filtered out by ref-specs.It's also great to validate that server-side filtering via ref-prefix will not send refs that are referred to by symbolic refs that are not filtered out. That should be fine as it's all about objects, it's just something to deal with as we may have to deal with symbolic refs that aren't in the set of refs the server sent to us.
-
diff algorithm is controlled by git configuration
diff.algorithm
-
ein t hours
allows to specify the amount of worker threads.
-
collect
stderr
and print it afterwards to avoid intersection with line progress. Previously it would happen that stderr would be printed directly and mix with the line progress (as in-v
) which also prints to stderr.Now errors are collected and output at the end once the line renderer was already shutdown.
- remote
lock_mode
from all methods dealing with reference edits. It is now read fromcore.filesRefLockTimeout
accordingly.
- remove
gix remote --url
in favor of determining the intention similar togit fetch
- 65 commits contributed to the release.
- 6 commits were understood as conventional.
- 2 unique issues were worked on: #450, #536
Clippy helped 1 time to make code idiomatic.
view details
- #450
- Keep track of several branch related keys (
443a75a
) gix remote ref-map --show-unmapped-remote-refs
. (e973dfe
)- Update progress as we now respect
diff.algorithm
(30d32e7
) - Apply configuration overrides to newborn repo during clone (
c8ef759
) - Collect
stderr
and print it afterwards to avoid intersection with line progress. (3a05328
) - Reduce verbosity of
clone
and print once entire clone is done (9a476df
) - First rough sketch of
gix clone
(23a5e8b
) - Progress totals (planned, devitaion) (
63947ae
) - Prepare attribute-group setup as far as possible. (
f5e2eeb
) - Update usage of
core.checkState
(8b2aba1
) - Update progress based on filesystem config usage (
de13c66
) - Inform about even more keys in
gix progress
(0e9bd41
) - Plan more core filesystem attributes (
d10a82e
) - Update
init.defaultBranch
- now used by custom initialization. (4d6d7bb
) - Support for handshake information in
gix fetch
(c47dcc6
) - Fix build (
d034882
) - Remove
gix remote --url
in favor of determining the intention similar togit fetch
(92bbe33
) - Support for
--url
for arbitrary urls when fetching (8c7351c
) - Frame for
gix fetch
(5b72d27
) - Update progress information to include packedRefsTimeout (
fd18320
) - Remote
lock_mode
from all methods dealing with reference edits. (3a0fb1b
) - Add information about planned lock timeout support (from configuration) (
7076891
) - Add remotes. as planned feature for remotes (
3c188b2
) - Slightly nicer styling of config keys (
eade88f
) - Complete listing of records based on current usage, probably (
6abd5a4
) - Add more records (
5c0d0ab
) - Add tabled for nicer printing (
65e6496
) - Refactor (
b42b08a
) - Add support for more types of configurations (
317e02a
) - A very first version of
gix progress show
(92e082a
)
- Keep track of several branch related keys (
- #536
ein t hours
allows to specify the amount of worker threads. (20259da
)
- Uncategorized
- Merge branch 'write-sparse-index' (
ba17db0
) - Plan
index.version
for when we can write V4 indices. (da96d34
) - Notes about the split-index extension. (
ad44982
) - Take note of additional options for promisor packs and partial clone filters (
1ec27f8
) - Make note of
extension.worktreeConfig
(fe1e646
) - Merge branch 'main' into write-sparse-index (
c4e6849
) - Add
init.templateDir
togix progress
(9fab050
) - Make fmt (
ea2136b
) - Merge branch 'gix-clone' (
def53b3
) - Diff algorithm is controlled by git configuration
diff.algorithm
(b1edb9e
) - Merge branch 'main' into gix-clone (
fa27570
) - Merge branch 'imra-diff' (
f53f942
) - Adapt to changes in
git-diff
for a 2x speedup when calculating line changes (296f3b6
) - Update
gix progress
records (b05a2e7
) - Merge branch 'main' into gix-clone (
de4fe06
) - Mark the upcoming usage of init.defaultBranch. (
6225f35
) - Merge branch 'fix-gix-index-from-tree' (
da5f63c
) - Write index without output path to memory only. (
c8d0345
) - Merge branch 'gix-index-from-tree' (
8c24386
) - Refactor (
67f2247
) - Refactor (
01ab5ca
) - Update with various configuration variables relevant to checking out worktrees (
09d767a
) - Merge branch 'clone' (
507dc7e
) - Update usage of clone related configuration (
1a1e862
) - Update progress with intended uses of
clone.
variables (8b804a3
) - Merge branch 'main' into new-http-impl (
702a161
) - Make fmt (
53acf25
) - Merge branch 'fetch-pack' (
f47c891
) - Merge branch 'fetch-pack' (
3c49400
) - Update docs (
c5c0ac5
) - Input id can now be a commit or tree as prefix or full object id (
8ef3fcb
) - Thanks clippy (
8dadd70
) - Merge branch 'fix-odb-race' (
b862fc5
) - Merge branch 'diff' (
25a7726
)
- Merge branch 'write-sparse-index' (
-
ein tool hours -s
was split into-f|--file-stats
and-l|line-stats
. That way more information is generated at increasingly high costs.
-
ein tool hours --stat
to collect additional statistics per author. Note that these are expensive and unconditionally use threads to speed up these computations. -
ein tool hours -b
ignores bots. For now it only considers bots with names containing[bot]
.
- 21 commits contributed to the release over the course of 20 calendar days.
- 27 days passed between releases.
- 3 commits were understood as conventional.
- 2 unique issues were worked on: #450, #470
view details
- #450
- Refactor (
11851f3
) - Option to print server information about the connection (
4720666
) - Show fixes as well (
2237495
) - Correct printing of tag information (even though it doesn't look great) (
f4d8198
) - Wire up the
ref-map
sub-command. (94c2b78
) - Select
gix
commands will now load the git installation configuration (23d2dec
) - Refactor (
7abc0a3
) - Add sketch of
gix credential
(642e21f
)
- Refactor (
- #470
- Uncategorized
- Merge branch 'hours-upgrade' (
26489d1
) - Use rev-specs instead of ref-names (
cf7182e
) ein tool hours -b
ignores bots. (5d0332f
)- Merge branch 'filter-refs' (
3773b92
) - Implement
gix index from-tree
(2fbd3df
) - Make fmt (
535e967
) - Merge branch 'filter-refs-by-spec' (
5c05198
) - Merge branch 'main' into index-from-tree (
bc64b96
) - Merge branch 'main' into filter-refs-by-spec (
56ba481
) - A basic implementation of rev-list without anything fancy (
791dd66
)
- Merge branch 'hours-upgrade' (
- uniformize deny attributes
- Support for
-c/--config
ingix
-
gix remote refs
to list all remote references of a suitable remote. This takes into account either a named remote, or the remote associated with the current branch, or the default remote it could deduce or obtain from the configuration. - use docsrs feature in code to show what is feature-gated automatically on docs.rs
- remove
gix free remote ref-list
in favor ofgix remote refs
The functionality is the same, but the latter is built on top of a repository which is slightly less flexible, but preferable over maintaining a non-repo version.
- 15 commits contributed to the release over the course of 5 calendar days.
- 6 days passed between releases.
- 5 commits were understood as conventional.
- 1 unique issue was worked on: #450
Clippy helped 1 time to make code idiomatic.
view details
- #450
- Support for -c CLI config overrides in
gix config
. (19c1746
) - Remove
gix free remote ref-list
in favor ofgix remote refs
(dda9957
) - Support for
-c/--config
ingix
(45a30f0
) - Refactor (
e0be6e9
) - Add support for passing urls directly to bypass all remote repository logic. (
df3cf18
) gix remote refs
to list all remote references of a suitable remote. (5d6d5ca
)- Try to use maybe async for the simplest of possibly blocking remote interactions (
db4df25
) - Basic parsing of
gix remote refs
without any implementation. (f8f1249
)
- Support for -c CLI config overrides in
- Uncategorized
- Merge branch 'remote-ls-refs' (
39d585d
) - Thanks clippy (
bb6813a
) - 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
) - Merge branch 'main' into remote-ls-refs (
bd5f3e8
)
- Merge branch 'remote-ls-refs' (
- Invert behaviour to
open::Options::strict_config()
, with lenient being the default. This means API users will get libgit2 behaviour but commands likegix
can change options to emulategit
behaviour.
-
--cat-file
flag forgix rev parse
to cat instead of resolving. -
gix rev previous-branches
subcommand
-
ein tools
toein tool
for as it's more intuitive
-
gix rev resolve --explain
- 21 commits contributed to the release over the course of 26 calendar days.
- 26 days passed between releases.
- 5 commits were understood as conventional.
- 1 unique issue was worked on: #427
view details
- #427
- Uncategorized
- Merge branch 'core-abbrev-handling' (
dbaff13
) - Control which command is lenient or not. That way
gix-config
can be lenient. (6a9c58f
) - Invert behaviour to
open::Options::strict_config()
, with lenient being the default. (0235111
) - Merge branch 'main' into remote-ls-refs (
c4bf958
) - Merge branch 'index-write-refactor' (
805f432
) ein tools
toein tool
for as it's more intuitive (edf73dd
)- Merge branch 'main' into write-index-v2 (
a938986
) - Add aliases to make revision sub-commands more accessible (
a6d79e3
) - Merge branch 'rev-parse-delegate' (
2f506c7
) - 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
) - Make fmt (
47724c0
) - Merge branch 'kianmeng-fix-typos' (
4e7b343
) - Fix typos (
e9fcb70
)
- Merge branch 'core-abbrev-handling' (
-
gix config
with section and sub-section filtering. -
gix config
lists all entries of all configuration files git considers. Filters allow to narrow down the output.
- 47 commits contributed to the release over the course of 101 calendar days.
- 108 days passed between releases.
- 2 commits were understood as conventional.
- 3 unique issues were worked on: #301, #331, #427
Clippy helped 3 times to make code idiomatic.
view details
- #301
- Allow reading patterns from stdin (
0c597fe
) - Add
--show-ignore-patterns
togix repo exclude query
(09f904b
) - Basic prefix support as well the first working version of
exclude query
(9cb8385
) - Support for overrides on the command-line (
7d98b21
) - Fix build (
cb56f12
) - Refactor (
3ff991d
) - Frame for
gix repo exclude query
(a331314
) - Make fmt (
50ff7aa
)
- Allow reading patterns from stdin (
- #331
- Fix journey tests after
gix
restructuring (59b95c9
) gix config
with section and sub-section filtering. (eda39ec
)gix config
lists all entries of all configuration files git considers. (d99453e
)- Refactor (
a437abe
) - Move 'exclude' up one level and dissolve 'repo' subcommand (
8e5b796
) - Move 'mailmap' up one level (
5cf08ce
) - Move 'odb' up one level (
0ed65da
) - Move 'tree' up one level (
38a8350
) - Move 'commit' up one level (
72876f1
) - Move 'verify' up one level (
ac7d99a
) - Move 'revision' one level up (
c9c78e8
) - Move 'remote' to 'free' (
8967fcd
) - Move commitgraph to 'free' (
f99c3b2
) - Move index to 'free' (
83585bd
) - Move 'pack' to 'free' (
1cdecbc
) - Migrate mailmap to the new 'free' section (
141c5f1
) - First step towards moving all repository-commands one level up. (
f4e1810
) - Make obvious what plumbing and porcelain really are (
faaf791
) - Adjustments due to breaking changes in
git_path
(4420ae9
)
- Fix journey tests after
- #427
- Uncategorized
- Merge branch 'gix-repo-config' (
afecb63
) - Thanks clippy (
48b3f4a
) - Merge pull request #1 from Byron/main (
085e76b
) - Make fmt (
0700b09
) - Merge branch 'main' into pathspec (
89ea12b
) - Merge branch 'main' into cont_include_if (
0e9df36
) - Use git_path::realpath in all places that allow it right now (
229dc91
) - Merge branch 'main' into cont_include_if (
41ea8ba
) - Merge branch 'main' into git_includeif (
05eb340
) - Merge branch 'main' into msrv-for-windows (
7cb1972
) - Make fmt (
251b6df
) - Merge branch 'worktree-stack' (
98da8ba
) - Thanks clippy (
056e8d2
) - Thanks clippy (
fdec111
) - Merge branch 'main' into repo-status (
4086335
) - Merge branch 'worktree-stack' (
e90d3fd
)
- Merge branch 'gix-repo-config' (
- Add
gix repo commit describe
It supports typical but basic flags mostly similar to the ones in git.
- 5 commits contributed to the release over the course of 1 calendar day.
- 2 days passed between releases.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #298
view details
Adapt to changes in gix-features
which change Send + Sync
to Send + Clone
. This happens to allow non-sync implementations (i.e. thread-local), along with Sync
ones
which usually are Clone
too as they are passed by immutable reference (which is Clone + Copy
).
- Remove light* features, add 'lean-async' in its place; remove termion support
- remove
Option<impl Progress>
in favor ofimpl Progress
- remove unnecessary
Arc
aroundshould_interrupt
flag - remove Sha1 mentions in
index::verify::Mode::*
variants The hash is repository defined and not hard-coded - Remove lean plumbing CLI
- Collect all stdout messages in line renderer as well Otherwise the threaded line renderer will interfere with genuine program output.
-
gix mailmap verify
command -
ein find --debug
to learn why it is slow - --counting-threads flag to configure amount of threads when counting The efficiency of multi-threaded counting is low per core, and despite some speedups might be desirable, one might not want to commit all cores to this amount of waste.
- in-manifest and in-bin documentation of feature toggles Unfortunately, these don't show up on docs.rs due to it being a binary only crate. One could consider throwing in a lib just for good measure.
- 63 commits contributed to the release over the course of 126 calendar days.
- 165 days passed between releases.
- 10 commits were understood as conventional.
- 12 unique issues were worked on: #215, #263, #266, #279, #287, #289, #293, #298, #301, #329, #366, #67
view details
- #215
- #263
- #266
- Provide handle with a snapshot of the store's state (
6e0cd6d
)
- Provide handle with a snapshot of the store's state (
- #279
- Fast-path multi-pack index verification in the CLI (
bcde935
) - Basic multi-pack index creation (
89428b2
) - 'index' with its own sub-commands (
c4c5678
) - Even nicer printing (
d2bea27
) - Remove
Option<impl Progress>
in favor ofimpl Progress
(bf04644
) - Remove unnecessary
Arc
aroundshould_interrupt
flag (d851bed
) - Remove Sha1 mentions in
index::verify::Mode::*
variants (c2679a0
)
- Fast-path multi-pack index verification in the CLI (
- #287
- #289
- #293
- Faster writing to stdout/stderr for plumbing commands (
d04dc01
) - Add 'index verify' subcommand to 'gix' (
1ac2c21
) - Flag to hide extension details (
34ea001
) - Print basic index information, including the tree extension (
9277cf8
) - Basic entry information (
239e7b2
) - Refactor (
8bf585d
) - JSON output for index entries (
3fc1622
)
- Faster writing to stdout/stderr for plumbing commands (
- #298
- #301
- Greatly simplify render-line logic (
a8fa53a
) - Pass thread-limit along to checkout (
07e9081
) - Add thread-count and chunk-size computation; interrupt capability (
8cbe85d
) - A first sketch of access odb information using a sub-command (
89b628a
) - Sub-command to print multi-index entries (
6c10e09
) - Pack multi-index info subcommand (
21c2dd5
) - Refactor (
e6a3d43
) - Detailed report about issues after checkout (
613483b
) - Keep-going support on the command-line (
73a7393
) - Add tree-info subcommand to more easily test actual tree-traversal performance (
29fb0c8
) - Frame for traversing tree entries (
0e55fbb
) - Properly use 'max-performance' feature toggle to get pack caches :D (
a39d476
) - Allow writing empty files during checkout but also query the odb (
5388d80
) - Support for repo to write actual objects (
5494fb3
) - Basic version of index checkout via command-line (
f23b8d2
) - Support for unicode-precomposition for gix apps (
e90c123
)
- Greatly simplify render-line logic (
- #329
- In-manifest and in-bin documentation of feature toggles (
25da30f
)
- In-manifest and in-bin documentation of feature toggles (
- #366
- #67
- --counting-threads flag to configure amount of threads when counting (
0090961
)
- --counting-threads flag to configure amount of threads when counting (
- Uncategorized
- Make fmt (
7cf3545
) - Small build now uses the line renderer as well (
652a0ac
) - Upgrade to prodash 19 (
90c6c5a
) ein find --debug
to learn why it is slow (70109be
)- Fix clap warnings (
aa51e05
) - Merge branch 'index-verification' (
ad3c803
) - Merge branch 'index-information' (
025f157
) - Improve CLI docs (
866530a
) - Rename 'gix commitgraph' back to 'gix commit-graph' (
d6a72e7
) - Merge branch 'use-midx-in-store' (
338521b
) - Merge branch 'sync-db-draft' (
7d2e20c
) - Thanks clippy (
b0f7328
)
- Make fmt (
This release pins beta versions of clap
to avoid it to automatically fetch the latest one
during installation.
This is made possible due to clap
itself pinning its dependency
to the clap-derive
crate.
- 1 commit contributed to the release over the course of 1 calendar day.
- 4 days passed between releases.
- 0 commits were understood as conventional.
- 1 unique issue was worked on: #222
A first usable version of gix
to make using gitoxide
from your applications so much easier. It serves as a one-stop shop for application developers without sacrificing performance by default while making common use-cases more convenient.
gix
as hub crate for application development with focus on usability without sacrificing any knob to tune performance.- opt-in
async
forgix-packetline
,gix-transport
andgix-protocol
for fully async git clients, along with thelight-async
feature toggle to build agix pack-receive
with an async client instead of a blocking one. - Statistics for
gix pack-create
with the-s/--statistics
flag to have data indicating the cost of the operation. Currently it's doing a lot of work that has to be avoided in order to be useable in production and the numbers underline that. Future iterations will cause key metrics to go down. - Packs are now reproducible by default, which means that the same tip will always generate a pack with the same hash. This may be a desirable property for some kinds of packs, but not for others which is why it can be turned off for a considerable speed boost.
gix-tempfile
crategix-lock
crategix-ref
crate with complete loose-ref, packed-ref and transaction support.
- On M1, thanks to a new release, Sha1 is now computed much faster which unlocks a massive performance boost. In my test, verifying/decoding the entire linux kernel pack now happens in 17s, as compared to 37s for canonical
git
. gix-object
parsing is a few percent faster thanks a reworked error handling for objects. By default, error collection is disabled entirely making the error case zero-sized. If needed, verbose and stacked errors can be turned on using a feature toggle for applications who expect repositories with malformed objects and need detailed diagnostics.
- control pack and object cache size in megabytes in some sub-commands
- 5 commits contributed to the release over the course of 26 calendar days.
- 35 days passed between releases.
- 1 commit was understood as conventional.
- 2 unique issues were worked on: #200, #67
This is a maintenance release.
- 1 commit contributed to the release over the course of 8 calendar days.
- 20 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
- 1 commit contributed to the release over the course of 1 calendar day.
- 1 day passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
- 42 commits contributed to the release over the course of 95 calendar days.
- 98 days passed between releases.
- 0 commits were understood as conventional.
- 1 unique issue was worked on: #83
Clippy helped 1 time to make code idiomatic.
- 32 commits contributed to the release over the course of 128 calendar days.
- 143 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Clippy helped 3 times to make code idiomatic.
Maintenance release without any new features.
These are created to account for breaking changes within the dependency graph of
gitoxide
crates. Due to some blunders in the past the version on crates.io
could not be installed anymore.
This was eventually fixed with new minor releases across the ecosystem.
Finally, yet another breaking change due to the introduction of the gix-hash
crate to break a dependency cycle between gix-object
and gix-features
caused
yet another maintenance release.
Maintenance release without any new features.
- 5 commits contributed to the release over the course of 78 calendar days.
- 84 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge branch 'commit-graph' into main (
9cb09b2
) - Add lean-plumbing docs for path of commit-graph-verify (
5c7b52d
) - [commitgraph] Implement basic commit-graph file verification. (
2571113
) - [commitgraph] Stub out commit-graph-verify plumbing command. (
aacf0f0
) - Merge branch 'main' into commit-graph (
ca5b801
)
- Merge branch 'commit-graph' into main (
- 1 commit 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
- fix installation via
cargo install
- 3 commits contributed to the release over the course of 6 calendar days.
- 6 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- add
remote-ref-list
andpack-receive
subcommands to gix
- rename plumbing sub-command from
index-from-pack
topack-index-from-data
- 14 commits contributed to the release over the course of 29 calendar days.
- 30 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- [clone] refs can now be written into a specified directory (
fb1f048
) - [clone] First version of writing references, but… (
445be27
) - [clone] first journey test for pack-receive (
46a3511
) - [clone] This actually works: first MVP of retrieving packs via clone (
c06d819
) - [ref-ls] add pretty version for ls-refs (
487d06d
) - [ref-ls] Fix progress display (
2fcb557
) - Refactor (
b38290e
) - [ref-ls] refactor (
35e26fc
) - Refactor (
f90b92f
) - [ref-ls] Frame for remote-ref-ls command in gitoxide-core (
161e7df
) - [clone] link up lean plumbing command with gitoxide-core: pack-receive (
5ea49c8
) - Refactor (
40a6412
) - Less ambiguous name for 'index-from-pack': 'pack-index-from-data' (
386673c
) - Refactor (
b4a6e16
)
- [clone] refs can now be written into a specified directory (
- add
pack-explode
andpack-index-from-data
sub-commands - massive speed improvements for
pack-verify
Many small and possibly breaking changes are not mentioned here.
- 46 commits contributed to the release over the course of 30 calendar days.
- 31 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Make obvious that interrupt request was received (
34b2373
) - Make interrupt handler work reliably (
e71da0f
) - Unify used ranges for line renderer amond pretty and lean interface (
f59f66e
) - Add percentage and throughput to tasks that matter (
763d7ca
) - Upgrade to latest iteration of prodash (
3a4faec
) - Support for JSON format output (
1931575
) - First pieces of the index-from-pack journey tests (
181d69c
) - Add versions back to main command, remove from sub-commands (
e509373
) - Ditch structopt in favor of clap 3.0 beta1 (
d7591e2
) - Move common flags to common plac (
c0352c2
) - Write about user interfaces and the use/non-use of async (
91ba045
) - Interrupt support for pretty plumbing (
bca7ce2
) - Revert "Less memory for look up mode, faster start" - too slow (
584350a
) - Less memory for look up mode, faster start (
395c7e7
) - Remove memory mode entirely (and some complexity with it) (
8812e91
) - Turns out you never want to keep deltas in memory (
657aa2c
) - Remove support for keeping compressed memory to reduce the index size (
1e2ec7e
) - …but there seem to be issues with the kernel pack… (
cc147bc
) - Minor fixes after first local tests - it's up to twice as fast!! (
43c7fd1
) - Quick and dirty impl of lean command-line for index-from-pack (
9660bbf
) - Upgrade dependencies (
44b8221
) - Remove invalid clap configuration (
665696f
) - Prepare full 'verify' implementation (
ee45c7f
) - Refactor (
0a33b24
) - Allow sink-compress configuration; choose best algorithm (
29b9c23
) - Nice error message on failure (
adbc82c
) - The first 'explode' implementation… (
0d31ad1
) - Get all pieces ready for action (
1805d64
) - Pass option for safety checks down to explode(…) (
0bcb790
) - Refactor (
f66b116
) - Basic tests and CLI args for explode pack (
f932256
) - Rename verify-pack to pack-verify (keeping it more formal) (
ec8c48a
) - Refactor (
d3c00c8
) - Change bin names from 'gio' to 'gix' and 'gixp' (
5e23137
) - Revert "Invert --statitics switch to become --no-statistics" (
93a9b30
) - Invert --statitics switch to become --no-statistics (
aeb8778
) - Use faster algorithm by default (
bb45c3d
) - Fix clippy (
ec40e09
) - Change course and do pack streaming first (
bcb275e
) - Get rid of annoying warnings - there is no better and easier way (
41f38c4
) - Fully implement --encode and --re-encode flags (
a7cfac8
) - Prepare for re-encoding each pack object (
afae684
) - Fix naming change, which was introduced accidentally (
fbb9f98
) - Refactor (
2888f1b
) - Pass threadlimit down from CLIs (
f98c5b1
) - Add new Context argument to support more configuration options (
7c5d8b8
)
- Make obvious that interrupt request was received (
- Initial release with
pack-verify
- 54 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Bring color back to 'max' versions (
c68d9ab
) - Support for disabling the cursor in the pretty line renderer (
48c4bbd
) - Allow TUI to terminate action properly (
1f1b725
) - Refactor (
cce71aa
) - Refactor (
f276a05
) - Preliminary support for line renderer in max version (
4aa8022
) - Unify frame rate across plumbing (and later potentially porcelain) (
e2a7bdd
) - Refactor (
41e01a5
) - Proper implementation of line renderer into 'lean' CLI (
e98e7c2
) - Mild improvements to look of verbose log (
5fff552
) - First very basic version of line renderer progress - works… (
0cc1bf2
) - Prepare for optional addition of line renderer for lean version (
aac0d34
) - Upgrade to prodash version 7 (
af02b46
) - Make --version flags work as expected. (
a4d978c
) - Merge branch 'release' (
a1a0b13
) - Rename 'pretty' target into 'max', a better fit for what it is (
5acecc5
) - Make gio commands less cumbersome, self-document their build type (pretty, lean) (
1f9bc03
) - Allow to limit the logging depth for less cluttered output (
fce7035
) - Support for json in pretty-plumbing and gitoxide (on demand) (
b3780f8
) - Simplify the 'keep open' logic of TUI progress window (
13cd8ce
) - Attempt to implement progress with a mode enum (
ac490c2
) - Allow for more screen space when formatting (
6794300
) - Assure pretty progress doesn't occlude the output (
122d69f
) - Fix pretty build (
6adf615
) - Pass average stats through to the top level (
5b4979c
) - Refactor (
7add82c
) - Now ACTUALLY stop TUI when there is no progress anymore :D (
3bf3321
) - Automatically close the TUI when there is no progress anymore. (
c416152
) - Assure we wait for GUI thread to finish (
60eaea0
) - Pretty progress in a generalized form (
caa883b
) - Neater progress log messages: don't show the module it originates from (
026a0dd
) - Refactor (
30925e6
) - Support for logging in pretty binaries (
67026e4
) - --verbose flag for lean plumbing binary (
aaf4825
) - First very basic progress implementation (
b820717
) - Pass progress everywhere, for now just to discard it (
da3ae1c
) - Split plumbing into separate binary (
b1e51d6
) - Refactor (
0fbba9f
) - Refactor (
ba6a8ef
) - Add initial version of 'lean-cli' feature toggle, but… (
f01c298
) - Support for verifying pack files and index files (
b09b4e1
) - Reorganize crates to make 'gitoxide' the CLI, and 'gitoxide-core' the library (
0ac9c5a
) - Add simple pack verification to gio (
8c0e0b5
) - Goodbye git-core, hello git-repository (
7cec2b6
) - Document existing use of unsafe, deny everywhere else (
41f4bce
) - Cargo clippy (
1179ac1
) - Move parsing tests close to actual parsing (
3ca2c59
) - Color for all grit commands/subcommands (
aa8efdd
) - Use structopt instead of clap (
eb7388c
) - Remove failure from grit binary, too (
417c34b
) - Refactor (
87c8a2e
) - Cargo fmt (
2aa0857
) - Implement git-init (
57737c2
) - Initial commit - based on standard project template (
c3d319f
)
- Bring color back to 'max' versions (