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