[ANNOUNCE] Git v2.43.1
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 9, 2024, 17:24 UTC
- Message-ID
- <xmqqttmhh7ow.fsf@gitster.g>
The latest maintenance release Git v2.43.1 is now available at the usual places. This is only to flush the accumulated fixes on the master front down to the maintenance track.
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/
The following public repositories all have a copy of the 'v2.43.1' tag and the 'maint' branch that the tag points at:
url = https://git.kernel.org/pub/scm/git/git url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://github.com/gitster/git
----------------------------------------------------------------
Git 2.43.1 Release Notes ========================
There is nothing exciting to see here. Relative to Git 2.43, this release contains the fixes that have already been merged to the 'master' branch of the development towards the next major release.
Fixes since Git 2.43.0 ----------------------
* The way CI testing used "prove" could lead to running the test suite twice needlessly, which has been corrected.
* Newer versions of Getopt::Long started giving warnings against our (ab)use of it in "git send-email". Bump the minimum version requirement for Perl to 5.8.1 (from September 2002) to allow simplifying our implementation.
* Earlier we stopped relying on commit-graph that (still) records information about commits that are lost from the object store, which has negative performance implications. The default has been flipped to disable this pessimization.
* Stale URLs have been updated to their current counterparts (or archive.org) and HTTP links are replaced with working HTTPS links.
* trace2 streams used to record the URLs that potentially embed authentication material, which has been corrected.
* The sample pre-commit hook that tries to catch introduction of new paths that use potentially non-portable characters did not notice an existing path getting renamed to such a problematic path, when rename detection was enabled.
* The command line parser for the "log" family of commands was too loose when parsing certain numbers, e.g., silently ignoring the extra 'q' in "git log -n 1q" without complaining, which has been tightened up.
* "git $cmd --end-of-options --rev -- --path" for some $cmd failed to interpret "--rev" as a rev, and "--path" as a path. This was fixed for many programs like "reset" and "checkout".
* "git bisect reset" has been taught to clean up state files and refs even when BISECT_START file is gone.
* Some codepaths did not correctly parse configuration variables specified with valueless "true", which has been corrected.
* Code clean-up for sanity checking of command line options for "git show-ref".
* The code to parse the From e-mail header has been updated to avoid recursion.
* "git fetch --atomic" issued an unnecessary empty error message, which has been corrected.
* Command line completion script (in contrib/) learned to work better with the reftable backend.
* "git status" is taught to show both the branch being bisected and being rebased when both are in effect at the same time. cf. <xmqqil76kyov.fsf@gitster.g>
* "git archive --list extra garbage" silently ignored excess command line parameters, which has been corrected.
* "git sparse-checkout set" added default patterns even when the patterns are being fed from the standard input, which has been corrected.
* Unlike other environment variables that took the usual true/false/yes/no as well as 0/1, GIT_FLUSH only understood 0/1, which has been corrected.
* Clearing in-core repository (happens during e.g., "git fetch --recurse-submodules" with commit graph enabled) made in-core commit object in an inconsistent state by discarding the necessary data from commit-graph too early, which has been corrected.
Also contains various documentation updates, code clean-ups and minor fixups.
----------------------------------------------------------------
Changes since v2.43.0 are as follows:
Chandra Pratap (2):
sideband.c: remove redundant 'NEEDSWORK' tag
write-or-die: make GIT_FLUSH a Boolean environment variableElijah Newren (12):
treewide: remove unnecessary includes from header files
treewide: remove unnecessary includes in source files
archive.h: remove unnecessary include
blame.h: remove unnecessary includes
fsmonitor--daemon.h: remove unnecessary includes
http.h: remove unnecessary include
line-log.h: remove unnecessary include
pkt-line.h: remove unnecessary include
submodule-config.h: remove unnecessary include
trace2/tr2_tls.h: remove unnecessary include
treewide: add direct includes currently only pulled in transitively
treewide: remove unnecessary includes in source filesEric Sunshine (1):
git-add.txt: add missing short option -A to synopsisIllia Bobyr (1):
rebase: clarify --reschedule-failed-exec defaultJeff Hostetler (3):
trace2: fix signature of trace2_def_param() macro
t0211: test URL redacting in PERF format
t0212: test URL redacting in EVENT formatJeff King (24):
parse-options: decouple "--end-of-options" and "--"
bisect: always clean on reset
config: handle NULL value when parsing non-bools
setup: handle NULL value when parsing extensions
trace2: handle NULL values in tr2_sysenv config callback
help: handle NULL value for alias.* config
submodule: handle NULL value when parsing submodule.*.branch
trailer: handle NULL value when parsing trailer-specific config
fsck: handle NULL value when parsing message config
config: reject bogus values for core.checkstat
git_xmerge_config(): prefer error() to die()
imap-send: don't use git_die_config() inside callback
config: use config_error_nonbool() instead of custom messages
diff: give more detailed messages for bogus diff.* config
config: use git_config_string() for core.checkRoundTripEncoding
push: drop confusing configset/callback redundancy
gpg-interface: drop pointless config_error_nonbool() checks
sequencer: simplify away extra git_config_string() call
mailinfo: fix out-of-bounds memory reads in unquote_quoted_pair()
t5100: make rfc822 comment test more careful
mailinfo: avoid recursion when unquoting From headers
t1006: add tests for %(objectsize:disk)
commit-graph: retain commit slab when closing NULL commit_graph
index-pack: spawn threads atomicallyJiang Xin (5):
t5574: test porcelain output of atomic fetch
fetch: no redundant error message for atomic fetch
test-pkt-line: add option parser for unpack-sideband
pkt-line: memorize sideband fragment in reader
pkt-line: do not chomp newlines for sideband messagesJohannes Schindelin (3):
ci: avoid running the test suite _twice_
packfile.c: fix a typo in `each_file_in_pack_dir_fn()`'s declaration
trace2: redact passwords from https:// URLs by defaultJosh Brobst (1):
builtin/reflog.c: fix dry-run option short nameJosh Soref (13):
doc: update links to current pages
doc: switch links to https
doc: update links for andre-simon.de
doc: refer to internet archive
CodingGuidelines: move period inside parentheses
CodingGuidelines: write punctuation marks
SubmittingPatches: drop ref to "What's in git.git"
SubmittingPatches: discourage new trailers
SubmittingPatches: update extra tags list
SubmittingPatches: provide tag naming advice
SubmittingPatches: clarify GitHub visual
SubmittingPatches: clarify GitHub artifact format
SubmittingPatches: hyphenate non-ASCIIJulian Prein (1):
hooks--pre-commit: detect non-ASCII when renamingJunio C Hamano (13):
orphan/unborn: add to the glossary and use them consistently
orphan/unborn: fix use of 'orphan' in end-user facing messages
revision: parse integer arguments to --max-count, --skip, etc., more carefully
git.txt: HEAD is not that special
git-bisect.txt: BISECT_HEAD is not that special
refs.h: HEAD is not that special
docs: AUTO_MERGE is not that special
docs: MERGE_AUTOSTASH is not that special
doc: format.notes specify a ref under refs/notes/ hierarchy
remote.h: retire CAS_OPT_NAME
archive: "--list" does not take further options
sparse-checkout: use default patterns for 'set' only !stdin
Git 2.43.1Linus Arver (3):
commit: ignore_non_trailer computes number of bytes to ignore
trailer: find the end of the log message
trailer: use offsets for trailer_start/trailer_endMaarten van der Schrieck (1):
Documentation: fix statement about rebase.instructionFormatMarcel Krause (1):
doc: make the gitfile syntax easier to discoverMichael Lohmann (2):
Documentation/git-merge.txt: fix reference to synopsis
Documentation/git-merge.txt: use backticks for command wrappingPatrick Steinhardt (31):
ci: reorder definitions for grouping functions
ci: make grouping setup more generic
ci: group installation of Docker dependencies
ci: split out logic to set up failed test artifacts
ci: unify setup of some environment variables
ci: squelch warnings when testing with unusable Git repo
ci: install test dependencies for linux-musl
ci: add support for GitLab CI
commit-graph: disable GIT_COMMIT_GRAPH_PARANOIA by default
t0410: mark tests to require the reffiles backend
t1400: split up generic reflog tests from the reffile-specific ones
t1401: stop treating FETCH_HEAD as real reference
t1410: use test-tool to create empty reflog
t1417: make `reflog --updateref` tests backend agnostic
t3310: stop checking for reference existence via `test -f`
t4013: simplify magic parsing and drop "failure"
t5401: speed up creation of many branches
t5551: stop writing packed-refs directly
t6301: write invalid object ID via `test-tool ref-store`
reftable: wrap EXPECT macros in do/while
reftable: handle interrupted reads
reftable: handle interrupted writes
reftable/stack: verify that `reftable_stack_add()` uses auto-compaction
reftable/stack: perform auto-compaction with transactional interface
reftable/stack: reuse buffers when reloading stack
reftable/stack: fix stale lock when dying
reftable/stack: fix use of unseeded randomness
reftable/merged: reuse buffer to compute record keys
reftable/block: introduce macro to initialize `struct block_iter`
reftable/block: reuse buffer to compute record keys
tests: adjust whitespace in chainlint expectationsRené Scharfe (14):
column: release strbuf and string_list after use
i18n: factorize even more 'incompatible options' messages
push: use die_for_incompatible_opt4() for - -delete/--tags/--all/--mirror
repack: use die_for_incompatible_opt3() for -A/-k/--cruft
revision: use die_for_incompatible_opt3() for - -graph/--reverse/--walk-reflogs
revision, rev-parse: factorize incompatibility messages about - -exclude-hidden
clean: factorize incompatibility message
worktree: standardize incompatibility messages
worktree: simplify incompatibility message for --orphan and commit-ish
show-ref: use die_for_incompatible_opt3()
t6300: avoid hard-coding object sizes
rebase: use strvec_pushf() for format-patch revisions
fast-import: use mem_pool_calloc()
t1006: prefer shell loop to awk for packed object sizesRubén Justo (1):
status: fix branch shown when not only bisectingShreyansh Paliwal (1):
test-lib-functions.sh: fix test_grep fail message wordingStan Hu (2):
completion: refactor existence checks for pseudorefs
completion: support pseudoref existence checks for reftablesTodd Zullinger (2):
perl: bump the required Perl version to 5.8.1 from 5.8.0
send-email: avoid duplicate specification warnings