Opened 3 years ago

Closed 3 years ago

#15754 closed enhancement (fixed)

git-2.34.0

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

Description

New minor version.

Change History (3)

comment:1 by Bruce Dubbs, 3 years ago

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

comment:2 by Bruce Dubbs, 3 years ago

Git 2.34 Release Notes

Backward compatibility notes

  • The "--preserve-merges" option of "git rebase" has been removed.

UI, Workflows & Features

  • Pathname expansion (like "~username/") learned a way to specify a location relative to Git installation (e.g. its $sharedir which is $(prefix)/share), with "%(prefix)".
  • The ort strategy is used instead of recursive as the default merge strategy.
  • The userdiff pattern for "java" language has been updated.
  • "git rebase" by default skips changes that are equivalent to commits that are already in the history the branch is rebased onto; give messages when this happens to let the users be aware of skipped commits, and also teach them how to tell "rebase" to keep duplicated changes.
  • The advice message that "git cherry-pick" gives when it asks conflicted replay of a commit to be resolved by the end user has been updated.
  • After "git clone --recurse-submodules", all submodules are cloned but they are not by default recursed into by other commands. With submodule.stickyRecursiveClone configuration set, submodule.recurse configuration is set to true in a repository created by "clone" with "--recurse-submodules" option.
  • The logic for auto-correction of misspelt subcommands learned to go interactive when the help.autocorrect configuration variable is set to 'prompt'.
  • "git maintenance" scheduler learned to use systemd timers as a possible backend.
  • "git diff --submodule=diff" showed failure from run_command() when trying to run diff inside a submodule, when the user manually removes the submodule directory.
  • "git bundle unbundle" learned to show progress display.
  • In cone mode, the sparse-index code path learned to remove ignored files (like build artifacts) outside the sparse cone, allowing the entire directory outside the sparse cone to be removed, which is especially useful when the sparse patterns change.
  • Taking advantage of the CGI interface, http-backend has been updated to enable protocol v2 automatically when the other side asks for it.
  • The credential-cache helper has been adjusted to Windows.
  • The error in "git help no-such-git-command" is handled better.
  • The unicode character width table (used for output alignment) has been updated.
  • The ref iteration code used to optionally allow dangling refs to be shown, which has been tightened up.
  • "git add", "git mv", and "git rm" have been adjusted to avoid updating paths outside of the sparse-checkout definition unless the user specifies a "--sparse" option.
  • "git repack" has been taught to generate multi-pack reachability bitmaps.
  • "git fsck" has been taught to report mismatch between expected and actual types of an object better.
  • In addition to GnuPG, ssh public crypto can be used for object and push-cert signing. Note that this feature cannot be used with ssh-keygen from OpenSSH 8.7, whose support for it is broken. Avoid using it unless you update to OpenSSH 8.8.
  • "git log --grep=string --author=name" learns to highlight hits just like "git grep string" does.

Performance, Internal Implementation, Development Support etc.

  • "git bisect" spawned "git show-branch" only to pretty-print the title of the commit after checking out the next version to be tested; this has been rewritten in C.
  • "git add" can work better with the sparse index.
  • Support for ancient versions of cURL library (pre 7.19.4) has been dropped.
  • A handful of tests that assumed implementation details of files backend for refs have been cleaned up.
  • trace2 logs learned to show parent process name to see in what context Git was invoked.
  • Loading of ref tips to prepare for common ancestry negotiation in "git fetch-pack" has been optimized by taking advantage of the commit graph when available.
  • Remind developers that the userdiff patterns should be kept simple and permissive, assuming that the contents they apply are always syntactically correct.
  • The current implementation of GIT_TEST_FAIL_PREREQS is broken in that checking for the lack of a prerequisite would not work. Avoid the use of "if ! test_have_prereq X" in a test script.
  • The revision traversal API has been optimized by taking advantage of the commit-graph, when available, to determine if a commit is reachable from any of the existing refs.
  • "git fetch --quiet" optimization to avoid useless computation of info that will never be displayed.
  • Callers from older advice_config[] based API has been updated to use the newer advice_if_enabled() and advice_enabled() API.
  • Teach "test_pause" and "debug" helpers to allow using the HOME and TERM environment variables the user usually uses.
  • "make INSTALL_STRIP=-s install" allows the installation step to use "install -s" to strip the binaries as they get installed.
  • Code that handles large number of refs in the "git fetch" code path has been optimized.
  • The reachability bitmap file used to be generated only for a single pack, but now we've learned to generate bitmaps for history that span across multiple packfiles.
  • The code to make "git grep" recurse into submodules has been updated to migrate away from the "add submodule's object store as an alternate object store" mechanism (which is suboptimal).
  • The tracing of process ancestry information has been enhanced.
  • Reduce number of write(2) system calls while sending the ref advertisement.
  • Update the build procedure to use the "-pedantic" build when DEVELOPER makefile macro is in effect.
  • Large part of "git submodule add" gets rewritten in C.
  • The run-command API has been updated so that the callers can easily ask the file descriptors open for packfiles to be closed immediately before spawning commands that may trigger auto-gc.
  • An oddball OPTION_ARGUMENT feature has been removed from the parse-options API.
  • The mergesort implementation used to sort linked list has been optimized.
  • Remove external declaration of functions that no longer exist.
  • "git multi-pack-index write --bitmap" learns to propagate the hashcache from original bitmap to resulting bitmap.
  • CI learns to run the leak sanitizer builds.
  • "git grep --recurse-submodules" takes trees and blobs from the submodule repository, but the textconv settings when processing a blob from the submodule is not taken from the submodule repository. A test is added to demonstrate the issue, without fixing it.
  • Teach "git help -c" into helping the command line completion of configuration variables.
  • When "git cmd -h" shows more than one line of usage text (e.g. the cmd subcommand may take sub-sub-command), parse-options API learned to align these lines, even across i18n/l10n.
  • Prevent "make sparse" from running for the source files that haven't been modified.
  • The code path to write a new version of .midx multi-pack index files has learned to release the mmaped memory holding the current version of .midx before removing them from the disk, as some platforms do not allow removal of a file that still has mapping.
  • A new feature has been added to abort early in the test framework.

comment:3 by Bruce Dubbs, 3 years ago

Resolution: fixed
Status: assignedclosed

Fixed at commit 7fa5ff6cd3161e8012649fbfdbaa09f9309a1fe7

Package updates.
    Update to git-2.34.0.
    Update to libuninameslist-20211114.
    Update to sg3_utils-1.47.
    Update to pipewire-0.3.40.
    Update to curl-7.80.0.
    Update to mlt-7.2.0.
Note: See TracTickets for help on using tickets.