{"thread":{"id":"55757","subject":"[ANNOUNCE] Git v2.32.0-rc1","startedAt":"2021-05-22T14:22:00Z","lastAt":"2021-05-23T17:01:12Z","messageCount":3,"participants":["Junio C Hamano","Jean-Noël AVILA"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"425333","messageId":"xmqqk0nqq266.fsf@gitster.g","threadId":"55757","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.32.0-rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-05-22T14:21:53Z","receivedAt":"2021-05-22T14:22:00Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"A release candidate Git v2.32.0-rc1 is now available for testing at\nthe usual places.  It is comprised of 572 non-merge commits since\nv2.31.0, contributed by 82 people, 31 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.32.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.31.0 are as follows.\nWelcome to the Git development community!\n\n  Adam Sharafeddine, Andrey Bienkowski, Atharva Raykar, Bruno\n  Albuquerque, Chinmoy Chakraborty, Christopher Schenk, Dan\n  Moseley, David Emett, Dmitry Torilov, Fabien Terrani, Firmin\n  Martin, Georgios Kontaxis, Jason Gore, Jerry Zhang, Joachim\n  Kuebart, Joseph Vusich, Josh Soref, Julien Richard, Li Linchao,\n  Louis Sautier, Luke Shumaker, Nicholas Clark, Peter Oliver,\n  Renato Botelho, Robert Foss, RyotaK, Sardorbek Imomaliev,\n  Tom Saeger, Will Chandler, Wolfgang Müller, and Yiyuan guo.\n\nReturning contributors who helped this release are as follows.\nThanks for your continued support.\n\n  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Henrie,\n  Andrzej Hunt, Bagas Sanjaya, Ben Humphreys, brian m. carlson,\n  Charvi Mendiratta, Christian Couder, Dennis Ameling, Denton\n  Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren,\n  Eric Sunshine, Eric Wong, Han-Wen Nienhuys, Han Xin, Jeff\n  Hostetler, Jeff King, Johannes Schindelin, John Szakmeister,\n  Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kyle Meyer,\n  Lénaïc Huard, Luke Diamand, Marc Branchaud, Martin Ågren,\n  Matheus Tavares, Nguyễn Thái Ngọc Duy, Nipunn Koorapati,\n  Øystein Walle, Patrick Steinhardt, Phillip Wood, Rafael Silva,\n  Ramkumar Ramachandra, Ramsay Jones, Randall S. Becker, René\n  Scharfe, Sergey Organov, Shubham Verma, Son Luong Ngoc, SZEDER\n  Gábor, Taylor Blau, Todd Zullinger, Torsten Bögershausen,\n  Trygve Aaberge, Ville Skyttä, and ZheNing Hu.\n\n[*] We are counting not just the authorship contribution but\n    issue reporting, testing and reviewing that are recorded\n    in the commit trailers.\n\n----------------------------------------------------------------\n\nGit 2.32 Release Notes (draft)\n==============================\n\nBackward compatibility notes\n----------------------------\n\n * \".gitattributes\", \".gitignore\", and \".mailmap\" files that are\n   symbolic links are ignored.\n\n * \"git apply --3way\" used to first attempt a straight application,\n   and only fell back to the 3-way merge algorithm when the stright\n   application failed.  Starting with this version, the command will\n   first try the 3-way merge algorithm and only when it fails (either\n   resulting with conflict or the base versions of blobs are missing),\n   falls back to the usual patch application.\n\n\nUpdates since v2.31\n-------------------\n\nUI, Workflows & Features\n\n * It does not make sense to make \".gitattributes\", \".gitignore\" and\n   \".mailmap\" symlinks, as they are supposed to be usable from the\n   object store (think: bare repositories where HEAD:.mailmap etc. are\n   used).  When these files are symbolic links, we used to read the\n   contents of the files pointed by them by mistake, which has been\n   corrected.\n\n * \"git stash show\" learned to optionally show untracked part of the\n   stash.\n\n * \"git log --format='...'\" learned \"%(describe)\" placeholder.\n\n * \"git repack\" so far has been only capable of repacking everything\n   under the sun into a single pack (or split by size).  A cleverer\n   strategy to reduce the cost of repacking a repository has been\n   introduced.\n\n * The http codepath learned to let the credential layer to cache the\n   password used to unlock a certificate that has successfully been\n   used.\n\n * \"git commit --fixup=<commit>\", which was to tweak the changes made\n   to the contents while keeping the original log message intact,\n   learned \"--fixup=(amend|reword):<commit>\", that can be used to\n   tweak both the message and the contents, and only the message,\n   respectively.\n\n * \"git send-email\" learned to honor the core.hooksPath configuration.\n\n * \"git format-patch -v<n>\" learned to allow a reroll count that is\n   not an integer.\n\n * \"git commit\" learned \"--trailer <key>[=<value>]\" option; together\n   with the interpret-trailers command, this will make it easier to\n   support custom trailers.\n\n * \"git clone --reject-shallow\" option fails the clone as soon as we\n   notice that we are cloning from a shallow repository.\n\n * A configuration variable has been added to force tips of certain\n   refs to be given a reachability bitmap.\n\n * \"gitweb\" learned \"e-mail privacy\" feature to redact strings that\n   look like e-mail addresses on various pages.\n\n * \"git apply --3way\" has always been \"to fall back to 3-way merge\n   only when straight application fails\". Swap the order of falling\n   back so that 3-way is always attempted first (only when the option\n   is given, of course) and then straight patch application is used as\n   a fallback when it fails.\n\n * \"git apply\" now takes \"--3way\" and \"--cached\" at the same time, and\n   work and record results only in the index.\n\n * The command line completion (in contrib/) has learned that\n   CHERRY_PICK_HEAD is a possible pseudo-ref.\n\n * Userdiff patterns for \"Scheme\" has been added.\n\n * \"git log\" learned \"--diff-merges=<style>\" option, with an\n   associated configuration variable log.diffMerges.\n\n * \"git log --format=...\" placeholders learned %ah/%ch placeholders to\n   request the --date=human output.\n\n * Replace GIT_CONFIG_NOSYSTEM mechanism to decline from reading the\n   system-wide configuration file with GIT_CONFIG_SYSTEM that lets\n   users specify from which file to read the system-wide configuration\n   (setting it to an empty file would essentially be the same as\n   setting NOSYSTEM), and introduce GIT_CONFIG_GLOBAL to override the\n   per-user configuration in $HOME/.gitconfig.\n\n * \"git add\" and \"git rm\" learned not to touch those paths that are\n   outside of sparse checkout.\n\n * \"git rev-list\" learns the \"--filter=object:type=<type>\" option,\n   which can be used to exclude objects of the given kind from the\n   packfile generated by pack-objects.\n\n * The command line completion (in contrib/) for \"git stash\" has been\n   updated.\n\n * \"git subtree\" updates.\n\n * It is now documented that \"format-patch\" skips merges.\n\n * Options to \"git pack-objects\" that take numeric values like\n   --window and --depth should not accept negative values; the input\n   validation has been tightened.\n\n * The way the command line specified by the trailer.<token>.command\n   configuration variable receives the end-user supplied value was\n   both error prone and misleading.  An alternative to achieve the\n   same goal in a safer and more intuitive way has been added, as\n   the trailer.<token>.cmd configuration variable, to replace it.\n\n * \"git add -i --dry-run\" does not dry-run, which was surprising.  The\n   combination of options has taught to error out.\n\n * \"git push\" learns to discover common ancestor with the receiving\n   end over protocol v2.  This will hopefully make \"git push\" as\n   efficient as \"git fetch\" in avoiding objects from getting\n   transferred unnecessarily.\n\n * \"git mailinfo\" (hence \"git am\") learned the \"--quoted-cr\" option to\n   control how lines ending with CRLF wrapped in base64 or qp are\n   handled.\n\n\nPerformance, Internal Implementation, Development Support etc.\n\n * Rename detection rework continues.\n\n * GIT_TEST_FAIL_PREREQS is a mechanism to skip test pieces with\n   prerequisites to catch broken tests that depend on the side effects\n   of optional pieces, but did not work at all when negative\n   prerequisites were involved.\n   (merge 27d578d904 jk/fail-prereq-testfix later to maint).\n\n * \"git diff-index\" codepath has been taught to trust fsmonitor status\n   to reduce number of lstat() calls.\n   (merge 7e5aa13d2c nk/diff-index-fsmonitor later to maint).\n\n * Reorganize Makefile to allow building git.o and other essential\n   objects without extra stuff needed only for testing.\n\n * Preparatory API changes for parallel checkout.\n\n * A simple IPC interface gets introduced to build services like\n   fsmonitor on top.\n\n * Fsck API clean-up.\n\n * SECURITY.md that is facing individual contributors and end users\n   has been introduced.  Also a procedure to follow when preparing\n   embargoed releases has been spelled out.\n   (merge 09420b7648 js/security-md later to maint).\n\n * Optimize \"rev-list --use-bitmap-index --objects\" corner case that\n   uses negative tags as the stopping points.\n\n * CMake update for vsbuild.\n\n * An on-disk reverse-index to map the in-pack location of an object\n   back to its object name across multiple packfiles is introduced.\n\n * Generate [ec]tags under $(QUIET_GEN).\n\n * Clean-up codepaths that implements \"git send-email --validate\"\n   option and improves the message from it.\n\n * The last remnant of gettext-poison has been removed.\n\n * The test framework has been taught to optionally turn the default\n   merge strategy to \"ort\" throughout the system where we use\n   three-way merges internally, like cherry-pick, rebase etc.,\n   primarily to enhance its test coverage (the strategy has been\n   available as an explicit \"-s ort\" choice).\n\n * A bit of code clean-up and a lot of test clean-up around userdiff\n   area.\n\n * Handling of \"promisor packs\" that allows certain objects to be\n   missing and lazily retrievable has been optimized (a bit).\n\n * When packet_write() fails, we gave an extra error message\n   unnecessarily, which has been corrected.\n\n * The checkout machinery has been taught to perform the actual\n   write-out of the files in parallel when able.\n\n * Show errno in the trace output in the error codepath that calls\n   read_raw_ref method.\n\n * Effort to make the command line completion (in contrib/) safe with\n   \"set -u\" continues.\n\n * Tweak a few tests for \"log --format=...\" that show timestamps in\n   various formats.\n\n * The reflog expiry machinery has been taught to emit trace events.\n\n * Over-the-wire protocol learns a new request type to ask for object\n   sizes given a list of object names.\n\n\nFixes since v2.31\n-----------------\n\n * The fsmonitor interface read from its input without making sure\n   there is something to read from.  This bug is new in 2.31\n   timeframe.\n\n * The data structure used by fsmonitor interface was not properly\n   duplicated during an in-core merge, leading to use-after-free etc.\n\n * \"git bisect\" reimplemented more in C during 2.30 timeframe did not\n   take an annotated tag as a good/bad endpoint well.  This regression\n   has been corrected.\n\n * Fix macros that can silently inject unintended null-statements.\n\n * CALLOC_ARRAY() macro replaces many uses of xcalloc().\n\n * Update insn in Makefile comments to run fuzz-all target.\n\n * Fix a corner case bug in \"git mv\" on case insensitive systems,\n   which was introduced in 2.29 timeframe.\n\n * We had a code to diagnose and die cleanly when a required\n   clean/smudge filter is missing, but an assert before that\n   unnecessarily fired, hiding the end-user facing die() message.\n   (merge 6fab35f748 mt/cleanly-die-upon-missing-required-filter later to maint).\n\n * Update C code that sets a few configuration variables when a remote\n   is configured so that it spells configuration variable names in the\n   canonical camelCase.\n   (merge 0f1da600e6 ab/remote-write-config-in-camel-case later to maint).\n\n * A new configuration variable has been introduced to allow choosing\n   which version of the generation number gets used in the\n   commit-graph file.\n   (merge 702110aac6 ds/commit-graph-generation-config later to maint).\n\n * Perf test update to work better in secondary worktrees.\n   (merge 36e834abc1 jk/perf-in-worktrees later to maint).\n\n * Updates to memory allocation code around the use of pcre2 library.\n   (merge c1760352e0 ab/grep-pcre2-allocfix later to maint).\n\n * \"git -c core.bare=false clone --bare ...\" would have segfaulted,\n   which has been corrected.\n   (merge 75555676ad bc/clone-bare-with-conflicting-config later to maint).\n\n * When \"git checkout\" removes a path that does not exist in the\n   commit it is checking out, it wasn't careful enough not to follow\n   symbolic links, which has been corrected.\n   (merge fab78a0c3d mt/checkout-remove-nofollow later to maint).\n\n * A few option description strings started with capital letters,\n   which were corrected.\n   (merge 5ee90326dc cc/downcase-opt-help later to maint).\n\n * Plug or annotate remaining leaks that trigger while running the\n   very basic set of tests.\n   (merge 68ffe095a2 ah/plugleaks later to maint).\n\n * The hashwrite() API uses a buffering mechanism to avoid calling\n   write(2) too frequently. This logic has been refactored to be\n   easier to understand.\n   (merge ddaf1f62e3 ds/clarify-hashwrite later to maint).\n\n * \"git cherry-pick/revert\" with or without \"--[no-]edit\" did not spawn\n   the editor as expected (e.g. \"revert --no-edit\" after a conflict\n   still asked to edit the message), which has been corrected.\n   (merge 39edfd5cbc en/sequencer-edit-upon-conflict-fix later to maint).\n\n * \"git daemon\" has been tightened against systems that take backslash\n   as directory separator.\n   (merge 9a7f1ce8b7 rs/daemon-sanitize-dir-sep later to maint).\n\n * A NULL-dereference bug has been corrected in an error codepath in\n   \"git for-each-ref\", \"git branch --list\" etc.\n   (merge c685450880 jk/ref-filter-segfault-fix later to maint).\n\n * Streamline the codepath to fix the UTF-8 encoding issues in the\n   argv[] and the prefix on macOS.\n   (merge c7d0e61016 tb/precompose-prefix-simplify later to maint).\n\n * The command-line completion script (in contrib/) had a couple of\n   references that would have given a warning under the \"-u\" (nounset)\n   option.\n   (merge c5c0548d79 vs/completion-with-set-u later to maint).\n\n * When \"git pack-objects\" makes a literal copy of a part of existing\n   packfile using the reachability bitmaps, its update to the progress\n   meter was broken.\n   (merge 8e118e8490 jk/pack-objects-bitmap-progress-fix later to maint).\n\n * The dependencies for config-list.h and command-list.h were broken\n   when the former was split out of the latter, which has been\n   corrected.\n   (merge 56550ea718 sg/bugreport-fixes later to maint).\n\n * \"git push --quiet --set-upstream\" was not quiet when setting the\n   upstream branch configuration, which has been corrected.\n   (merge f3cce896a8 ow/push-quiet-set-upstream later to maint).\n\n * The prefetch task in \"git maintenance\" assumed that \"git fetch\"\n   from any remote would fetch all its local branches, which would\n   fetch too much if the user is interested in only a subset of\n   branches there.\n   (merge 32f67888d8 ds/maintenance-prefetch-fix later to maint).\n\n * Clarify that pathnames recorded in Git trees are most often (but\n   not necessarily) encoded in UTF-8.\n   (merge 9364bf465d ab/pathname-encoding-doc later to maint).\n\n * \"git --config-env var=val cmd\" weren't accepted (only\n   --config-env=var=val was).\n   (merge c331551ccf ps/config-env-option-with-separate-value later to maint).\n\n * When the reachability bitmap is in effect, the \"do not lose\n   recently created objects and those that are reachable from them\"\n   safety to protect us from races were disabled by mistake, which has\n   been corrected.\n   (merge 2ba582ba4c jk/prune-with-bitmap-fix later to maint).\n\n * Cygwin pathname handling fix.\n   (merge bccc37fdc7 ad/cygwin-no-backslashes-in-paths later to maint).\n\n * \"git rebase --[no-]reschedule-failed-exec\" did not work well with\n   its configuration variable, which has been corrected.\n   (merge e5b32bffd1 ab/rebase-no-reschedule-failed-exec later to maint).\n\n * Portability fix for command line completion script (in contrib/).\n   (merge f2acf763e2 si/zsh-complete-comment-fix later to maint).\n\n * \"git repack -A -d\" in a partial clone unnecessarily loosened\n   objects in promisor pack.\n\n * \"git bisect skip\" when custom words are used for new/old did not\n   work, which has been corrected.\n\n * A few variants of informational message \"Already up-to-date\" has\n   been rephrased.\n   (merge ad9322da03 js/merge-already-up-to-date-message-reword later to maint).\n\n * \"git submodule update --quiet\" did not propagate the quiet option\n   down to underlying \"git fetch\", which has been corrected.\n   (merge 62af4bdd42 nc/submodule-update-quiet later to maint).\n\n * Document that our test can use \"local\" keyword.\n   (merge a84fd3bcc6 jc/test-allows-local later to maint).\n\n * The word-diff mode has been taught to work better with a word\n   regexp that can match an empty string.\n   (merge 0324e8fc6b pw/word-diff-zero-width-matches later to maint).\n\n * \"git p4\" learned to find branch points more efficiently.\n   (merge 6b79818bfb jk/p4-locate-branch-point-optim later to maint).\n\n * When \"git update-ref -d\" removes a ref that is packed, it left\n   empty directories under $GIT_DIR/refs/ for\n   (merge 5f03e5126d wc/packed-ref-removal-cleanup later to maint).\n\n * \"git clean\" and \"git ls-files -i\" had confusion around working on\n   or showing ignored paths inside an ignored directory, which has\n   been corrected.\n   (merge b548f0f156 en/dir-traversal later to maint).\n\n * The handling of \"%(push)\" formatting element of \"for-each-ref\" and\n   friends was broken when the same codepath started handling\n   \"%(push:<what>)\", which has been corrected.\n   (merge 1e1c4c5eac zh/ref-filter-push-remote-fix later to maint).\n\n * The bash prompt script (in contrib/) did not work under \"set -u\".\n   (merge 5c0cbdb107 en/prompt-under-set-u later to maint).\n\n * The \"chainlint\" feature in the test framework is a handy way to\n   catch common mistakes in writing new tests, but tends to get\n   expensive.  An knob to selectively disable it has been introduced\n   to help running tests that the developer has not modified.\n   (merge 2d86a96220 jk/test-chainlint-softer later to maint).\n\n * The \"rev-parse\" command did not diagnose the lack of argument to\n   \"--path-format\" option, which was introduced in v2.31 era, which\n   has been corrected.\n   (merge 99fc555188 wm/rev-parse-path-format-wo-arg later to maint).\n\n * Other code cleanup, docfix, build fix, etc.\n   (merge f451960708 dl/cat-file-doc-cleanup later to maint).\n   (merge 12604a8d0c sv/t9801-test-path-is-file-cleanup later to maint).\n   (merge ea7e63921c jr/doc-ignore-typofix later to maint).\n   (merge 23c781f173 ps/update-ref-trans-hook-doc later to maint).\n   (merge 42efa1231a jk/filter-branch-sha256 later to maint).\n   (merge 4c8e3dca6e tb/push-simple-uses-branch-merge-config later to maint).\n   (merge 6534d436a2 bs/asciidoctor-installation-hints later to maint).\n   (merge 47957485b3 ab/read-tree later to maint).\n   (merge 2be927f3d1 ab/diff-no-index-tests later to maint).\n   (merge 76593c09bb ab/detox-gettext-tests later to maint).\n   (merge 28e29ee38b jc/doc-format-patch-clarify later to maint).\n   (merge fc12b6fdde fm/user-manual-use-preface later to maint).\n   (merge dba94e3a85 cc/test-helper-bloom-usage-fix later to maint).\n   (merge 61a7660516 hn/reftable-tables-doc-update later to maint).\n   (merge 81ed96a9b2 jt/fetch-pack-request-fix later to maint).\n   (merge 151b6c2dd7 jc/doc-do-not-capitalize-clarification later to maint).\n   (merge 9160068ac6 js/access-nul-emulation-on-windows later to maint).\n   (merge 7a14acdbe6 po/diff-patch-doc later to maint).\n   (merge f91371b948 pw/patience-diff-clean-up later to maint).\n   (merge 3a7f0908b6 mt/clean-clean later to maint).\n   (merge d4e2d15a8b ab/streaming-simplify later to maint).\n   (merge 0e59f7ad67 ah/merge-ort-i18n later to maint).\n   (merge e6f68f62e0 ls/typofix later to maint).\n\n----------------------------------------------------------------\n\nChanges since v2.31.0 are as follows:\n\nAdam Dinwoodie (1):\n      cygwin: disallow backslashes in file names\n\nAlex Henrie (1):\n      merge-ort: split \"distinct types\" message into two translatable messages\n\nAndrey Bienkowski (1):\n      doc: clarify the filename encoding in git diff\n\nAndrzej Hunt (24):\n      Makefile: update 'make fuzz-all' docs to reflect modern clang\n      symbolic-ref: don't leak shortened refname in check_symref()\n      reset: free instead of leaking unneeded ref\n      clone: free or UNLEAK further pointers when finished\n      worktree: fix leak in dwim_branch()\n      init: remove git_init_db_config() while fixing leaks\n      init-db: silence template_dir leak when converting to absolute path\n      fsmonitor: avoid global-buffer-overflow READ when checking trivial response\n      parse-options: convert bitfield values to use binary shift\n      parse-options: don't leak alias help messages\n      transport: also free remote_refs in transport_disconnect()\n      merge-ort: only do pointer arithmetic for non-empty lists\n      revision: free remainder of old commit list in limit_list\n      wt-status: fix multiple small leaks\n      ls-files: free max_prefix when done\n      bloom: clear each bloom_key after use\n      branch: FREE_AND_NULL instead of NULL'ing real_ref\n      builtin/bugreport: don't leak prefixed filename\n      builtin/check-ignore: clear_pathspec before returning\n      builtin/checkout: clear pending objects after diffing\n      mailinfo: also free strbuf lists when clearing mailinfo\n      builtin/for-each-ref: free filter and UNLEAK sorting.\n      builtin/rebase: release git_format_patch_opt too\n      builtin/rm: avoid leaking pathspec and seen\n\nAtharva Raykar (1):\n      userdiff: add support for Scheme\n\nBagas Sanjaya (1):\n      INSTALL: note on using Asciidoctor to build doc\n\nBruno Albuquerque (1):\n      object-info: support for retrieving object info\n\nCharvi Mendiratta (23):\n      sequencer: pass todo_item to do_pick_commit()\n      sequencer: use const variable for commit message comments\n      rebase -i: add fixup [-C | -c] command\n      t3437: test script for fixup [-C|-c] options in interactive rebase\n      rebase -i: teach --autosquash to work with amend!\n      doc/git-rebase: add documentation for fixup [-C|-c] options\n      sequencer: fixup the datatype of the 'flag' argument\n      sequencer: rename a few functions\n      rebase -i: clarify and fix 'fixup -c' rebase-todo help\n      t/lib-rebase: update the documentation of FAKE_LINES\n      t/t3437: fixup here-docs in the 'setup' test\n      t/t3437: remove the dependency of 'expected-message' file from tests\n      t/t3437: check the author date of fixed up commit\n      t/t3437: simplify and document the test helpers\n      t/t3437: use named commits in the tests\n      t/t3437: fixup the test 'multiple fixup -c opens editor once'\n      doc/rebase -i: fix typo in the documentation of 'fixup' command\n      sequencer: export and rename subject_length()\n      commit: add amend suboption to --fixup to create amend! commit\n      commit: add a reword suboption to --fixup\n      t7500: add tests for --fixup=[amend|reword] options\n      t3437: use --fixup with options to create amend! commit\n      doc/git-commit: add documentation for fixup=[amend|reword] options\n\nChinmoy Chakraborty (1):\n      column, range-diff: downcase option description\n\nChristian Couder (1):\n      test-bloom: fix missing 'bloom' from usage string\n\nChristopher Schenk (1):\n      remote-curl: fall back to basic auth if Negotiate fails\n\nDennis Ameling (2):\n      cmake(install): fix double .exe suffixes\n      cmake(install): include vcpkg dlls\n\nDenton Liu (14):\n      git-cat-file.txt: monospace args, placeholders and filenames\n      git-cat-file.txt: remove references to \"sha1\"\n      stash show: teach --include-untracked and --only-untracked\n      stash show: learn stash.showIncludeUntracked\n      git-completion.bash: pass $__git_subcommand_idx from __git_main()\n      git-completion.bash: extract from else in _git_stash()\n      git-completion.bash: use __gitcomp_builtin() in _git_stash()\n      git-completion.bash: separate some commands onto their own line\n      git-completion.bash: rename to $__git_cmd_idx\n      git-completion.bash: use $__git_cmd_idx in more places\n      git-completion.bash: consolidate cases in _git_stash()\n      t3905: correct test title\n      stash show: fix segfault with --{include,only}-untracked\n      stash show: use stash.showIncludeUntracked even when diff options given\n\nDerrick Stolee (56):\n      commit-graph: create local repository pointer\n      commit-graph: use config to specify generation type\n      csum-file: make hashwrite() more readable\n      sparse-index: design doc and format update\n      t/perf: add performance test for sparse operations\n      t1092: clean up script quoting\n      sparse-index: add guard to ensure full index\n      sparse-index: implement ensure_full_index()\n      t1092: compare sparse-checkout to sparse-index\n      test-read-cache: print cache entries with --table\n      test-tool: don't force full index\n      unpack-trees: ensure full index\n      sparse-checkout: hold pattern list in index\n      sparse-index: add 'sdir' index extension\n      sparse-index: convert from full to sparse\n      submodule: sparse-index should not collapse links\n      unpack-trees: allow sparse directories\n      sparse-index: check index conversion happens\n      sparse-index: add index.sparse config option\n      sparse-checkout: toggle sparse index from builtin\n      sparse-checkout: disable sparse-index\n      cache-tree: integrate with sparse directory entries\n      sparse-index: loose integration with cache_tree_verify()\n      p2000: add sparse-index repos\n      maintenance: simplify prefetch logic\n      sparse-index: API protection strategy\n      *: remove 'const' qualifier for struct index_state\n      read-cache: expand on query into sparse-directory entry\n      cache: move ensure_full_index() to cache.h\n      add: ensure full index\n      checkout-index: ensure full index\n      checkout: ensure full index\n      commit: ensure full index\n      difftool: ensure full index\n      fsck: ensure full index\n      grep: ensure full index\n      ls-files: ensure full index\n      merge-index: ensure full index\n      rm: ensure full index\n      stash: ensure full index\n      update-index: ensure full index\n      dir: ensure full index\n      entry: ensure full index\n      merge-recursive: ensure full index\n      pathspec: ensure full index\n      read-cache: ensure full index\n      resolve-undo: ensure full index\n      revision: ensure full index\n      name-hash: don't add directories to name_hash\n      sparse-index: expand_to_path()\n      name-hash: use expand_to_path()\n      fetch: add --prefetch option\n      maintenance: use 'git fetch --prefetch'\n      maintenance: respect remote.*.skipFetchAll\n      dir: update stale description of treat_directory()\n      sparse-index: fix uninitialized jump\n\nElijah Newren (49):\n      diffcore-rename: use directory rename guided basename comparisons\n      diffcore-rename: provide basic implementation of idx_possible_rename()\n      diffcore-rename: add a mapping of destination names to their indices\n      Move computation of dir_rename_count from merge-ort to diffcore-rename\n      diffcore-rename: add function for clearing dir_rename_count\n      diffcore-rename: move dir_rename_counts into dir_rename_info struct\n      diffcore-rename: extend cleanup_dir_rename_info()\n      diffcore-rename: compute dir_rename_counts in stages\n      diffcore-rename: limit dir_rename_counts computation to relevant dirs\n      diffcore-rename: compute dir_rename_guess from dir_rename_counts\n      diffcore-rename: enable filtering possible rename sources\n      merge-ort: precompute subset of sources for which we need rename detection\n      merge-ort: add data structures for an alternate tree traversal\n      merge-ort: introduce wrappers for alternate tree traversal\n      merge-ort: precompute whether directory rename detection is needed\n      merge-ort: use relevant_sources to filter possible rename sources\n      merge-ort: skip rename detection entirely if possible\n      diffcore-rename: avoid doing basename comparisons for irrelevant sources\n      diffcore-rename: take advantage of \"majority rules\" to skip more renames\n      merge-ort, diffcore-rename: tweak dirs_removed and relevant_source type\n      merge-ort: record the reason that we want a rename for a directory\n      diffcore-rename: only compute dir_rename_count for relevant directories\n      diffcore-rename: check if we have enough renames for directories early on\n      diffcore-rename: add computation of number of unknown renames\n      merge-ort: record the reason that we want a rename for a file\n      diffcore-rename: determine which relevant_sources are no longer relevant\n      merge-ort: use STABLE_QSORT instead of QSORT where required\n      merge-ort: add a special minimal index just for renormalization\n      merge-ort: have ll_merge() use a special attr_index for renormalization\n      merge-ort: let renormalization change modify/delete into clean delete\n      merge-ort: support subtree shifting\n      t6428: new test for SKIP_WORKTREE handling and conflicts\n      merge-ort: implement CE_SKIP_WORKTREE handling with conflicted entries\n      t: mark several submodule merging tests as fixed under merge-ort\n      merge-ort: write $GIT_DIR/AUTO_MERGE whenever we hit a conflict\n      merge-recursive: add a bunch of FIXME comments documenting known bugs\n      Revert \"merge-ort: ignore the directory rename split conflict for now\"\n      t6423: mark remaining expected failure under merge-ort as such\n      Add testing with merge-ort merge strategy\n      sequencer: fix edit handling for cherry-pick and revert messages\n      dir: convert trace calls to trace2 equivalents\n      dir: report number of visited directories and paths with trace2\n      ls-files: error out on -i unless -o or -c are specified\n      t7300: add testcase showing unnecessary traversal into ignored directory\n      t3001, t7300: add testcase showcasing missed directory traversal\n      dir: avoid unnecessary traversal into ignored directory\n      dir: traverse into untracked directories if they may have ignored subfiles\n      dir: introduce readdir_skip_dot_and_dotdot() helper\n      git-prompt: work under set -u\n\nEric Sunshine (1):\n      merge(s): apply consistent punctuation to \"up to date\" messages\n\nEric Wong (1):\n      remote-curl: fix clone on sha256 repos\n\nFirmin Martin (1):\n      user-manual.txt: assign preface an id and a title\n\nGeorgios Kontaxis (1):\n      gitweb: add \"e-mail privacy\" feature to redact e-mail addresses\n\nHan Xin (1):\n      pack-objects: fix comment of reused_chunk.difference\n\nHan-Wen Nienhuys (3):\n      reftable: document an alternate cleanup method on Windows\n      refs: print errno for read_raw_ref if GIT_TRACE_REFS is set\n      refs/debug: trace into reflog expiry too\n\nJeff Hostetler (14):\n      pkt-line: eliminate the need for static buffer in packet_write_gently()\n      simple-ipc: design documentation for new IPC mechanism\n      simple-ipc: add win32 implementation\n      unix-socket: eliminate static unix_stream_socket() helper function\n      unix-socket: add backlog size option to unix_stream_listen()\n      unix-socket: disallow chdir() when creating unix domain sockets\n      unix-stream-server: create unix domain socket under lock\n      convert: make convert_attrs() and convert structs public\n      convert: add [async_]convert_to_working_tree_ca() variants\n      convert: add get_stream_filter_ca() variant\n      convert: add classification for conv_attrs struct\n      simple-ipc: add Unix domain socket implementation\n      t0052: add simple-ipc tests and t/helper/test-simple-ipc tool\n      simple-ipc: correct ifdefs when NO_PTHREADS is defined\n\nJeff King (43):\n      add open_nofollow() helper\n      attr: convert \"macro_ok\" into a flags field\n      exclude: add flags parameter to add_patterns()\n      attr: do not respect symlinks for in-tree .gitattributes\n      exclude: do not respect symlinks for in-tree .gitignore\n      mailmap: do not respect symlinks for in-tree .mailmap\n      p5303: add missing &&-chains\n      p5303: measure time to repack with keep\n      builtin/pack-objects.c: rewrite honor-pack-keep logic\n      packfile: add kept-pack cache for find_kept_pack_entry()\n      t/perf: handle worktrees as test repos\n      t/perf: avoid copying worktree files from test repo\n      t7003: test ref rewriting explicitly\n      filter-branch: drop multiple-ancestor warning\n      filter-branch: drop $_x40 glob\n      bisect: peel annotated tags to commits\n      t: annotate !PTHREADS tests with !FAIL_PREREQS\n      ref-filter: fix NULL check for parse object failure\n      midx.c: improve cache locality in midx_pack_order_cmp()\n      pack-objects: update \"nr_seen\" progress based on pack-reused count\n      is_promisor_object(): free tree buffer after parsing\n      lookup_unknown_object(): take a repository argument\n      revision: avoid parsing with --exclude-promisor-objects\n      pack-bitmap: clean up include_check after use\n      prune: save reachable-from-recent objects with bitmaps\n      t5300: modernize basic tests\n      t5300: check that we produced expected number of deltas\n      pack-objects: clamp negative window size to 0\n      t5316: check behavior of pack-objects --depth=0\n      pack-objects: clamp negative depth to 0\n      docs/format-patch: mention handling of merges\n      t7415: remove out-dated comment about translation\n      fsck_tree(): fix shadowed variable\n      fsck_tree(): wrap some long lines\n      t7415: rename to expand scope\n      t7450: test verify_path() handling of gitmodules\n      t7450: test .gitmodules symlink matching against obscured names\n      t0060: test ntfs/hfs-obscured dotfiles\n      fsck: warn about symlinked dotfiles we'll open with O_NOFOLLOW\n      docs: document symlink restrictions for dot-files\n      t: avoid sed-based chain-linting in some expensive cases\n      t5551: test http interaction with credential helpers\n      Revert \"remote-curl: fall back to basic auth if Negotiate fails\"\n\nJerry Zhang (3):\n      git-apply: try threeway first when \"--3way\" is used\n      git-apply: allow simultaneous --cached and --3way options\n      apply: adjust messages to account for --3way changes\n\nJoachim Kuebart (2):\n      git-p4: ensure complex branches are cloned correctly\n      git-p4: speed up search for branch parent\n\nJohannes Schindelin (10):\n      pkt-line: do not issue flush packets in write_packetized_*()\n      pkt-line: add PACKET_READ_GENTLE_ON_READ_ERROR option\n      pkt-line: add options argument to read_packetized_to_strbuf()\n      fsmonitor: fix memory corruption in some corner cases\n      fsmonitor: do not forget to release the token in `discard_index()`\n      SECURITY: describe how to report vulnerabilities\n      Document how we do embargoed releases\n      cmake: support SKIP_DASHED_BUILT_INS\n      cmake: add a preparatory work-around to accommodate `vcpkg`\n      msvc: avoid calling `access(\"NUL\", flags)`\n\nJohn Szakmeister (2):\n      http: store credential when PKI auth is used\n      http: drop the check for an empty proxy password before approving\n\nJonathan Tan (8):\n      t5606: run clone branch name test with protocol v2\n      fetch-pack: buffer object-format with other args\n      fetch-pack: refactor process_acks()\n      fetch-pack: refactor add_haves()\n      fetch-pack: refactor command and capability write\n      fetch: teach independent negotiation (no packfile)\n      send-pack: support push negotiation\n      t5601: mark protocol v2-only test\n\nJosh Soref (1):\n      merge: fix swapped \"up to date\" message components\n\nJulien Richard (1):\n      doc: .gitignore documentation typofix\n\nJunio C Hamano (27):\n      builtin/repack.c: reword comment around pack-objects flags\n      xcalloc: use CALLOC_ARRAY() when applicable\n      cocci: allow xcalloc(1, size)\n      The first batch in 2.32 cycle\n      The second batch\n      format-patch: give an overview of what a \"patch\" message is\n      The third patch\n      Git 2.31.1\n      The fourth batch\n      The fifth batch\n      The sixth batch\n      The seventh batch\n      The eighth batch\n      The ninth batch\n      doc: clarify \"do not capitalize the first word\" rule\n      The tenth batch\n      The eleventh (aka \"ort\") batch\n      The twelfth batch\n      The thirteenth batch\n      CodingGuidelines: explicitly allow \"local\" for test scripts\n      The fourteenth batch\n      The fifteenth batch\n      The sixteenth batch\n      The seventeenth batch\n      Git 2.32-rc0\n      A handful more topics before -rc1\n      Git 2.32-rc1\n\nKyle Meyer (1):\n      config.txt: add missing period\n\nLi Linchao (1):\n      builtin/clone.c: add --reject-shallow option\n\nLouis Sautier (1):\n      pretty: fix a typo in the documentation for %(trailers)\n\nLuke Shumaker (30):\n      .gitignore: ignore 'git-subtree' as a build artifact\n      subtree: t7900: update for having the default branch name be 'main'\n      subtree: t7900: use test-lib.sh's test_count\n      subtree: t7900: use consistent formatting\n      subtree: t7900: comment subtree_test_create_repo\n      subtree: t7900: use 'test' for string equality\n      subtree: t7900: delete some dead code\n      subtree: t7900: fix 'verify one file change per commit'\n      subtree: t7900: rename last_commit_message to last_commit_subject\n      subtree: t7900: add a test for the -h flag\n      subtree: t7900: add porcelain tests for 'pull' and 'push'\n      subtree: don't have loose code outside of a function\n      subtree: more consistent error propagation\n      subtree: drop support for git < 1.7\n      subtree: use `git merge-base --is-ancestor`\n      subtree: use git-sh-setup's `say`\n      subtree: use more explicit variable names for cmdline args\n      subtree: use \"$*\" instead of \"$@\" as appropriate\n      subtree: don't fuss with PATH\n      subtree: use \"^{commit}\" instead of \"^0\"\n      subtree: parse revs in individual cmd_ functions\n      subtree: remove duplicate check\n      subtree: add comments and sanity checks\n      subtree: don't let debug and progress output clash\n      subtree: have $indent actually affect indentation\n      subtree: give the docs a once-over\n      subtree: allow --squash to be used with --rejoin\n      subtree: allow 'split' flags to be passed to 'push'\n      subtree: push: allow specifying a local rev other than HEAD\n      subtree: be stricter about validating flags\n\nLénaïc Huard (1):\n      maintenance: fix two memory leaks\n\nMartin Ågren (2):\n      git-repack.txt: remove spurious \")\"\n      pretty-formats.txt: add missing space\n\nMatheus Tavares (30):\n      convert: fail gracefully upon missing clean cmd on required filter\n      symlinks: update comment on threaded_check_leading_path()\n      checkout: don't follow symlinks when removing entries\n      entry: extract a header file for entry.c functions\n      entry: make fstat_output() and read_blob_entry() public\n      entry: extract update_ce_after_write() from write_entry()\n      entry: move conv_attrs lookup up to checkout_entry()\n      entry: add checkout_entry_ca() taking preloaded conv_attrs\n      add: include magic part of pathspec on --refresh error\n      t3705: add tests for `git add` in sparse checkouts\n      add: make --chmod and --renormalize honor sparse checkouts\n      pathspec: allow to ignore SKIP_WORKTREE entries on index matching\n      refresh_index(): add flag to ignore SKIP_WORKTREE entries\n      add: warn when asked to update SKIP_WORKTREE entries\n      rm: honor sparse checkout patterns\n      pkt-line: do not report packet write errors twice\n      unpack-trees: add basic support for parallel checkout\n      parallel-checkout: make it truly parallel\n      parallel-checkout: add configuration options\n      parallel-checkout: support progress displaying\n      parallel-checkout: add design documentation\n      make_transient_cache_entry(): optionally alloc from mem_pool\n      builtin/checkout.c: complete parallel checkout support\n      checkout-index: add parallel checkout support\n      parallel-checkout: add tests for basic operations\n      parallel-checkout: add tests related to path collisions\n      t0028: extract encoding helpers to lib-encoding.sh\n      parallel-checkout: add tests related to .gitattributes\n      ci: run test round with parallel-checkout enabled\n      clean: remove unnecessary variable\n\nNicholas Clark (1):\n      submodule update: silence underlying fetch with \"--quiet\"\n\nNipunn Koorapati (3):\n      fsmonitor: skip lstat deletion check during git diff-index\n      fsmonitor: add assertion that fsmonitor is valid to check_removed\n      fsmonitor: add perf test for git diff HEAD\n\nPatrick Steinhardt (17):\n      githooks.txt: replace mentions of SHA-1 specific properties\n      githooks.txt: clarify documentation on reference-transaction hook\n      pack-bitmap: avoid traversal of objects referenced by uninteresting tag\n      uploadpack.txt: document implication of `uploadpackfilter.allow`\n      revision: mark commit parents as NOT_USER_GIVEN\n      list-objects: move tag processing into its own function\n      list-objects: support filtering by tag and commit\n      list-objects: implement object type filter\n      pack-bitmap: implement object type filter\n      pack-bitmap: implement combined filter\n      rev-list: allow filtering of provided items\n      config: rename `git_etc_config()`\n      config: unify code paths to get global config paths\n      config: allow overriding of global and system configuration\n      t1300: fix unset of GIT_CONFIG_NOSYSTEM leaking into subsequent tests\n      git.txt: fix synopsis of `--config-env` missing the equals sign\n      git: support separate arg for `--config-env`'s value\n\nPeter Oliver (1):\n      doc: point to diff attribute in patch format docs\n\nPhillip Wood (6):\n      rebase -i: only write fixup-message when it's needed\n      sequencer: factor out code to append squash message\n      rebase -i: comment out squash!/fixup! subjects from squash message\n      word diff: handle zero length matches\n      patience diff: remove unnecessary string comparisons\n      patience diff: remove unused variable\n\nRafael Silva (1):\n      repack: avoid loosening promisor objects in partial clones\n\nRamkumar Ramachandra (1):\n      Add entry for Ramkumar Ramachandra\n\nRamsay Jones (1):\n      bisect--helper: use BISECT_TERMS in 'bisect skip' command\n\nRené Scharfe (12):\n      pretty: add %(describe)\n      pretty: add merge and exclude options to %(describe)\n      t4205: assert %(describe) test coverage\n      pretty: document multiple %(describe) being inconsistent\n      fix xcalloc() argument order\n      archive: expand only a single %(describe) per archive\n      git-compat-util.h: drop trailing semicolon from macro definition\n      use CALLOC_ARRAY\n      vcs-svn: remove header files as well\n      block-sha1: drop trailing semicolon from macro definition\n      mem-pool: drop trailing semicolon from macro definition\n      daemon: sanitize all directory separators\n\nRobert Foss (1):\n      git-send-email: Respect core.hooksPath setting\n\nSZEDER Gábor (1):\n      Makefile: add missing dependencies of 'config-list.h'\n\nSardorbek Imomaliev (1):\n      work around zsh comment in __git_complete_worktree_paths\n\nSergey Organov (5):\n      diff-merges: introduce --diff-merges=on\n      diff-merges: refactor set_diff_merges()\n      diff-merges: adapt -m to enable default diff format\n      diff-merges: introduce log.diffMerges config variable\n      doc/diff-options: document new --diff-merges features\n\nShubham Verma (1):\n      t9801: replace test -f with test_path_is_file\n\nTaylor Blau (28):\n      packfile: introduce 'find_kept_pack_entry()'\n      revision: learn '--no-kept-objects'\n      builtin/pack-objects.c: add '--stdin-packs' option\n      builtin/repack.c: add '--geometric' option\n      builtin/repack.c: do not repack single packs with --geometric\n      t7703: test --geometric repack with loose objects\n      builtin/repack.c: assign pack split later\n      builtin/repack.c: be more conservative with unsigned overflows\n      Documentation/git-push.txt: correct configuration typo\n      builtin/pack-objects.c: ignore missing links with --stdin-packs\n      builtin/multi-pack-index.c: inline 'flags' with options\n      builtin/multi-pack-index.c: don't handle 'progress' separately\n      builtin/multi-pack-index.c: define common usage with a macro\n      builtin/multi-pack-index.c: split sub-commands\n      builtin/multi-pack-index.c: don't enter bogus cmd_mode\n      builtin/multi-pack-index.c: display usage on unrecognized command\n      t/helper/test-read-midx.c: add '--show-objects'\n      pack-bitmap: add 'test_bitmap_commits()' helper\n      t/helper/test-bitmap.c: initial commit\n      builtin/pack-objects.c: respect 'pack.preferBitmapTips'\n      midx: allow marking a pack as preferred\n      midx: don't free midx_name early\n      midx: keep track of the checksum\n      midx: make some functions non-static\n      Documentation/technical: describe multi-pack reverse indexes\n      pack-revindex: read multi-pack reverse indexes\n      pack-write.c: extract 'write_rev_file_order'\n      pack-revindex: write multi-pack reverse indexes\n\nTodd Zullinger (1):\n      t7500: remove non-existant C_LOCALE_OUTPUT prereq\n\nTorsten Bögershausen (3):\n      git mv foo FOO ; git mv foo bar gave an assert\n      precompose_utf8: make precompose_string_if_needed() public\n      macOS: precompose startup_info->prefix\n\nVille Skyttä (2):\n      completion: audit and guard $GIT_* against unset use\n      completion: avoid aliased command lookup error in nounset mode\n\nWill Chandler (1):\n      refs: cleanup directories when deleting packed ref\n\nWolfgang Müller (1):\n      rev-parse: fix segfault with missing --path-format argument\n\nZheNing Hu (8):\n      commit: add --trailer option\n      format-patch: allow a non-integral version numbers\n      ref-filter: get rid of show_ref_array_item\n      ref-filter: reuse output buffer\n      pretty: provide human date format\n      docs: correct descript of trailer.<token>.command\n      trailer: add new .cmd config option\n      ref-filter: fix read invalid union member bug\n\nbrian m. carlson (14):\n      builtin/init-db: handle bare clones when core.bare set to false\n      hash: add an algo member to struct object_id\n      Always use oidread to read into struct object_id\n      http-push: set algorithm when reading object ID\n      hash: add a function to finalize object IDs\n      Use the final_oid_fn to finalize hashing of object IDs\n      builtin/pack-redundant: avoid casting buffers to struct object_id\n      hash: set, copy, and use algo field in struct object_id\n      hash: provide per-algorithm null OIDs\n      builtin/show-index: set the algorithm for object IDs\n      commit-graph: don't store file hashes as struct object_id\n      builtin/pack-objects: avoid using struct object_id for pack hash\n      hex: default to the_hash_algo on zero algorithm value\n      hex: print objects using the hash algorithm member\n\nÆvar Arnfjörð Bjarmason (92):\n      grep/pcre2: drop needless assignment + assert() on opt->pcre2\n      grep/pcre2: drop needless assignment to NULL\n      grep/pcre2: correct reference to grep_init() in comment\n      grep/pcre2: prepare to add debugging to pcre2_malloc()\n      grep/pcre2: add GREP_PCRE2_DEBUG_MALLOC debug mode\n      grep/pcre2: use compile-time PCREv2 version test\n      grep/pcre2: use pcre2_maketables_free() function\n      grep/pcre2: actually make pcre2 use custom allocator\n      grep/pcre2: move back to thread-only PCREv2 structures\n      grep/pcre2: move definitions of pcre2_{malloc,free}\n      Makefile: guard against TEST_OBJS in the environment\n      Makefile: split up long OBJECTS line\n      Makefile: sort OBJECTS assignment for subsequent change\n      Makefile: split OBJECTS into OBJECTS and GIT_OBJS\n      Makefile: add {program,xdiff,test,git,fuzz}-objs & objects targets\n      remote: add camel-cased *.tagOpt key, like clone\n      remote: write camel-cased *.pushRemote on rename\n      fsck.c: refactor and rename common config callback\n      show tests: add test for \"git show <tree>\"\n      ls-files tests: add meaningful --with-tree tests\n      tree.c API: move read_tree() into builtin/ls-files.c\n      ls-files: don't needlessly pass around stage variable\n      ls-files: refactor away read_tree()\n      archive: stop passing \"stage\" through read_tree_recursive()\n      tree.h API: expose read_tree_1() as read_tree_at()\n      tree.h API: simplify read_tree_recursive() signature\n      diff --no-index tests: add test for --exit-code\n      diff --no-index tests: test mode normalization\n      rebase: remove transitory rebase.useBuiltin setting & env\n      mktag tests: fix broken \"&&\" chain\n      fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}\n      fsck.h: use \"enum object_type\" instead of \"int\"\n      fsck.c: rename variables in fsck_set_msg_type() for less confusion\n      fsck.c: remove (mostly) redundant append_msg_id() function\n      fsck.c: rename remaining fsck_msg_id \"id\" to \"msg_id\"\n      fsck.c: refactor fsck_msg_type() to limit scope of \"int msg_type\"\n      fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enum\n      fsck.h: re-order and re-assign \"enum fsck_msg_type\"\n      fsck.c: call parse_msg_type() early in fsck_set_msg_type()\n      fsck.c: undefine temporary STR macro after use\n      fsck.c: give \"FOREACH_MSG_ID\" a more specific name\n      fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.h\n      fsck.c: pass along the fsck_msg_id in the fsck_error callback\n      fsck.c: add an fsck_set_msg_type() API that takes enums\n      fsck.c: move gitmodules_{found,done} into fsck_options\n      fetch-pack: don't needlessly copy fsck_options\n      fetch-pack: use file-scope static struct for fsck_options\n      fetch-pack: use new fsck API to printing dangling submodules\n      Makefile: add QUIET_GEN to \"tags\" and \"TAGS\" targets\n      git-send-email: replace \"map\" in void context with \"for\"\n      git-send-email: test full --validate output\n      git-send-email: refactor duplicate $? checks into a function\n      git-send-email: improve --validate error output\n      bash completion: complete CHERRY_PICK_HEAD\n      config.c: remove last remnant of GIT_TEST_GETTEXT_POISON\n      userdiff style: re-order drivers in alphabetical order\n      userdiff style: declare patterns with consistent style\n      userdiff style: normalize pascal regex declaration\n      userdiff: add and use for_each_userdiff_driver()\n      userdiff tests: explicitly test \"default\" pattern\n      userdiff tests: list builtin drivers via test-tool\n      userdiff: remove support for \"broken\" tests\n      blame tests: don't rely on t/t4018/ directory\n      blame tests: simplify userdiff driver test\n      rebase tests: camel-case rebase.rescheduleFailedExec consistently\n      rebase: don't override --no-reschedule-failed-exec with config\n      Documentation/Makefile: make $(wildcard howto/*.txt) a var\n      Documentation/Makefile: make doc.dep dependencies a variable again\n      doc lint: Perl \"strict\" and \"warnings\" in lint-gitlink.perl\n      doc lint: fix bugs in, simplify and improve lint script\n      doc lint: lint and fix missing \"GIT\" end sections\n      doc lint: lint relative section order\n      docs: fix linting issues due to incorrect relative section order\n      svn tests: remove legacy re-setup from init-clone test\n      svn tests: refactor away a \"set -e\" in test body\n      tests: remove all uses of test_i18cmp\n      usage.c: don't copy/paste the same comment three times\n      api docs: document BUG() in api-error-handling.txt\n      api docs: document that BUG() emits a trace2 error event\n      pretty tests: simplify %aI/%cI date format test\n      pretty tests: give --date/format tests a better description\n      sparse-index.c: remove set_index_sparse_config()\n      streaming.c: avoid forward declarations\n      streaming.c: remove enum/function/vtbl indirection\n      streaming.c: remove {open,close,read}_method_decl() macros\n      streaming.c: stop passing around \"object_info *\" to open()\n      streaming.c: move {open,close,read} from vtable to \"struct git_istream\"\n      Makefile: don't re-define PERL_DEFINES\n      Makefile: regenerate perl/build/* if GIT-PERL-DEFINES changes\n      Makefile: regenerate *.pm on NO_PERL_CPAN_FALLBACKS change\n      perl: use mock i18n functions under NO_GETTEXT=Y\n      Makefile: make PERL_DEFINES recursively expanded\n\nØystein Walle (2):\n      transport: respect verbosity when setting upstream\n      add: die if both --dry-run and --interactive are given\n\nĐoàn Trần Công Danh (6):\n      mailinfo: load default metainfo_charset lazily\n      mailinfo: stop parsing options manually\n      mailinfo: warn if CRLF found in decoded base64/QP email\n      mailinfo: allow squelching quoted CRLF warning\n      mailinfo: allow stripping quoted CR without warning\n      am: learn to process quoted lines that ends with CRLF\n\n"},{"id":"425343","messageId":"3156524.cFZ8jhdkIW@cayenne","threadId":"55757","inReplyTo":"xmqqk0nqq266.fsf@gitster.g","subject":"Re: [ANNOUNCE] Git v2.32.0-rc1","fromName":"Jean-Noël AVILA","fromEmail":"jn.avila@free.fr","sentAt":"2021-05-22T20:25:44Z","receivedAt":"2021-05-22T20:25:47Z","isPatch":false,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"Is there any reason the patch\n\n[PATCH] help: fix small typo in error message\n\nwas not pushed for update?\n\nIt affects translators.\n\nJN\n\n\n\n"},{"id":"425383","messageId":"xmqqim39o0k6.fsf@gitster.g","threadId":"55757","inReplyTo":"3156524.cFZ8jhdkIW@cayenne","subject":"Re: [ANNOUNCE] Git v2.32.0-rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-05-23T16:51:53Z","receivedAt":"2021-05-23T17:01:12Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jean-Noël AVILA <jn.avila@free.fr> writes:\n\n> Is there any reason the patch\n>\n> [PATCH] help: fix small typo in error message\n>\n> was not pushed for update?\n>\n> It affects translators.\n\nThanks for asking.  Immediately after -rc0, the i18n coordinator\nasked translators to start working based on a snapshot taken back\nthen; not merging commits that only changes translatable messages is\na way to avoid invalidating the work translators have been done.\n\n"}]}