1141 lines · 83.4 KB · Markdown
RawDownload

Changelog

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.

0.21.0 (2023-02-09)

Chore

  • upgrade to clap 4.1

New Features

  • 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

Commit Statistics

  • 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

Thanks Clippy

Clippy helped 2 times to make code idiomatic.

Commit Details

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)

0.20.0 (2022-12-22)

This release also fixes compatibility issues that formerly prevented to fetch or clone form https://googlesource.com.

Changed

  • represent GIT_(COMMITTER|AUTHOR)_(NAME|EMAIL|DATE) with git configuration. That way it becomes more obvious where values are coming from.

New Features

  • 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 as git clone --no-tags.

Changed (BREAKING)

  • open::ReplacementObjects is removed in favor of two custom git-configuration flags. Now it's possible to map the environment variables GIT_REPLACE_REF_BASE and GIT_NO_REPLACE_OBJECTS to custom git configuration keys which can also be set, namely gitoxide.odb.replaceObjectsRefBase and gitoxide.odb.noReplaceObjects.

    Along with the possibility of disabling the usage of GIT_ prefixed environment variables one reaches the previous level of control without making object replacement a special case.

New Features (BREAKING)

  • 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.

Commit Statistics

  • 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

Commit Details

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 about remote.<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 to is-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)

0.19.0 (2022-11-21)

New Features

  • Make reqwest TLS backend configuration easy. We provide the choice of native-tls or rust-tls. If none is provided, the user can configure on their on similar to how it's done in git-repository.

    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

Commit Statistics

  • 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

Commit Details

view details
  • Uncategorized
    • Make reqwest TLS backend configuration easy. (3ddbd2d)

0.18.0 (2022-11-17)

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.

Commit Statistics

  • 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

Commit Details

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)

0.17.0 (2022-11-06)

New Features

  • 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.

Bug Fixes

  • 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.

Changed (BREAKING)

  • remote lock_mode from all methods dealing with reference edits. It is now read from core.filesRefLockTimeout accordingly.

New Features (BREAKING)

  • remove gix remote --url in favor of determining the intention similar to git fetch

Commit Statistics

  • 65 commits contributed to the release over the course of 47 calendar days.
  • 47 days passed between releases.
  • 6 commits were understood as conventional.
  • 2 unique issues were worked on: #450, #536

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

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 to git 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)
  • #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 to gix 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)

0.16.0 (2022-09-20)

Changed

  • ein tool hours -s was split into -f|--file-stats and -l|line-stats. That way more information is generated at increasingly high costs.

New Features

  • 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].

Commit Statistics

  • 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

Commit Details

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)
  • #470
    • ein tool hours -s was split into -f|--file-stats and -l|line-stats. (3c7c9a7)
    • upgrade to prodash 20.1 for Progress::counter() feature (0ac4a2c)
    • ein tool hours --stat to collect additional statistics per author. (28c4cae)
  • 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)

0.15.0 (2022-08-24)

Chore

  • uniformize deny attributes

New Features

  • Support for -c/--config in gix
  • 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

Changed (BREAKING)

  • remove gix free remote ref-list in favor of gix 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.

Commit Statistics

  • 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

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #450
    • Support for -c CLI config overrides in gix config. (19c1746)
    • remove gix free remote ref-list in favor of gix remote refs (dda9957)
    • Support for -c/--config in gix (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)
  • 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)

0.14.0 (2022-08-17)

Changed

  • Invert behaviour to open::Options::strict_config(), with lenient being the default. This means API users will get libgit2 behaviour but commands like gix can change options to emulate git behaviour.

New Features

  • --cat-file flag for gix rev parse to cat instead of resolving.
  • gix rev previous-branches subcommand

Changed (BREAKING)

  • ein tools to ein tool for as it's more intuitive

New Features (BREAKING)

  • gix rev resolve --explain

Commit Statistics

  • 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

Commit Details

view details
  • #427
    • --cat-file flag for gix rev parse to cat instead of resolving. (b83f6bd)
    • gix rev resolve --explain (c5846e0)
    • gix rev previous-branches subcommand (e972aad)
    • support for parsing multiple specs in one invocation (84b5448)
    • support overriding cache settings with environment variables in gix (b838202)
  • Uncategorized
    • Merge branch 'core-abbrev-handling' (dbaff13)

Lines 1–500 of 1141.