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 missing command docs + small style fixups Changes that affect the help/usage text shown at runtime:
-
Add descriptions for a few
gixcommands that didn't have it:gix is-clean,gix is-changed, andgix env. -
Add a description of the debug-only
ein paniccommand. -
Small spacing and capitalization improvements for consistency.
-
Add a line break in a
///block for brevity of the top line.
Changes to code style that do not affect what is shown at runtime:
-
Add
.at the end of some///first lines. (This doesn't affect runtime behavior becauseclapnormalizes this away.) -
Put
///above all#[...]in a few places where it wasn't. -
Adjust comment wrapping in a couple of places for clarity.
-
- 4 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- add first 'debug' version of
gix diff file
- use revspecs for revision and path
- 14 commits contributed to the release.
- 2 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 pull request #1880 from cruessler/add-gix-diff-file (
b10cc6f) - Apply suggestions from code review (
1039ae9) - Use revspecs for revision and path (
dd366a5) - Add first 'debug' version of
gix diff file(dbb1532) - Merge pull request #1888 from cruessler/respect-diff-algorithm-in-blame (
dce127e) - Adapt to changes in
gix-blame(8a31d88) - Merge pull request #1859 from cruessler/add-failing-test-for-as-time (
36a846f) - Merge pull request #1858 from cruessler/add-git-blame-since (
7059609) - Add test for
--since(330711d) - Adapt to changes in
gix-blame(e7084d8) - Merge pull request #1861 from GitoxideLabs/revert-lazylock (
6acca19) - Don't use LazyLock just yet. (
147eb41) - Merge pull request #1854 from GitoxideLabs/montly-report (
16a248b) - Thanks clippy (
8e96ed3)
- Merge pull request #1880 from cruessler/add-gix-diff-file (
- add
gix blame -L start,end - add
gix envto print paths relevant to the Git installation. - Document the remaining subcommands
- Add support for statistics and additional performance information.
- add
gix blameto the CLI That way it's possible to see theblameresult of any file in the repository.
- 10 commits contributed to the release over the course of 26 calendar days.
- 27 days passed between releases.
- 5 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Merge pull request #1766 from cruessler/add-range-to-gix-blame (
90fef01) - Add
gix blame -L start,end(4a78395) - Merge pull request #1758 from GitoxideLabs/git-shell (
851a7c4) - Merge pull request #1757 from lu-zero/document-subcommands (
31d83a4) - Add tailing
.for consistency (ddddf02) - Add
gix envto print paths relevant to the Git installation. (75d689f) - Document the remaining subcommands (
278125a) - Merge pull request #1453 from cruessler/gix-blame (
6ed9976) - Add support for statistics and additional performance information. (
4ffe6eb) - Add
gix blameto the CLI (80e5804)
- Merge pull request #1766 from cruessler/add-range-to-gix-blame (
- add first 'debug' version of
gix logIt's primarily meant to better understandgix blame. - add
--tree-favortogix merge tree|commit. With it one can decide which side to favor in case of irreconcilable tree-conflicts.
-
gix merge filenow usesTHEIRSinstead ofOURSwhere 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 filenow usesTHEIRSinstead ofOURSwhere 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-favortogix 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 --debugThis yields additional debugging information with details about detected conflicts. - add
gix merge commits - add
gix merge treeto 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 treeto 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 catcommand. It only prints things without fuzz.Inspired by https://youtu.be/JYH5ILv5g1g?si=bHLBPFJiZyRUTl6u&t=211.
-
add
gix merge-filewith similar features asgit merge-file -
gix merge-basefor the CLI For now it only supports the standard merge-base, but more derivatives can be added easily on demand.
- Adjust
gix cleanwarning and help for worktree fix - Clarify -r/--repositories and --skip-hidden-repositories
This adds information to the help text for the
git cleanoptions-r/--repositoriesand--skip-hidden-repositoriesto 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-repositoriesis sometimes needed to preserve not only separate repositories but the (probably rarer) case of hidden nested worktrees of the current repository.
- switch from
timetojiffThis swaps outtimeforjiff. It doesn't completely removetimefrom the dependency tree. The last remaining use oftimeis 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.rsthat 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-graphis (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 catcommand. (9c8bc03) - Merge pull request #1611 from Byron/merge (
5ffccd2) - Add
gix merge-filewith 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-basefor 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
timetojiff(28ac657) - Merge pull request #1471 from EliahKagan/hidden (
a9aac4f) - Adjust
gix cleanwarning 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 checksimilar togit check-mailmap. That way it becomes a little easier to maybe try out other special cases in the wild. -
gix clonewith--refsupport.--refis 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
plumbingandporcelainas modules thelib.rs, they can be compiled after the rmeta for the dependencies are generated.For the
uni.rswhich uses bothplumbingandporcelain, 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 checksimilar togit check-mailmap. (2a56387) - Merge branch 'main' into config-key-take-2 (
9fa1054) - Merge branch 'feat/checkout-other-refs' (
ecfde07) gix clonewith--refsupport. (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.protectHFSandcore.protectNTFS. This also addsgitoxide.core.protectWindowsas a way to enforce additional restrictions that are usually only available on Windows.Note that
core.protectNFSis 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.protectHFSandcore.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 --ignoredsupport -
add
gix status --index-worktree-renamesThis 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 statuswith 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-changedIt'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-suffixfor dirty-information This is a submodule-centric and greatly simplified way of obtaining describe information with dirty-suffix.Note that
statusinformation 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-suffixThat 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 --formatto communicate the current format is very simple. (23bea36) - Add
gix status --ignoredsupport (84c74ff) - Add
gix status --index-worktree-renames(66e87cd) - Fix lints for nightly, and clippy (
f8ce3d0) gix statuswith submodule and rewrite support. (61c002b)- Add
gix is-clean|is-changed(98b3680) gix submodules list --dirty-suffixfor dirty-information (afd20ca)- Add
gix commit describe --dirty-suffix(58231b4)
- Merge pull request #1341 from szepeviktor/typos (
- add
gix clean --patterns-for-entries|-mto 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
-nargument as no-op to make them more compatible. (8959b21) - Add
gix clean --patterns-for-entries|-mto 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 --formatto 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
--tracemode, 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 --formatto 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 connectivityinto justfsckmuch 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
-coptions are given on the command-line. (f9ae1bc) - In
--tracemode, greatly increase message-buffer size. (b230078) - Merge branch 'discover-split-worktree' (
16170d9) - Add
gix free discoverto 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 statusauto-writes changed indices. This prevents expensive operations to re-occour. -
gix status -s/--statisticsto 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 statusauto-writes changed indices. (46e5919)gix status -s/--statisticsto 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 statuswith basic index-worktree comparison -
gix free index from-listandgix index from-treegain--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
einandgixnow share some code via thegitoxidelibrary. This can slightly improve compile times as well, even though it wasn't measured.
- update to the latest
prodashIt makes proper usage ofProgresstypes easier and allows them to be used asdyntraits as well.
- use
dyntrait 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
einandgixnow share some code via thegitoxidelibrary. (d3ac691)
- Both
- Uncategorized
- Merge branch 'reset' (
54a8495) gix statuswith basic index-worktree comparison (f094f71)- Merge branch
dynification (f658fcc) - Use
dyntrait 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-indexand pass skip-hash through for performance.. (713cd59) gix free index from-listandgix index from-treegain--skip-hash. (3ff5ac0)- Add more configuration variables prior to potentially using them; remove
index.skipHash(773b6e3)
- Merge branch 'reset' (
-
gix submodulesubcommand for simple submodule listing and information retrieval -
gix index entries --recurse-subomdulesto also list submodules. -
gix index entrieswith 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-signatureto 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 submodulesubcommand for simple submodule listing and information retrieval (1ccbe16)- Just fmt (
0d258f4) - Merge branch 'submodule-in-gix' (
36f7b78) gix index entries --recurse-subomdulesto 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 entrieswith 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-signatureto do something akin togit ... --show-signature. (cd6cfe4) - Merge branch 'archive-gz' (
c7d9129) - Adapt to changes in
gix-archive(feba76d) - Merge branch 'submodules' (
b629f8a) .gitmodulefile 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
gixlevel. This is merely a debug tool to learn about generation numbers. All commit-graph commands now operate on a repository.
-
gix --traceto 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-infoto provide additional information about the negotiation phase. -
bit revision list --svgto create a visual graph of commits. It's mainly a test of how welllayout-rsperforms.
- Add
clippy::redundant-closure-for-method-callslint
- 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
gitoxidepublishable again (c16b1df) - Merge branch 'gix-corpus' (
5861afb) - Add
corpus --dry-runand--task-sql-suffixand--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 --traceto 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
gitoxideversion 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-infoto provide additional information about the negotiation phase. (096838f)- Make top-level
gixdocs available when usingcargo doc(518159d) bit revision list --svgto 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-callslint (bcad5c2) - Merge branch 'future-dates' (
8d2e6a9) - List commit-graph entries by graph traversal, move commit-graph up to
gixlevel. (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 validateto validate attributes and ignore againstgitas baseline. Use this command to test the entire index for ignored paths and their attributes and usegit check-attrandgit check-ignoreto validate thatgitagrees. Collect all mismatches and print them. -
--statisticsforgix excludes queryWith it one gets some insights into the work done to fulfil the query. -
gix attribute queryas something similar togit check-attrs. -
no-repo index from-listto create an index with empty files from the given list. The list could be created withfind . -type ffor example. - add pro-forma library to allow feature documentation of
gitoxideon 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 validateto validate attributes and ignore againstgitas baseline. (e1fcc7f)- Merge branch 'gix-attribute-query' (
1d70213) --statisticsforgix excludes query(450b232)gix attribute queryas something similar togit check-attrs. (bfdcb14)no-repo index from-listto 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
gitoxideon docs.rs (13a0f1e) - Use unlimited parallelism for
jwalkto have a better comparison. (d67551d)
A maintenance release without user-facing changes, just to fix installation
-
gix index entriesalso prints attributes. -
gix cloneandgix fetchwith controls for shallow repositories. -
ein t trace-pathknow accepts thetrace-filealias.
- printing to stdout for commands that don't show progress is greatly improved.
Previously it would have to lock
stdouton 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 entriesintogix 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 entriesalso prints attributes. (08e8fc2)- Printing to stdout for commands that don't show progress is greatly improved. (
dd14a80) - Turn
gix free index entriesintogix 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 cloneandgix fetchwith 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-pathknow accepts thetrace-filealias. (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 entrieswith 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
timeimproved 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-protocoltogix-protocol(823795a) - Adjust to renaming of
git-featurestogix-features(e2dd68a) - Merge branch 'rename-crates' (
6461c3d) - Rename
git-repositorytogix(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 progressnow 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
sshrelated 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/cloneand add--no-verbose. I found myself always adding (and having to remember to add) the-vflag for long-running operations so these should be able to default to a higher verbosity level.To counter that, there is a new
--no-verboseflag to turn that off. -
add
--strictoption to enforce strict checking of configuration. -
gix odb statsto calculate statistics on the object database. This includes the amount of objects along with a listing of where they are located. -
gix clone --no-tagssupport. This is the same asgit clone --no-tags.
-
open::ReplacementObjectsis removed in favor of two custom git-configuration flags. Now it's possible to map the environment variablesGIT_REPLACE_REF_BASEandGIT_NO_REPLACE_OBJECTSto custom git configuration keys which can also be set, namelygitoxide.odb.replaceObjectsRefBaseandgitoxide.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_MEMORYin 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-hourscommand (4c93de1) - Merge branch 'read-header' (
3d01252) gix odb statsto calculate statistics on the object database. (8c9c243)- Merge branch 'main' into read-split-index (
c57bdde) - Merge branch 'adjustments-for-cargo' (
083909b) gix clone --no-tagssupport. (e2b8c5d)- Update
gix progressto 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/cloneand add--no-verbose. (9814369) - Switch from
attytois-terminal(7304bc1) - Adapt to changes in
git-repository(c4f68bf) - Represent object cache configuration like
GITOXIDE_PACK_CACHE_MEMORYin git-configuration. (becbd8d) - Represent
GIT_(COMMITTER|AUTHOR)_(NAME|EMAIL|DATE)with git configuration. (a4ac9cf) open::ReplacementObjectsis 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
--strictoption 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
reqwestTLS backend configuration easy. We provide the choice ofnative-tlsorrust-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
reqwestTLS 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.connectTimeoutfor more control for git clients (2ab80e4) - Keep track of
no_proxyenvironment 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 hoursallows to specify the amount of worker threads.
-
collect
stderrand 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_modefrom all methods dealing with reference edits. It is now read fromcore.filesRefLockTimeoutaccordingly.
- remove
gix remote --urlin 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
stderrand print it afterwards to avoid intersection with line progress. (3a05328) - Reduce verbosity of
cloneand 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 --urlin favor of determining the intention similar togit fetch(92bbe33) - Support for
--urlfor arbitrary urls when fetching (8c7351c) - Frame for
gix fetch(5b72d27) - Update progress information to include packedRefsTimeout (
fd18320) - Remote
lock_modefrom 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 hoursallows to specify the amount of worker threads. (20259da)
- Uncategorized
- Merge branch 'write-sparse-index' (
ba17db0) - Plan
index.versionfor 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.templateDirtogix 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-difffor a 2x speedup when calculating line changes (296f3b6) - Update
gix progressrecords (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 -swas split into-f|--file-statsand-l|line-stats. That way more information is generated at increasingly high costs.
-
ein tool hours --statto collect additional statistics per author. Note that these are expensive and unconditionally use threads to speed up these computations. -
ein tool hours -bignores 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-mapsub-command. (94c2b78) - Select
gixcommands 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 -bignores 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/--configingix -
gix remote refsto 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-listin favor ofgix remote refsThe 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-listin favor ofgix remote refs(dda9957) - Support for
-c/--configingix(45a30f0) - Refactor (
e0be6e9) - Add support for passing urls directly to bypass all remote repository logic. (
df3cf18) gix remote refsto 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 refswithout 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 likegixcan change options to emulategitbehaviour.
-
--cat-fileflag forgix rev parseto cat instead of resolving. -
gix rev previous-branchessubcommand
-
ein toolstoein toolfor 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-configcan 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 toolstoein toolfor 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 configwith section and sub-section filtering. -
gix configlists 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-patternstogix 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
gixrestructuring (59b95c9) gix configwith section and sub-section filtering. (eda39ec)gix configlists 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 describeIt 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
Arcaroundshould_interruptflag - 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 verifycommand -
ein find --debugto 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
Arcaroundshould_interruptflag (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 --debugto 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.
gixas hub crate for application development with focus on usability without sacrificing any knob to tune performance.- opt-in
asyncforgix-packetline,gix-transportandgix-protocolfor fully async git clients, along with thelight-asyncfeature toggle to build agix pack-receivewith an async client instead of a blocking one. - Statistics for
gix pack-createwith the-s/--statisticsflag 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-tempfilecrategix-lockcrategix-refcrate 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-objectparsing 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-listandpack-receivesubcommands to gix
- rename plumbing sub-command from
index-from-packtopack-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-explodeandpack-index-from-datasub-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 (