#17147 closed enhancement (fixed)

git-2.38.0

Reported by: Bruce Dubbs Owned by: Bruce Dubbs
Priority: normal Milestone: 11.3
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New minor version.

Change History (3)

comment:1 by Bruce Dubbs, 18 months ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:2 by Bruce Dubbs, 18 months ago

Git v2.38 Release Notes

UI, Workflows & Features

  • "git remote show [-n] frotz" now pays attention to negative pathspec.
  • "git push" sometimes performs poorly when reachability bitmaps are used, even in a repository where other operations are helped by bitmaps. The push.useBitmaps configuration variable is introduced to allow disabling use of reachability bitmaps only for "git push".
  • "git grep -m<max-hits>" is a way to limit the hits shown per file.
  • "git merge-tree" learned a new mode where it takes two commits and computes a tree that would result in the merge commit, if the histories leading to these two commits were to be merged.
  • "git mv A B" in a sparsely populated working tree can be asked to move a path between directories that are "in cone" (i.e. expected to be materialized in the working tree) and "out of cone" (i.e. expected to be hidden). The handling of such cases has been improved.
  • Earlier, HTTP transport clients learned to tell the server side what locale they are in by sending Accept-Language HTTP header, but this was done only for some requests but not others.
  • Introduce a safe.barerepository configuration variable that allows users to forbid discovery of bare repositories.
  • Various messages that come from the pack-bitmap codepaths have been tweaked.
  • "git rebase -i" learns to update branches whose tip appear in the rebased range with "--update-refs" option.
  • "git ls-files" learns the "--format" option to tweak its output.
  • "git cat-file" learned an option to use the mailmap when showing commit and tag objects.
  • When "git merge" finds that it cannot perform a merge, it should restore the working tree to the state before the command was initiated, but in some corner cases it didn't.
  • Operating modes like "--batch" of "git cat-file" command learned to take NUL-terminated input, instead of one-item-per-line.
  • "git rm" has become more aware of the sparse-index feature.
  • "git rev-list --disk-usage" learned to take an optional value "human" to show the reported value in human-readable format, like "3.40MiB".
  • The "diagnose" feature to create a zip archive for diagnostic material has been lifted from "scalar" and made into a feature of "git bugreport".
  • The namespaces used by "log --decorate" from "refs/" hierarchy by default has been tightened.
  • "git rev-list --ancestry-path=C A..B" is a natural extension of "git rev-list A..B"; instead of choosing a subset of A..B to those that have ancestry relationship with A, it lets a subset with ancestry relationship with C.
  • "scalar" now enables built-in fsmonitor on enlisted repositories, when able.
  • The bash prompt (in contrib/) learned to optionally indicate when the index is unmerged.
  • "git clone" command learned the "--bundle-uri" option to coordinate with hosting sites the use of pre-prepared bundle files.
  • "git range-diff" learned to honor pathspec argument if given.
  • "git format-patch --from=<ident>" can be told to add an in-body "From:" line even for commits that are authored by the given <ident> with "--force-in-body-from" option.
  • The built-in fsmonitor refuses to work on a network mounted repositories; a configuration knob for users to override this has been introduced.
  • The "scalar" addition from Microsoft is now part of the core Git installation.

Performance, Internal Implementation, Development Support etc.

  • Collection of what is referenced by objects in promisor packs have been optimized to inspect these objects in the in-pack order.
  • Introduce a helper to see if a branch is already being worked on (hence should not be newly checked out in a working tree), which performs much better than the existing find_shared_symref() to replace many uses of the latter.
  • Teach "git archive" to (optionally and then by default) avoid spawning an external "gzip" process when creating ".tar.gz" (and ".tgz") archives.
  • Allow large objects read from a packstream to be streamed into a loose object file straight, without having to keep it in-core as a whole.
  • Further preparation to turn git-submodule.sh into a builtin continues.
  • Apply Coccinelle rule to turn raw memmove() into MOVE_ARRAY() cpp macro, which would improve maintainability and readability.
  • Teach "make all" to build gitweb as well.
  • Tweak tests so that they still work when the "git init" template did not create .git/info directory.
  • Add Coccinelle rules to detect the pattern of initializing and then finalizing a structure without using it in between at all, which happens after code restructuring and the compilers fail to recognize as an unused variable.
  • The code to convert between GPG trust level strings and internal constants we use to represent them have been cleaned up.
  • Support for libnettle as SHA256 implementation has been added.
  • The way "git multi-pack" uses parse-options API has been improved.
  • A Coccinelle rule (in contrib/) to encourage use of COPY_ARRAY macro has been improved.
  • API tweak to make it easier to run fuzz testing on commit-graph parser.
  • Omit fsync-related trace2 entries when their values are all zero.
  • The codepath to write multi-pack index has been taught to release a large chunk of memory that holds an array of objects in the packs, as soon as it is done with the array, to reduce memory consumption.
  • Add a level of redirection to array allocation API in xdiff part, to make it easier to share with the libgit2 project.
  • "git fetch" client logs the partial clone filter used in the trace2 output.
  • The "bundle URI" design gets documented.
  • The common ancestor negotiation exchange during a "git fetch" session now leaves trace log.
  • Test portability improvements.
  • The "subcommand" mode is introduced to parse-options API and update the command line parser of Git commands with subcommands.
  • The pack bitmap file gained a bitmap-lookup table to speed up locating the necessary bitmap for a given commit.
  • The assembly version of SHA-1 implementation for PPC has been removed.
  • The server side that responds to "git fetch" and "git clone" request has been optimized by allowing it to send objects in its object store without recomputing and validating the object names.
  • Annotate function parameters that are not used (but cannot be removed for structural reasons), to prepare us to later compile with -Wunused warning turned on.
  • Share the text used to explain configuration variables used by "git <subcmd>" in "git help <subcmd>" with the text from "git help config".
  • "git mv A B" in a sparsely populated working tree can be asked to move a path from a directory that is "in cone" to another directory that is "out of cone". Handling of such a case has been improved.
  • The chainlint script for our tests has been revamped.

comment:3 by Bruce Dubbs, 18 months ago

Resolution: fixed
Status: assignedclosed

Fixed at commits

d985f0b3af Update to git-2.38.0.
f9ed4f2223 Update to icewm-3.0.0.
fd6f0d21e0 Update to openssh-9.1p1 snd ssh-askpass-9.1p1.
47184ac9df Update to SDL2-2.24.1.
cf379d7c98 Update to xkeyboard-config-2.37.
3dd64c1825 Update to Net-DNS-1.35 (Perl module).
Note: See TracTickets for help on using tickets.