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 variable Elijah 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 files Eric Sunshine (1): git-add.txt: add missing short option -A to synopsis Illia Bobyr (1): rebase: clarify --reschedule-failed-exec default Jeff Hostetler (3): trace2: fix signature of trace2_def_param() macro t0211: test URL redacting in PERF format t0212: test URL redacting in EVENT format Jeff 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 atomically Jiang 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 messages Johannes 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 default Josh Brobst (1): builtin/reflog.c: fix dry-run option short name Josh 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-ASCII Julian Prein (1): hooks--pre-commit: detect non-ASCII when renaming Junio 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.1 Linus 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_end Maarten van der Schrieck (1): Documentation: fix statement about rebase.instructionFormat Marcel Krause (1): doc: make the gitfile syntax easier to discover Michael Lohmann (2): Documentation/git-merge.txt: fix reference to synopsis Documentation/git-merge.txt: use backticks for command wrapping Patrick 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 expectations René 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 sizes Rubén Justo (1): status: fix branch shown when not only bisecting Shreyansh Paliwal (1): test-lib-functions.sh: fix test_grep fail message wording Stan Hu (2): completion: refactor existence checks for pseudorefs completion: support pseudoref existence checks for reftables Todd Zullinger (2): perl: bump the required Perl version to 5.8.1 from 5.8.0 send-email: avoid duplicate specification warnings