{"thread":{"id":"59772","subject":"[ANNOUNCE] Git v2.41.0-rc1","startedAt":"2023-05-19T17:39:25Z","lastAt":"2023-05-24T20:17:14Z","messageCount":4,"participants":["Junio C Hamano","rsbecker@nexbridge.com","Øystein Walle"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"477602","messageId":"xmqqedncqkzf.fsf@gitster.g","threadId":"59772","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.41.0-rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-05-19T17:39:16Z","receivedAt":"2023-05-19T17:39:25Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"A release candidate Git v2.41.0-rc1 is now available for testing at\nthe usual places.  It is comprised of 516 non-merge commits since\nv2.40.0, contributed by 79 people, 24 of which are new faces [*].\n\nThe tarballs are found at:\n\n    https://www.kernel.org/pub/software/scm/git/testing/\n\nThe following public repositories all have a copy of the\n'v2.41.0-rc1' tag and the 'master' 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\nNew contributors whose contributions weren't in v2.40.0 are as\nfollows.  Welcome to the Git development community!\n\n  Adam Johnson, André Baptista, Andy Koppe, Clement Mabileau,\n  Cristian Le, Daniel Watson, D. Ben Knoble, Douglas Anderson,\n  Edwin Kofler, Jonas Haag, Jouke Witteveen, Matthias Görgens,\n  Maxim Cournoyer, Michael Henry, Michael Strawbridge, Nico\n  Rieck, Raghul Nanth A, Rolf Eike Beer, Shuqi Liang, Siddharth\n  Singh, Stanislav Malishevskiy, Stephane Odul, Vítor Pinho,\n  and Xin Xing.\n\nReturning contributors who helped this release are as follows.\nThanks for your continued support.\n\n  Ævar Arnfjörð Bjarmason, Alex Henrie, Andreas Schwab,\n  Andrei Rybak, Beat Bolli, brian m. carlson, Christian Hesse,\n  Derrick Stolee, Elijah Newren, Emily Shaffer, Eric Sunshine,\n  Eric Wong, Fangyi Zhou, Felipe Contreras, Glen Choo, Han Xin,\n  Jacob Keller, Jeff King, Jiang Xin, Joakim Petersen, Johannes\n  Schindelin, Johannes Sixt, John Cai, John Keeping, Josh Soref,\n  Junio C Hamano, Kristoffer Haugsbakk, Linus Arver, Linus\n  Torvalds, Martin Ågren, Mathias Krause, Matthew John Cheetham,\n  M Hickford, Michael J Gruber, Mike Hommey, Oswald Buddenhagen,\n  Øystein Walle, Patrick Steinhardt, Paul Eggert, Philippe Blain,\n  Phillip Wood, Randall S. Becker, René Scharfe, Robin Jarry,\n  Rubén Justo, RyotaK, Sohom Datta, SZEDER Gábor, Tao Klerks,\n  Taylor Blau, Teng Long, Todd Zullinger, Torsten Bögershausen,\n  William Sprent, and ZheNing Hu.\n\n[*] We are counting not just the authorship contribution but issue\n    reporting, mentoring, helping and reviewing that are recorded in\n    the commit trailers.\n\n----------------------------------------------------------------\n\nGit v2.41 Release Notes (draft)\n===============================\n\nUI, Workflows & Features\n\n * Allow information carried on the WWW-Authenticate header to be\n   passed to the credential helpers.\n\n * A new \"fetch.hideRefs\" option can be used to exclude specified refs\n   from \"rev-list --objects --stdin --not --all\" traversal for\n   checking object connectivity, most useful when there are many\n   unrelated histories in a single repository.\n\n * \"git push\" has been taught to allow deletion of refs with one-level\n   names to help repairing a repository who acquired such a ref by\n   mistake.  In general, we don't encourage use of such a ref, and\n   creation or update to such a ref is rejected as before.\n\n * Allow \"git bisect reset\" to check out the original branch when the\n   branch is already checked out in a different worktree linked to the\n   same repository.\n\n * A few subcommands have been taught to stop users from working on a\n   branch that is being used in another worktree linked to the same\n   repository.\n\n * \"git format-patch\" learned to write a log-message only output file\n   for empty commits.\n\n * \"git format-patch\" honors the src/dst prefixes set to nonstandard\n   values with configuration variables like \"diff.noprefix\", causing\n   receiving end of the patch that expects the standard -p1 format to\n   break.  \"format-patch\" has been taught to ignore end-user configuration\n   and always use the standard prefixes.\n\n   This is a backward compatibility breaking change.\n\n * Lift the limitation that colored prompts can only be used with\n   PROMPT_COMMAND mode.\n\n * \"git blame --contents=<file> <rev> -- <path>\" used to be forbidden,\n   but now it finds the origins of lines starting at <file> contents\n   through the history that leads to <rev>.\n\n * \"git pack-redundant\" gave a warning when run, as the command has\n   outlived its usefulness long ago and is nominated for future\n   removal.  Now we escalate to give an error.\n\n * \"git clone\" from an empty repository learned to propagate the\n   choice of the hash algorithm from the source repository to the\n   newly created repository over any one of the v0/v1/v2 protocol.\n\n * \"git mergetool\" and \"git difftool\" learns a new configuration\n   guiDefault to optionally favor configured guitool over non-gui-tool\n   automatically when $DISPLAY is set.\n\n * \"git branch -d origin/master\" would say \"no such branch\", but it is\n   likely a missed \"-r\" if refs/remotes/origin/master exists.  The\n   command has been taught to give such a hint in its error message.\n\n * Clean-up of the code path that deals with merge strategy option\n   handling in \"git rebase\".\n\n * \"git clone --local\" stops copying from an original repository that\n   has symbolic links inside its $GIT_DIR; an error message when that\n   happens has been updated.\n\n * \"git branch --format=...\" and \"git format-patch --format=...\"\n   learns \"--omit-empty\" to hide refs that whose formatting result\n   becomes an empty string from the output.\n\n * The sendemail-validate validate hook learned to pass the total\n   number of input files and where in the sequence each invocation is\n   via environment variables.\n\n * When \"gc\" needs to retain unreachable objects, packing them into\n   cruft packs (instead of exploding them into loose object files) has\n   been offered as a more efficient option for some time.  Now the use\n   of cruft packs has been made the default and no longer considered\n   an experimental feature.\n\n * The output given by \"git blame\" that attributes a line to contents\n   taken from the file specified by the \"--contents\" option shows it\n   differently from a line attributed to the working tree file.\n\n * \"git send-email\" learned to give the e-mail headers to the validate\n   hook by passing an extra argument from the command line.\n\n * The credential subsystem learns to help OAuth framework.\n\n * The titles of manual pages used to be chomped at an unreasonably\n   short limit, which has been removed.\n\n * Error messages given when working on an unborn branch that is\n   checked out in another worktree have been improved.\n\n * The documentation was misleading about the interaction between\n   GIT_DEFAULT_HASH and \"git clone\", which has been clarified to\n   stress that the variable is to be ignored by the command.\n\n * \"git send-email\" learned \"--header-cmd=<cmd>\" that can inject\n   arbitrary e-mail header lines to the outgoing messages.\n\n * \"git fsck\" learned to detect bit-flip breakages in the reachability\n   bitmap files.\n\n * The \"--stdin\" option of \"git name-rev\" has been replaced with\n   the \"--annotate-stdin\" option more than a year ago.  We stop\n   advertising it in the \"git name-rev -h\" output.\n\n * \"git push --all\" gained an alias \"git push --branches\".\n\n * \"git fetch\" learned the \"--porcelain\" option that emits what it did\n   in a machine-parseable format.\n\n * \"git --attr-source=<tree> cmd $args\" is a new way to have any\n   command to read attributes not from the working tree but from the\n   given tree object.\n\n\nPerformance, Internal Implementation, Development Support etc.\n\n * Code clean-up to clarify directory traversal API.\n\n * Code clean-up to clarify the rule that \"git-compat-util.h\" must be\n   the first to be included.\n\n * More work towards -Wunused.\n\n * Instead of forcing each command to choose to honor GPG related\n   configuration variables, make the subsystem lazily initialize\n   itself.\n\n * Remove workaround for ancient versions of DocBook to make it work\n   correctly with groff, which has not been necessary since docbook\n   1.76 from 2010.\n\n * Code clean-up to include and/or uninclude parse-options.h file as\n   needed.\n\n * The code path that reports what \"git fetch\" did to each ref has\n   been cleaned up.\n\n * Assorted config API updates.\n\n * A few configuration variables to tell the cURL library that\n   different types of ssl-cert and ssl-key are in use have been added.\n\n * Split key function and data structure definitions out of cache.h to\n   new header files and adjust the users.\n\n * \"git fetch --all\" does not have to download and handle the same\n   bundleURI over and over, which has been corrected.\n\n * \"git sparse-checkout\" command learns a debugging aid for the sparse\n   rule definitions.\n\n * \"git write-tree\" learns to work better with sparse-index.\n\n * The on-disk reverse index that allows mapping from the pack offset\n   to the object name for the object stored at the offset has been\n   enabled by default.\n\n * \"git fsck\" learned to validate the on-disk pack reverse index files.\n\n * strtok() and strtok_r() are banned in this codebase.\n\n * The detect-compilers script to help auto-tweaking the build system\n   had trouble working with compilers whose version number has extra\n   suffixes.  The script has been taught that certain suffixes (like\n   \"-win32\" in \"gcc 10-win32\") can be safely stripped as they share\n   the same features and bugs with the version without the suffix.\n\n * ctype tests have been taught to test EOF, too.\n\n * The implementation of credential helpers used fgets() over fixed\n   size buffers to read protocol messages, causing the remainder of\n   the folded long line to trigger unexpected behaviour, which has\n   been corrected.\n\n * The implementation of the default \"negotiator\", used to find common\n   ancestor over the network for object tranfer, used to be recursive;\n   it was updated to be iterative to conserve stackspace usage.\n\n * Our custom callout formatter is no longer used in the documentation\n   formatting toolchain, as the upstream default ones give better\n   output these days.\n\n * The tracing mechanism learned to notice and report when\n   auto-discovered bare repositories are being used, as allowing so\n   without explicitly stating the user intends to do so (with setting\n   GIT_DIR for example) can be used with social engineering as an\n   attack vector.\n\n * \"git diff-files\" learned not to expand sparse-index unless needed.\n\n\nFixes since v2.40\n-----------------\n\n * \"git fsck\" learned to check the index files in other worktrees,\n   just like \"git gc\" honors them as anchoring points.\n   (merge 8d3e7eac52 jk/fsck-indices-in-worktrees later to maint).\n\n * Fix a segfaulting loop.  The function and its caller may need\n   further clean-up.\n   (merge c5773dc078 ew/commit-reach-clean-up-flags-fix later to maint).\n\n * \"git restore\" supports options like \"--ours\" that are only\n   meaningful during a conflicted merge, but these options are only\n   meaningful when updating the working tree files.  These options are\n   marked to be incompatible when both \"--staged\" and \"--worktree\" are\n   in effect.\n   (merge ee8a88826a ak/restore-both-incompatible-with-conflicts later to maint).\n\n * Simplify UI to control progress meter given by \"git bundle\" command.\n   (merge 8b95521edb jk/bundle-progress later to maint).\n\n * \"git bundle\" learned that \"-\" is a common way to say that the input\n   comes from the standard input and/or the output goes to the\n   standard output.  It used to work only for output and only from the\n   root level of the working tree.\n   (merge 0bbe10313e jk/bundle-use-dash-for-stdfiles later to maint).\n\n * Once we start running, we assumed that the list of alternate object\n   databases would never change.  Hook into the machinery used to\n   update the list of packfiles during runtime to update this list as\n   well.\n   (merge e2d003dbed ds/reprepare-alternates-when-repreparing-packfiles later to maint).\n\n * The code to parse \"git rebase -X<opt>\" was not prepared to see an\n   unparsable option string, which has been corrected.\n   (merge 15a4cc912e ab/fix-strategy-opts-parsing later to maint).\n\n * \"git add -p\" while the index is unmerged sometimes failed to parse\n   the diff output it internally produces and died, which has been\n   corrected.\n   (merge 28d1122f9c jk/add-p-unmerged-fix later to maint).\n\n * Fix for a \"ls-files --format=\"%(path)\" that produced nonsense\n   output, which was a bug in 2.38.\n   (merge cfb62dd006 aj/ls-files-format-fix later to maint).\n\n * \"git receive-pack\" that responds to \"git push\" requests failed to\n   clean a stale lockfile when killed in the middle, which has been\n   corrected.\n   (merge c55c30669c ps/receive-pack-unlock-before-die later to maint).\n\n * \"git rev-parse --quiet foo@{u}\", or anything that asks @{u} to be\n   parsed with GET_OID_QUIETLY option, did not quietly fail, which has\n   been corrected.\n   (merge dfbfdc521d fc/oid-quietly-parse-upstream later to maint).\n\n * Transports that do not support protocol v2 did not correctly fall\n   back to protocol v0 under certain conditions, which has been\n   corrected.\n   (merge eaa0fd6584 jk/fix-proto-downgrade-to-v0 later to maint).\n\n * time(2) on glib 2.31+, especially on Linux, goes out of sync with\n   higher resolution timers used for gettimeofday(2) and by the\n   filesystem.  Replace all calls to it with a git_time() wrapper and\n   (merge 370ddcbc89 pe/time-use-gettimeofday later to maint).\n\n * Code clean-up to use designated initializers in parse-options API.\n   (merge 353e6d4554 sg/parse-options-h-initializers later to maint).\n\n * A recent-ish change to allow unicode character classes to be used\n   with \"grep -P\" triggered a JIT bug in older pcre2 libraries.\n   The problematic change in Git built with these older libraries has\n   been disabled to work around the bug.\n   (merge 14b9a04479 mk/workaround-pcre-jit-ucp-bug later to maint).\n\n * The wildmatch library code unlearns exponential behaviour it\n   acquired some time ago since it was borrowed from rsync.\n   (merge 3dc0b7f0dc pw/wildmatch-fixes later to maint).\n\n * The index files can become corrupt under certain conditions when\n   the split-index feature is in use, especially together with\n   fsmonitor, which have been corrected.\n   (merge 061dd722dc js/split-index-fixes later to maint).\n\n * Document what the pathname-looking strings in \"rev-list --object\"\n   output are for and what they mean.\n   (merge 15364d2a3c jk/document-rev-list-object-name later to maint).\n\n * Fix unnecessary truncation of generation numbers used in-core.\n   (merge d3af1c193d ps/ahead-behind-truncation-fix later to maint).\n\n * Code clean-up around the use of the_repository.\n   (merge 4a93b899c1 ab/remove-implicit-use-of-the-repository later to maint).\n\n * Consistently spell \"Message-ID\" as such, not \"Message-Id\".\n   (merge ba4324c4e1 jc/spell-id-in-both-caps-in-message-id later to maint).\n\n * Correct use of an uninitialized structure member.\n   (merge dc12ee77ab jx/cap-object-info-uninitialized-fix later to maint).\n\n * Tests had a few places where we ignored PERL_PATH and blindly used\n   /usr/bin/perl, which have been corrected.\n   (merge c1917156a0 jk/use-perl-path-consistently later to maint).\n\n * Documentation mark-up fix.\n   (merge 78b6369e67 la/mfc-markup-fix later to maint).\n\n * Doc toolchain update to remove old workaround for AsciiDoc.\n   (merge 8806120de6 fc/remove-header-workarounds-for-asciidoc later to maint).\n\n * The userdiff regexp patterns for various filetypes that are built\n   into the system have been updated to avoid triggering regexp errors\n   from UTF-8 aware regex engines.\n   (merge be39144954 rs/userdiff-multibyte-regex later to maint).\n\n * The approxidate() API has been simplified by losing an extra\n   function that did the same thing as another one.\n   (merge 8a7f0b666f rs/remove-approxidate-relative later to maint).\n\n * Code clean-up to replace a hardcoded constant with a CPP macro.\n   (merge c870de6502 rs/get-tar-commit-id-use-defined-const later to maint).\n\n * Doc build simplification.\n   (merge 9a09ed3229 fc/doc-stop-using-manversion later to maint).\n\n * \"git archive\" run from a subdirectory mishandled attributes and\n   paths outside the current directory.\n   (merge 92b1dd1b9e rs/archive-from-subdirectory-fixes later to maint).\n\n * The code to parse capability list for v0 on-wire protocol fell into\n   an infinite loop when a capability appears multiple times, which\n   has been corrected.\n\n * Geometric repacking (\"git repack --geometric=<n>\") in a repository\n   that borrows from an alternate object database had various corner\n   case bugs, which have been corrected.\n   (merge d85cd18777 ps/fix-geom-repack-with-alternates later to maint).\n\n * The \"%GT\" placeholder for the \"--format\" option of \"git log\" and\n   friends caused BUG() to trigger on a commit signed with an unknown\n   key, which has been corrected.\n   (merge 7891e46585 jk/gpg-trust-level-fix later to maint).\n\n * The completion script used to use bare \"read\" without the \"-r\"\n   option to read the contents of various state files, which risked\n   getting confused with backslashes in them.  This has been\n   corrected.\n   (merge 197152098a ek/completion-use-read-r-to-read-literally later to maint).\n\n * A small API fix to the ort merge strategy backend.\n   (merge 000c4ceca7 en/ort-finalize-after-0-merges-fix later to maint).\n\n * The commit object parser has been taught to be a bit more lenient\n   to parse timestamps on the author/committer line with a malformed\n   author/committer ident.\n   (merge 90ef0f14eb jk/parse-commit-with-malformed-ident later to maint).\n\n * Retitle a test script with an overly narrow name.\n   (merge 8bb19c14fb ob/t3501-retitle later to maint).\n\n * Doc update to clarify how text and eol attributes interact to\n   specify the end-of-line conversion.\n   (merge 6696077ace ah/doc-attributes-text later to maint).\n\n * Gitk updates from GfW project.\n   (merge 99e70f3077 js/gitk-fixes-from-gfw later to maint).\n\n * \"git diff --dirstat\" leaked memory, which has been plugged.\n   (merge 83973981eb jc/dirstat-plug-leaks later to maint).\n\n * \"git merge-tree\" reads the basic configuration, which can be used\n    by git forges to disable replace-refs feature.\n   (merge b6551feadf ds/merge-tree-use-config later to maint).\n\n * Other code cleanup, docfix, build fix, etc.\n   (merge f7111175df as/doc-markup-fix later to maint).\n   (merge 90ff7c9898 fc/test-aggregation-clean-up later to maint).\n   (merge 9b0c7f308a jc/am-doc-refer-to-format-patch later to maint).\n   (merge b10cbdac4c bb/unicode-width-table-15 later to maint).\n   (merge 3457b50e8c ab/retire-scripted-add-p later to maint).\n   (merge d52fcf493b ds/p2000-fix-grep-sparse later to maint).\n   (merge ec063d2591 ss/hashmap-typofix later to maint).\n   (merge 1aaed69d11 rs/archive-mtime later to maint).\n   (merge 2da2cc9b28 ob/rollback-after-commit-lock-failure later to maint).\n   (merge 54dbd0933b ob/sequencer-save-head-simplify later to maint).\n   (merge a93cbe8d78 ar/test-cleanup-unused-file-creation later to maint).\n   (merge cc48ddd937 jk/chainlint-fixes later to maint).\n   (merge 4833b08426 ow/ref-format-remove-unused-member later to maint).\n   (merge d0ea2ca1cf dw/doc-submittingpatches-grammofix later to maint).\n   (merge fd72637423 ar/t2024-checkout-output-fix later to maint).\n   (merge d45cbe3fe0 ob/sequencer-i18n-fix later to maint).\n   (merge b734fe49fd ob/messages-capitalize-exception later to maint).\n   (merge ad353d7e77 ma/gittutorial-fixes later to maint).\n   (merge a5855fd8d4 ar/test-cleanup-unused-file-creation-part2 later to maint).\n   (merge 0c5308af30 sd/doc-gitignore-and-rm-cached later to maint).\n   (merge cbb83daeaf kh/doc-interpret-trailers-updates later to maint).\n   (merge 3d77fbb664 ar/config-count-tests-updates later to maint).\n   (merge b7cf25c8f4 jc/t9800-fix-use-of-show-s-raw later to maint).\n\n----------------------------------------------------------------\n\nChanges since v2.40.0 are as follows:\n\nAdam Johnson (1):\n      ls-files: fix \"--format\" output of relative paths\n\nAlex Henrie (5):\n      rebase: add documentation and test for --no-rebase-merges\n      rebase: deprecate --rebase-merges=\"\"\n      rebase: add a config option for --rebase-merges\n      format-patch: correct documentation of --thread without an argument\n      docs: rewrite the documentation of the text and eol attributes\n\nAndreas Schwab (1):\n      git-merge-tree.txt: replace spurious HTML entity\n\nAndrei Rybak (19):\n      t1005: assert output of ls-files\n      t1006: assert error output of cat-file\n      t1010: don't create unused files\n      t1302: don't create unused file\n      t1400: assert output of update-ref\n      t1404: don't create unused file\n      t1507: assert output of rev-parse\n      t3060: fix mention of function prune_index\n      t2107: fix mention of the_index.cache_changed\n      t2024: fix loose/strict local base branch DWIM test\n      t1300: drop duplicate test\n      t1300: check stderr for \"ignores pairs\" tests\n      t1300: add tests for missing keys\n      t0300: don't create unused file\n      t1300: fix config file syntax error descriptions\n      t1300: don't create unused files\n      t1450: don't create unused files\n      t1502: don't create unused files\n      t2019: don't create unused files\n\nAndy Koppe (1):\n      restore: fault --staged --worktree with merge opts\n\nBeat Bolli (1):\n      unicode: update the width tables to Unicode 15\n\nChristian Hesse (1):\n      imap-send: include strbuf.h\n\nClement Mabileau (1):\n      branch: improve error log on branch not found by checking remotes refs\n\nDaniel Watson (1):\n      SubmittingPatches: clarify MUA discussion with \"the\"\n\nDerrick Stolee (19):\n      object-file: reprepare alternates when necessary\n      for-each-ref: add --stdin option\n      for-each-ref: explicitly test no matches\n      commit-graph: refactor compute_topological_levels()\n      commit-graph: simplify compute_generation_numbers()\n      commit-graph: return generation from memory\n      commit-reach: implement ahead_behind() logic\n      for-each-ref: add ahead-behind format atom\n      commit-reach: add tips_reachable_from_bases()\n      p2000: remove stray '--sparse' flag from test\n      fetch: download bundles once, even with --all\n      ci: update 'static-analysis' to Ubuntu 22.04\n      fsck: create scaffolding for rev-index checks\n      fsck: check rev-index checksums\n      fsck: check rev-index position values\n      fsck: validate .rev file header\n      fsck: verify checksums of all .bitmap files\n      fsck: use local repository\n      merge-tree: load default git config\n\nEdwin Kofler (1):\n      completion: suppress unwanted unescaping of `read`\n\nElijah Newren (94):\n      treewide: ensure one of the appropriate headers is sourced first\n      treewide: remove unnecessary git-compat-util.h includes in headers\n      treewide: remove unnecessary cache.h includes\n      treewide: remove unnecessary cache.h includes in source files\n      alloc.h: move ALLOC_GROW() functions from cache.h\n      hash.h: move some oid-related declarations from cache.h\n      hex.h: move some hex-related declarations from cache.h\n      cache.h: remove dependence on hex.h; make other files include it explicitly\n      pretty.h: move has_non_ascii() declaration from commit.h\n      ident.h: move ident-related declarations out of cache.h\n      object.h: stop depending on cache.h; make cache.h depend on object.h\n      dir.h: refactor to no longer need to include cache.h\n      object-store.h: move struct object_info from cache.h\n      replace-object.h: move read_replace_refs declaration from cache.h to here\n      treewide: replace cache.h with more direct headers, where possible\n      Remove unnecessary includes of builtin.h\n      diff.h: remove unnecessary include of object.h\n      t2021: fix platform-specific leftover cruft\n      unpack-trees: heed requests to overwrite ignored files\n      dir: separate public from internal portion of dir_struct\n      dir: add a usage note to exclude_per_dir\n      dir: mark output only fields of dir_struct as such\n      unpack-trees: clean up some flow control\n      sparse-checkout: avoid using internal API of unpack-trees\n      sparse-checkout: avoid using internal API of unpack-trees, take 2\n      unpack_trees: start splitting internal fields from public API\n      unpack-trees: mark fields only used internally as internal\n      unpack-trees: rewrap a few overlong lines from previous patch\n      unpack-trees: special case read-tree debugging as internal usage\n      unpack-trees: add usage notices around df_conflict_entry\n      treewide: remove unnecessary cache.h inclusion from a few headers\n      treewide: be explicit about dependence on gettext.h\n      treewide: remove unnecessary inclusion of gettext.h\n      treewide: remove unnecessary cache.h inclusion from several sources\n      environment: move comment_line_char from cache.h\n      abspath.h: move absolute path functions from cache.h\n      cache.h: remove expand_user_path()\n      path.h: move function declarations for path.c functions from cache.h\n      wrapper.h: move declarations for wrapper.c functions from cache.h\n      treewide: remove unnecessary includes of cache.h\n      environment.h: move declarations for environment.c functions from cache.h\n      treewide: remove cache.h inclusion due to environment.h changes\n      setup.h: move declarations for setup.c functions from cache.h\n      treewide: remove cache.h inclusion due to setup.h changes\n      write-or-die.h: move declarations for write-or-die.c functions from cache.h\n      csum-file.h: remove unnecessary inclusion of cache.h\n      treewide: be explicit about dependence on trace.h & trace2.h\n      treewide: be explicit about dependence on advice.h\n      treewide: be explicit about dependence on convert.h\n      treewide: be explicit about dependence on pack-revindex.h\n      treewide: be explicit about dependence on oid-array.h\n      treewide: be explicit about dependence on mem-pool.h\n      treewide: remove unnecessary cache.h inclusion\n      object-name.h: move declarations for object-name.c functions from cache.h\n      treewide: remove cache.h inclusion due to object-name.h changes\n      git-zlib: move declarations for git-zlib functions from cache.h\n      treewide: remove cache.h inclusion due to git-zlib changes\n      object-file.h: move declarations for object-file.c functions from cache.h\n      treewide: remove cache.h inclusion due to object-file.h changes\n      object.h: move some inline functions and defines from cache.h\n      treewide: remove cache.h inclusion due to object.h changes\n      editor: move editor-related functions and declarations into common file\n      treewide: remove cache.h inclusion due to editor.h changes\n      pager.h: move declarations for pager.c functions from cache.h\n      treewide: remove cache.h inclusion due to pager.h changes\n      cache.h: remove unnecessary includes\n      treewide: remove double forward declaration of read_in_full\n      treewide: reduce includes of cache.h in other headers\n      mailmap, quote: move declarations of global vars to correct unit\n      protocol.h: move definition of DEFAULT_GIT_PORT from cache.h\n      treewide: be explicit about dependence on strbuf.h\n      symlinks.h: move declarations for symlinks.c functions from cache.h\n      packfile.h: move pack_window and pack_entry from cache.h\n      server-info.h: move declarations for server-info.c functions from cache.h\n      copy.h: move declarations for copy.c functions from cache.h\n      base85.h: move declarations for base85.c functions from cache.h\n      pkt-line.h: move declarations for pkt-line.c functions from cache.h\n      match-trees.h: move declarations for match-trees.c functions from cache.h\n      ws.h: move declarations for ws.c functions from cache.h\n      versioncmp.h: move declarations for versioncmp.c functions from cache.h\n      dir.h: move DTYPE defines from cache.h\n      tree-diff.c: move S_DIFFTREE_IFXMIN_NEQ define from cache.h\n      hash-ll.h: split out of hash.h to remove dependency on repository.h\n      cache,tree: move cmp_cache_name_compare from tree.[ch] to read-cache.c\n      cache,tree: move basic name compare functions from read-cache to tree\n      treewide: remove cache.h inclusion due to previous changes\n      cache.h: remove unnecessary headers\n      fsmonitor: reduce includes of cache.h\n      commit.h: reduce unnecessary includes\n      object-store.h: reduce unnecessary includes\n      diff.h: reduce unnecessary includes\n      reftable: ensure git-compat-util.h is the first (indirect) include\n      merge-ort: fix calling merge_finalize() with no intermediate merge\n      t5583: fix shebang line\n\nEmily Shaffer (1):\n      mailmap: change primary address for Emily Shaffer\n\nEric Sunshine (1):\n      tests: diagnose unclosed here-doc in chainlint.pl\n\nEric Wong (3):\n      commit-reach: avoid NULL dereference\n      fetch: support hideRefs to speed up connectivity checks\n      fetch: pass --no-write-fetch-head to subprocesses\n\nFangyi Zhou (1):\n      rebase: fix capitalisation autoSquash in i18n string\n\nFelipe Contreras (16):\n      advice: add diverging advice for novices\n      test: simplify counts aggregation\n      test: don't print aggregate-results command\n      object-name: fix quiet @{u} parsing\n      completion: prompt: use generic colors\n      doc: remove GNU troff workaround\n      doc: remove manpage-base-url workaround\n      doc: asciidoc: remove custom header macro\n      doc: simplify man version\n      doc: set actual revdate for manpages\n      doc: git-checkout: trivial callout cleanup\n      doc: git-checkout: reorganize examples\n      doc: remove custom callouts format\n      doc: manpage: remove maximum title length\n      doc: doc-diff: specify date\n      test: rev-parse-upstream: add missing cmp\n\nGlen Choo (10):\n      config.c: plumb config_source through static fns\n      config.c: don't assign to \"cf_global\" directly\n      config.c: create config_reader and the_reader\n      config.c: plumb the_reader through callbacks\n      config.c: remove current_config_kvi\n      config.c: remove current_parsing_scope\n      config: report cached filenames in die_bad_number()\n      config.c: rename \"struct config_source cf\"\n      clone: error specifically with --local and symlinked objects\n      setup: trace bare repository setups\n\nHan Xin (2):\n      negotiator/default: avoid stack overflow\n      negotiator/skipping: fix some problems in mark_common()\n\nJacob Keller (2):\n      blame: allow --contents to work with non-HEAD commit\n      blame: use different author name for fake commit generated by --contents\n\nJeff King (90):\n      ref-filter: drop unused atom parameter from get_worktree_path()\n      ls-refs: drop config caching\n      serve: use repository pointer to get config\n      serve: mark unused parameters in virtual functions\n      object-name: mark unused parameters in disambiguate callbacks\n      http-backend: mark argc/argv unused\n      http-backend: mark unused parameters in virtual functions\n      ref-filter: mark unused callback parameters\n      mark \"pointless\" data pointers in callbacks\n      run-command: mark error routine parameters as unused\n      mark unused parameters in signal handlers\n      list-objects: mark unused callback parameters\n      for_each_object: mark unused callback parameters\n      prio-queue: mark unused parameters in comparison functions\n      notes: mark unused callback parameters\n      fetch-pack: mark unused parameter in callback function\n      rewrite_parents(): mark unused callback parameter\n      for_each_commit_graft(): mark unused callback parameter\n      userformat_want_item(): mark unused parameter\n      run_processes_parallel: mark unused callback parameters\n      help: mark unused parameter in git_unknown_cmd_config()\n      fsck: factor out index fsck\n      fsck: check index files in all worktrees\n      fsck: mention file path for index errors\n      fsck: check even zero-entry index files\n      drop pure pass-through config callbacks\n      bundle: turn on --all-progress-implied by default\n      bundle: let \"-\" mean stdin for reading operations\n      bundle: document handling of \"-\" as stdin\n      parse-options: consistently allocate memory in fix_filename()\n      parse-options: use prefix_filename_except_for_dash() helper\n      diff: factor out src/dst prefix setup\n      t4013: add tests for diff prefix options\n      diff: add --default-prefix option\n      format-patch: do not respect diff.noprefix\n      format-patch: add format.noprefix option\n      add-patch: handle \"* Unmerged path\" lines\n      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT\n      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION\n      range-diff: drop useless \"offset\" variable from read_patches()\n      http: support CURLOPT_PROTOCOLS_STR\n      range-diff: handle unterminated lines in read_patches()\n      range-diff: use ssize_t for parsed \"len\" in read_patches()\n      rebase: prefer --default-prefix to --{src,dst}-prefix for format-patch\n      mailmap: drop debugging code\n      http: drop unused parameter from start_object_request()\n      http: mark unused parameter in fill_active_slot() callbacks\n      transport: mark unused parameters in fetch_refs_from_bundle()\n      git_connect(): fix corner cases in downgrading v2 to v0\n      fast-export: drop const when storing anonymized values\n      fast-export: simplify initialization of anonymized hashmaps\n      fast-export: factor out anonymized_entry creation\n      fast-export: de-obfuscate --anonymize-map handling\n      fast-export: drop data parameter from anonymous generators\n      fast-export: drop unused parameter from anonymize_commit_message()\n      Makefile: force -O0 when compiling with SANITIZE=leak\n      pack-redundant: escalate deprecation warning to an error\n      docs: document caveats of rev-list's object-name output\n      fast-import: fix file access when run from subdir\n      builtins: always pass prefix to parse_options()\n      builtins: annotate always-empty prefix parameters\n      builtins: mark unused prefix parameters\n      mark \"argv\" as unused when we check argc\n      t/helper: mark unused argv/argc arguments\n      parse-options: drop parse_opt_unknown_cb()\n      pack-redundant: document deprecation\n      tests: run internal chain-linter under \"make test\"\n      tests: replace chainlint subshell with a function\n      tests: drop here-doc check from internal chain-linter\n      tests: skip test_eval_ in internal chain-lint\n      t/lib-httpd: pass PERL_PATH to CGI scripts\n      v0 protocol: fix infinite loop when parsing multi-valued capabilities\n      t5512: stop referring to \"v1\" protocol\n      v0 protocol: fix sha1/sha256 confusion for capabilities^{}\n      t5512: add v2 support for \"ls-remote --symref\" test\n      t5512: allow any protocol version for filtered symref test\n      t5512: test \"ls-remote --heads --symref\" filtering with v0 and v2\n      v0 protocol: use size_t for capability length/offset\n      gpg-interface: set trust level of missing key to \"undefined\"\n      notes: clean up confusing NULL checks in init_notes()\n      fetch_bundle_uri(): drop pointless NULL check\n      t4212: avoid putting git on left-hand side of pipe\n      parse_commit(): parse timestamp from end of line\n      parse_commit(): handle broken whitespace-only timestamp\n      parse_commit(): describe more date-parsing failure modes\n      doc-diff: drop SOURCE_DATE_EPOCH override\n      t7001: avoid git on upstream of pipe\n      t7001: use \"ls-files --format\" instead of \"cut\"\n      t: drop \"verbose\" helper function\n      t/lib-httpd: make CGIPassAuth support conditional\n\nJiang Xin (5):\n      github-actions: run gcc-8 on ubuntu-20.04 image\n      ci: remove the pipe after \"p4 -V\" to catch errors\n      ci: use the same version of p4 on both Linux and macOS\n      ci: install python on ubuntu\n      object-info: init request_info before reading arg\n\nJohannes Schindelin (29):\n      compat/win32/syslog: fix use-after-realloc\n      nedmalloc: avoid new compile error\n      t0033: GETTEXT_POISON fix\n      t0003: GETTEXT_POISON fix, part 1\n      t0003: GETTEXT_POISON fix, conclusion\n      t5619: GETTEXT_POISON fix\n      t5604: GETTEXT_POISON fix, part 1\n      t5604: GETTEXT_POISON fix, conclusion\n      clone.c: avoid \"exceeds maximum object size\" error with GCC v12.x\n      split-index & fsmonitor: demonstrate a bug\n      split-index; stop abusing the `base_oid` to strip the \"link\" extension\n      fsmonitor: avoid overriding `cache_changed` bits\n      unpack-trees: take care to propagate the split-index flag\n      t3701: we don't need no Perl for `add -i` anymore\n      t5563: prevent \"ambiguous redirect\"\n      apply --reject: overwrite existing `.rej` symlink if it exists\n      gettext: avoid using gettext if the locale dir is not present\n      tests: avoid using `test_i18ncmp`\n      Git 2.31.8\n      Git 2.32.7\n      Git 2.33.8\n      Git 2.34.8\n      Git 2.35.8\n      Git 2.36.6\n      Git 2.37.7\n      Git 2.38.5\n      Git 2.39.3\n      Git 2.40.1\n      gitk: prevent overly long command lines\n\nJohn Cai (2):\n      name-rev: make --stdin hidden\n      attr: teach \"--attr-source=<tree>\" global option to \"git\"\n\nJohn Keeping (1):\n      format-patch: output header for empty commits\n\nJosh Soref (1):\n      subtree: support long global flags\n\nJouke Witteveen (1):\n      send-email docs: Remove mention of discontinued gmail feature\n\nJunio C Hamano (33):\n      gpg-interface: lazily initialize and read the configuration\n      bundle: don't blindly apply prefix_filename() to \"-\"\n      Start the 2.41 cycle\n      The second batch\n      am: refer to format-patch in the documentation\n      The third batch\n      http.c: clear the 'finished' member once we are done with it\n      The fourth batch\n      The fifth batch\n      The sixth batch\n      e-mail workflow: Message-ID is spelled with ID in both capital letters\n      The seventh batch\n      clone: propagate object-format when cloning from void\n      The eighth batch\n      The ninth batch\n      The tenth batch\n      The eleventh batch\n      The twelfth batch\n      The thirteenth batch\n      doc: GIT_DEFAULT_HASH is and will be ignored during \"clone\"\n      The fourteenth batch\n      The fifteenth batch\n      The sixteenth batch\n      diff: refactor common tail part of dirstat computation\n      diff: plug leaks in dirstat\n      t9800: correct misuse of 'show -s --raw' in a test\n      The seventeenth batch\n      The eighteenth batch\n      Git 2.41-rc0\n      A bit more before -rc1\n      send-email: clear the $message_id after validation\n      t9001: mark the script as no longer leak checker clean\n      Git 2.41-rc1\n\nKristoffer Haugsbakk (5):\n      config: tell the user that we expect an ASCII character\n      doc: interpret-trailers: don’t use heredoc in examples\n      doc: interpret-trailers: use input redirection\n      doc: interpret-trailers: don’t use deprecated config\n      doc: interpret-trailers: fix example\n\nLinus Arver (1):\n      MyFirstContribution: render literal *\n\nM Hickford (3):\n      credential/wincred: include wincred.h\n      credential/wincred: store password_expiry_utc\n      credential: new attribute oauth_refresh_token\n\nMartin Ågren (2):\n      gittutorial: drop early mention of origin\n      gittutorial: wrap literal examples in backticks\n\nMathias Krause (1):\n      grep: work around UTF-8 related JIT bug in PCRE2 <= 10.34\n\nMatthew John Cheetham (3):\n      t5563: add tests for basic and anoymous HTTP access\n      http: read HTTP WWW-Authenticate response headers\n      credential: add WWW-Authenticate header to cred requests\n\nMaxim Cournoyer (3):\n      send-email: extract execute_cmd from recipients_cmd\n      send-email: add --header-cmd, --no-header-cmd options\n      send-email: detect empty blank lines in command output\n\nMichael J Gruber (1):\n      t3070: make chain lint tester happy\n\nMichael Strawbridge (2):\n      send-email: refactor header generation functions\n      send-email: expose header information to git-send-email's sendemail-validate hook\n\nMike Hommey (1):\n      Handle some compiler versions containing a dash\n\nNico Rieck (1):\n      gitk: escape file paths before piping to git log\n\nOswald Buddenhagen (5):\n      sequencer: remove pointless rollback_lock_file()\n      sequencer: rewrite save_head() in terms of write_message()\n      sequencer: actually translate report in do_exec()\n      messages: capitalization and punctuation exceptions\n      t/t3501-revert-cherry-pick.sh: clarify scope of the file\n\nPatrick Steinhardt (27):\n      receive-pack: fix stale packfile locks when dying\n      fetch: move reference width calculation into `display_state`\n      fetch: move output format into `display_state`\n      fetch: pass the full local reference name to `format_display`\n      fetch: centralize handling of per-reference format\n      fetch: centralize logic to print remote URL\n      fetch: centralize printing of reference updates\n      commit-graph: fix truncated generation numbers\n      midx: fix segfault with no packs and invalid preferred pack\n      repack: fix trying to use preferred pack in alternates\n      repack: fix generating multi-pack-index with only non-local packs\n      pack-objects: split out `--stdin-packs` tests into separate file\n      pack-objects: fix error when packing same pack twice\n      pack-objects: fix error when same packfile is included and excluded\n      pack-objects: extend test coverage of `--stdin-packs` with alternates\n      t/helper: allow chmtime to print verbosely without modifying mtime\n      repack: honor `-l` when calculating pack geometry\n      repack: disable writing bitmaps when doing a local repack\n      fetch: fix `--no-recurse-submodules` with multi-remote fetches\n      fetch: split out tests for output format\n      fetch: add a test to exercise invalid output formats\n      fetch: print left-hand side when fetching HEAD:foo\n      fetch: refactor calculation of the display table width\n      fetch: introduce `display_format` enum\n      fetch: lift up parsing of \"fetch.output\" config variable\n      fetch: move option related variables into main function\n      fetch: introduce machine-parseable \"porcelain\" output format\n\nPaul Eggert (1):\n      git-compat-util: use gettimeofday(2) for time(2)\n\nPhillip Wood (8):\n      wildmatch: fix exponential behavior\n      wildmatch: avoid undefined behavior\n      wildmatch: hide internal return values\n      rebase: stop reading and writing unnecessary strategy state\n      sequencer: use struct strvec to store merge strategy options\n      rebase -m: cleanup --strategy-option handling\n      rebase -m: fix serialization of strategy options\n      rebase: remove a couple of redundant strategy tests\n\nRaghul Nanth A (1):\n      describe: enable sparse index for describe\n\nRené Scharfe (6):\n      archive: improve support for running in subdirectory\n      t5000: use check_mtime()\n      userdiff: support regexec(3) with multi-byte support\n      date: remove approxidate_relative()\n      get-tar-commit-id: use TYPEFLAG_GLOBAL_HEADER instead of magic value\n      test-ctype: check EOF\n\nRobin Jarry (1):\n      send-email: export patch counters in validate environment\n\nRubén Justo (10):\n      bisect: fix \"reset\" when branch is checked out elsewhere\n      worktree: introduce is_shared_symref()\n      branch: fix die_if_checked_out() when ignore_current_worktree\n      rebase: refuse to switch to a branch already checked out elsewhere (test)\n      switch: reject if the branch is already checked out elsewhere (test)\n      branch: test for failures while renaming branches\n      branch: use get_worktrees() in copy_or_rename_branch()\n      branch: description for orphan branch errors\n      branch: rename orphan branches in any worktree\n      branch: avoid unnecessary worktrees traversals\n\nSZEDER Gábor (6):\n      treewide: include parse-options.h in source files\n      treewide: remove unnecessary inclusions of parse-options.h from headers\n      parse-options.h: use consistent name for the callback parameters\n      parse-options.h: rename _OPT_CONTAINS_OR_WITH()'s parameters\n      parse-options.h: use designated initializers in OPT_* macros\n      cocci: remove 'unused.cocci'\n\nShuqi Liang (3):\n      write-tree: integrate with sparse index\n      t1092: add tests for `git diff-files`\n      diff-files: integrate with sparse index\n\nSiddharth Singh (1):\n      hashmap.h: fix minor typo\n\nSohom Datta (1):\n      docs: clarify git rm --cached function in gitignore note\n\nStanislav Malishevskiy (1):\n      http: add support for different sslcert and sslkey types.\n\nTao Klerks (1):\n      mergetool: new config guiDefault supports auto-toggling gui by DISPLAY\n\nTaylor Blau (37):\n      commit-graph: introduce `ensure_generations_valid()`\n      pack-write.c: plug a leak in stage_tmp_packfiles()\n      t5325: mark as leak-free\n      pack-revindex: make `load_pack_revindex` take a repository\n      pack-revindex: introduce GIT_TEST_REV_INDEX_DIE_ON_DISK\n      pack-revindex: introduce `pack.readReverseIndex`\n      config: enable `pack.writeReverseIndex` by default\n      t: invert `GIT_TEST_WRITE_REV_INDEX`\n      t1300: demonstrate failure when renaming sections with long lines\n      config: avoid fixed-sized buffer when renaming/deleting a section\n      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`\n      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`\n      Git 2.30.9\n      pack-write.c: plug a leak in stage_tmp_packfiles()\n      builtin/repack.c: fix incorrect reference to '-C'\n      builtin/gc.c: ignore cruft packs with `--keep-largest-pack`\n      t/t5304-prune.sh: prepare for `gc --cruft` by default\n      t/t6501-freshen-objects.sh: prepare for `gc --cruft` by default\n      t/t6500-gc.sh: refactor cruft pack tests\n      t/t6500-gc.sh: add additional test cases\n      t/t9300-fast-import.sh: prepare for `gc --cruft` by default\n      builtin/gc.c: make `gc.cruftPacks` enabled by default\n      repository.h: drop unused `gc_cruft_packs`\n      string-list: multi-delimiter `string_list_split_in_place()`\n      string-list: introduce `string_list_setlen()`\n      t/helper/test-hashmap.c: avoid using `strtok()`\n      t/helper/test-oidmap.c: avoid using `strtok()`\n      t/helper/test-json-writer.c: avoid using `strtok()`\n      banned.h: mark `strtok()` and `strtok_r()` as banned\n      credential.c: store \"wwwauth[]\" values in `credential_read()`\n      t/lib-credential.sh: ensure credential helpers handle long headers\n      contrib/credential: avoid fixed-size buffer in osxkeychain\n      contrib/credential: remove 'gnome-keyring' credential helper\n      contrib/credential: .gitignore libsecret build artifacts\n      contrib/credential: avoid fixed-size buffer in libsecret\n      contrib/credential: embiggen fixed-size buffer in wincred\n      run-command.c: fix missing include under `NO_PTHREADS`\n\nTeng Long (1):\n      push: introduce '--branches' option\n\nWilliam Sprent (2):\n      builtin/sparse-checkout: remove NEED_WORK_TREE flag\n      builtin/sparse-checkout: add check-rules command\n\nZheNing Hu (2):\n      receive-pack: fix funny ref error messsage\n      push: allow delete single-level ref\n\nbrian m. carlson (1):\n      upload-pack: advertise capabilities when cloning empty repos\n\nÆvar Arnfjörð Bjarmason (33):\n      auto-crlf tests: don't lose exit code in loops and outside tests\n      t/lib-patch-mode.sh: fix ignored exit codes\n      tests: don't lose exit status with \"(cd ...; test <op> $(git ...))\"\n      tests: don't lose \"git\" exit codes in \"! ( git ... | grep )\"\n      tests: don't lose exit status with \"test <op> $(git ...)\"\n      tests: don't lose misc \"git\" exit codes\n      sequencer.c: fix overflow & segfault in parse_strategy_opts()\n      cocci: remove dead rule from \"the_repository.pending.cocci\"\n      cocci: fix incorrect & verbose \"the_repository\" rules\n      cocci: sort \"the_repository\" rules by header\n      cocci: add missing \"the_repository\" macros to \"pending\"\n      cocci: apply the \"cache.h\" part of \"the_repository.pending\"\n      cocci: apply the \"commit-reach.h\" part of \"the_repository.pending\"\n      cocci: apply the \"commit.h\" part of \"the_repository.pending\"\n      cocci: apply the \"diff.h\" part of \"the_repository.pending\"\n      cocci: apply the \"object-store.h\" part of \"the_repository.pending\"\n      cocci: apply the \"pretty.h\" part of \"the_repository.pending\"\n      cocci: apply the \"packfile.h\" part of \"the_repository.pending\"\n      cocci: apply the \"promisor-remote.h\" part of \"the_repository.pending\"\n      cocci: apply the \"refs.h\" part of \"the_repository.pending\"\n      cocci: apply the \"rerere.h\" part of \"the_repository.pending\"\n      cocci: apply the \"revision.h\" part of \"the_repository.pending\"\n      post-cocci: adjust comments for recent repo_* migration\n      libs: use \"struct repository *\" argument, not \"the_repository\"\n      config tests: cover blind spots in git_die_config() tests\n      config tests: add \"NULL\" tests for *_get_value_multi()\n      config API: add and use a \"git_config_get()\" family of functions\n      versioncmp.c: refactor config reading next commit\n      config API: have *_multi() return an \"int\" and take a \"dest\"\n      for-each-repo: error on bad --config\n      config API users: test for *_get_value_multi() segfaults\n      config API: add \"string\" version of *_value_multi(), fix segfaults\n      for-each-repo: with bad config, don't conflate <path> and <cmd>\n\nØystein Walle (2):\n      ref-filter: remove unused ref_format member\n      branch, for-each-ref, tag: add option to omit empty lines\n\n"},{"id":"477605","messageId":"006901d98a7c$81d5a3a0$8580eae0$@nexbridge.com","threadId":"59772","inReplyTo":"xmqqedncqkzf.fsf@gitster.g","subject":"RE: [ANNOUNCE] Git v2.41.0-rc1","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2023-05-19T18:05:28Z","receivedAt":"2023-05-19T18:05:42Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On Friday, May 19, 2023 1:39 PM, Junio C Hamano wrote:\n>A release candidate Git v2.41.0-rc1 is now available for testing at the usual places.  It\n>is comprised of 516 non-merge commits since v2.40.0, contributed by 79 people, 24\n>of which are new faces [*].\n>\n>The tarballs are found at:\n>\n>    https://www.kernel.org/pub/software/scm/git/testing/\n>\n>The following public repositories all have a copy of the 'v2.41.0-rc1' tag and the\n>'master' branch that the tag points at... <snip>\n\nThe build succeeded on NonStop x86. Testing has started. Will report back when done (tomorrow-ish).\nThank for the hard work.\nRegards,\nRandall\n\n--\nBrief whoami: NonStop&UNIX developer since approximately\nUNIX(421664400)\nNonStop(211288444200000000)\n-- In real life, I talk too much.\n\n\n\n"},{"id":"477664","messageId":"20230523130808.17591-1-oystwa@gmail.com","threadId":"59772","inReplyTo":"xmqqedncqkzf.fsf@gitster.g","subject":"Re: [ANNOUNCE] Git v2.41.0-rc1","fromName":"Øystein Walle","fromEmail":"oystwa@gmail.com","sentAt":"2023-05-23T13:08:08Z","receivedAt":"2023-05-23T13:09:45Z","isPatch":false,"sender":{"key":"oystwa@gmail.com","avatar":"https://avatars.githubusercontent.com/u/794585?v=4"},"body":"On Fri, 19 May 2023 at 10:39, Junio C Hamano <gitster@pobox.com> wrote:\n\n> * \"git branch --format=...\" and \"git format-patch --format=...\"\n>   learns \"--omit-empty\" to hide refs that whose formatting result\n>   becomes an empty string from the output.\n\nTypo here. branch, tag and for-each-ref learn this, not format-patch :-)\n\nØsse\n"},{"id":"477694","messageId":"xmqqzg5tfprv.fsf@gitster.g","threadId":"59772","inReplyTo":"20230523130808.17591-1-oystwa@gmail.com","subject":"Re: [ANNOUNCE] Git v2.41.0-rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-05-24T20:17:08Z","receivedAt":"2023-05-24T20:17:14Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Øystein Walle <oystwa@gmail.com> writes:\n\n> On Fri, 19 May 2023 at 10:39, Junio C Hamano <gitster@pobox.com> wrote:\n>\n>> * \"git branch --format=...\" and \"git format-patch --format=...\"\n>>   learns \"--omit-empty\" to hide refs that whose formatting result\n>>   becomes an empty string from the output.\n>\n> Typo here. branch, tag and for-each-ref learn this, not format-patch :-)\n\nIndeed.  Thanks for spotting.\n"}]}