{"thread":{"id":"57657","subject":"[ANNOUNCE] Git v2.36.0-rc0","startedAt":"2022-04-04T21:23:11Z","lastAt":"2022-04-08T08:29:13Z","messageCount":4,"participants":["Junio C Hamano","rsbecker@nexbridge.com","Adam Dinwoodie"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"453047","messageId":"xmqqo81gpokn.fsf@gitster.g","threadId":"57657","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.36.0-rc0","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-04-04T20:43:04Z","receivedAt":"2022-04-04T21:23:11Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"An early preview release Git v2.36.0-rc0 is now available for\ntesting at the usual places.  It is comprised of 661 non-merge\ncommits since v2.35.0, contributed by 80 people, 25 of which are\nnew 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.36.0-rc0' 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.35.0 are as follows.\nWelcome to the Git development community!\n\n  Abhradeep Chakraborty, BRESSAT Jonathan, Chen Bojun,\n  COGONI Guillaume, David Cantrell, Des Preston, Hongyi Zhao,\n  Jason Yundt, Jayati Shrivastava, Jaydeep Das, Jaydeep P Das,\n  Jose Lopes, Justin Donnelly, Kraymer, Liginity Lee, Matheus\n  Felipe, Maximilian Reichel, Michael McClimon, Nihal Jere,\n  Pedro Martelletto, Robert Coup, Sean Allred, Shaoxuan Yuan,\n  Shubham Mishra, and Waleed Khan.\n\nReturning contributors who helped this release are as follows.\nThanks for your continued support.\n\n  Ævar Arnfjörð Bjarmason, Alex Henrie, Atharva Raykar,\n  Bagas Sanjaya, Beat Bolli, brian m. carlson, Christian Couder,\n  Daniel Hahler, Derrick Stolee, Elia Pinto, Elijah Newren,\n  Emily Shaffer, Eric Sunshine, Fabian Stelzer, Glen Choo, Greg\n  Hurrell, Han-Wen Nienhuys, Jacob Keller, Jean-Noël Avila, Jeff\n  Hostetler, Jeff King, Jerry Zhang, Jessica Clarke, Jiang Xin,\n  Joel Holdsworth, Johannes Altmanninger, Johannes Schindelin,\n  Johannes Sixt, John Cai, Jonathan Nieder, Jonathan Tan, Josh\n  Steadmon, Junio C Hamano, Kevin Willford, Lessley Dennington,\n  Marc Strapetz, Matt Cooper, Michael J Gruber, Neeraj Singh,\n  Patrick Steinhardt, Philip Oakley, Philippe Blain, Phillip Wood,\n  Ramkumar Ramachandra, René Scharfe, Shourya Shukla, SZEDER\n  Gábor, Tao Klerks, Taylor Blau, Teng Long, Thomas Gummerer,\n  Thomas Koutcher, Tilman Vogel, Todd Zullinger, and Victoria Dye.\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 2.36 Release Notes (draft)\n==============================\n\nUpdates since Git 2.35\n----------------------\n\nBackward compatibility warts\n\n * \"git name-rev --stdin\" has been deprecated and issues a warning\n   when used; use \"git name-rev --annotate-stdin\" instead.\n\n * \"git clone --filter=... --recurse-submodules\" only makes the\n   top-level a partial clone, while submodules are fully cloned.  This\n   behaviour is changed to pass the same filter down to the submodules.\n\n\nNote to those who build from the source\n\n * Since Git 2.31, our source assumed that the compiler you use to\n   build Git supports variadic macros, with an easy-to-use escape\n   hatch to allow compilation without variadic macros with an request\n   to report that you had to use the escape hatch to the list.\n   Because we haven't heard from anybody who actually needed to use\n   the escape hatch, it has been removed, making support of variadic\n   macros a hard requirement.\n\n\nUI, Workflows & Features\n\n * Assorted updates to \"git cat-file\", especially \"-h\".\n\n * The command line completion (in contrib/) learns to complete\n   arguments to give to \"git sparse-checkout\" command.\n\n * \"git log --remerge-diff\" shows the difference from mechanical merge\n   result and the result that is actually recorded in a merge commit.\n\n * \"git log\" and friends learned an option --exclude-first-parent-only\n   to propagate UNINTERESTING bit down only along the first-parent\n   chain, just like --first-parent option shows commits that lack the\n   UNINTERESTING bit only along the first-parent chain.\n\n * The command line completion script (in contrib/) learned to\n   complete all Git subcommands, including the ones that are normally\n   hidden, when GIT_COMPLETION_SHOW_ALL_COMMANDS is used.\n\n * \"git branch\" learned the \"--recurse-submodules\" option.\n\n * A not-so-common mistake is to write a script to feed \"git bisect\n   run\" without making it executable, in which case all tests will\n   exit with 126 or 127 error codes, even on revisions that are marked\n   as good.  Try to recognize this situation and stop iteration early.\n\n * When \"index-pack\" dies due to incoming data exceeding the maximum\n   allowed input size, include the value of the limit in the error\n   message.\n\n * The error message given by \"git switch HEAD~4\" has been clarified\n   to suggest the \"--detach\" option that is required.\n\n * In sparse-checkouts, files mis-marked as missing from the working tree\n   could lead to later problems.  Such files were hard to discover, and\n   harder to correct.  Automatically detecting and correcting the marking\n   of such files has been added to avoid these problems.\n\n * \"git cat-file\" learns \"--batch-command\" mode, which is a more\n   flexible interface than the existing \"--batch\" or \"--batch-check\"\n   modes, to allow different kinds of inquiries made.\n\n * The level of verbose output from the ort backend during inner merge\n   has been aligned to that of the recursive backend.\n\n * \"git remote rename A B\", depending on the number of remote-tracking\n   refs involved, takes long time renaming them.  The command has been\n   taught to show progress bar while making the user wait.\n\n * Bundle file format gets extended to allow a partial bundle,\n   filtered by similar criteria you would give when making a\n   partial/lazy clone.\n\n * A new built-in userdiff driver for kotlin has been added.\n\n * \"git repack\" learned a new configuration to disable triggering of\n   age-old \"update-server-info\" command, which is rarely useful these\n   days.\n\n * \"git stash\" does not allow subcommands it internally runs as its\n   implementation detail, except for \"git reset\", to emit messages;\n   now \"git reset\" part has also been squelched.\n\n * \"git ls-tree\" learns \"--oid-only\" option, similar to \"--name-only\",\n   and more generalized \"--format\" option.\n\n * \"git fetch --refetch\" learned to fetch everything without telling\n   the other side what we already have, which is useful when you\n   cannot trust what you have in the local object store.\n\n * \"git branch\" gives hint when branch tracking cannot be established\n   because fetch refspecs from multiple remote repositories overlap.\n\n * \"git worktree list --porcelain\" did not c-quote pathnames and lock\n   reasons with unsafe bytes correctly, which is worked around by\n   introducing NUL terminated output format with \"-z\".\n\n\nPerformance, Internal Implementation, Development Support etc.\n\n * \"git apply\" (ab)used the util pointer of the string-list to keep\n   track of how each symbolic link needs to be handled, which has been\n   simplified by using strset.\n\n * Fix a hand-rolled alloca() imitation that may have violated\n   alignment requirement of data being sorted in compatibility\n   implementation of qsort_s() and stable qsort().\n\n * Use the parse-options API in \"git reflog\" command.\n\n * The conditional inclusion mechanism of configuration files using\n   \"[includeIf <condition>]\" learns to base its decision on the\n   URL of the remote repository the repository interacts with.\n   (merge 399b198489 jt/conditional-config-on-remote-url later to maint).\n\n * \"git name-rev --stdin\" does not behave like usual \"--stdin\" at\n   all.  Start the process of renaming it to \"--annotate-stdin\".\n   (merge a2585719b3 jc/name-rev-stdin later to maint).\n\n * \"git update-index\", \"git checkout-index\", and \"git clean\" are\n   taught to work better with the sparse checkout feature.\n\n * Use an internal call to reset_head() helper function instead of\n   spawning \"git checkout\" in \"rebase\", and update code paths that are\n   involved in the change.\n\n * Messages \"ort\" merge backend prepares while dealing with conflicted\n   paths were unnecessarily confusing since it did not differentiate\n   inner merges and outer merges.\n\n * Small modernization of the rerere-train script (in contrib/).\n\n * Use designated initializers we started using in mid 2017 in more\n   parts of the codebase that are relatively quiescent.\n\n * Improve failure case behaviour of xdiff library when memory\n   allocation fails.\n\n * General clean-up in reftable implementation, including\n   clarification of the API documentation, tightening the code to\n   honor documented length limit, etc.\n\n * Remove the escape hatch we added when we introduced the weather\n   balloon to use variadic macros unconditionally, to make it official\n   that we now have a hard dependency on the feature.\n\n * Makefile refactoring with a bit of suffixes rule stripping to\n   optimize the runtime overhead.\n\n * \"git stash drop\" is reimplemented as an internal call to\n   reflog_delete() function, instead of invoking \"git reflog delete\"\n   via run_command() API.\n\n * Count string_list items in size_t, not \"unsigned int\".\n\n * The single-key interactive operation used by \"git add -p\" has been\n   made more robust.\n\n * Remove unneeded <meta http-equiv=content-type...> from gitweb\n   output.\n\n * \"git name-rev\" learned to use the generation numbers when setting\n   the lower bound of searching commits used to explain the revision,\n   when available, instead of committer time.\n\n * Replace core.fsyncObjectFiles with two new configuration variables,\n   core.fsync and core.fsyncMethod.\n\n * Updates to refs traditionally weren't fsync'ed, but we can\n   configure using core.fsync variable to do so.\n\n * \"git reflog\" command now uses parse-options API to parse its\n   command line options.\n\n\nFixes since v2.35\n-----------------\n\n * \"rebase\" and \"stash\" in secondary worktrees are broken in\n   Git 2.35.0, which has been corrected.\n\n * \"git pull --rebase\" ignored the rebase.autostash configuration\n   variable when the remote history is a descendant of our history,\n   which has been corrected.\n   (merge 3013d98d7a pb/pull-rebase-autostash-fix later to maint).\n\n * \"git update-index --refresh\" has been taught to deal better with\n   racy timestamps (just like \"git status\" already does).\n   (merge 2ede073fd2 ms/update-index-racy later to maint).\n\n * Avoid tests that are run under GIT_TRACE2 set from failing\n   unnecessarily.\n   (merge 944d808e42 js/test-unset-trace2-parents later to maint).\n\n * The merge-ort misbehaved when merge.renameLimit configuration is\n   set too low and failed to find all renames.\n   (merge 9ae39fef7f en/merge-ort-restart-optim-fix later to maint).\n\n * We explain that revs come first before the pathspec among command\n   line arguments, but did not spell out that dashed options come\n   before other args, which has been corrected.\n   (merge c11f95010c tl/doc-cli-options-first later to maint).\n\n * \"git add -p\" rewritten in C regressed hunk splitting in some cases,\n   which has been corrected.\n   (merge 7008ddc645 pw/add-p-hunk-split-fix later to maint).\n\n * \"git fetch --negotiate-only\" is an internal command used by \"git\n   push\" to figure out which part of our history is missing from the\n   other side.  It should never recurse into submodules even when\n   fetch.recursesubmodules configuration variable is set, nor it\n   should trigger \"gc\".  The code has been tightened up to ensure it\n   only does common ancestry discovery and nothing else.\n   (merge de4eaae63a gc/fetch-negotiate-only-early-return later to maint).\n\n * The code path that verifies signatures made with ssh were made to\n   work better on a system with CRLF line endings.\n   (merge caeef01ea7 fs/ssh-signing-crlf later to maint).\n\n * \"git sparse-checkout init\" failed to write into $GIT_DIR/info\n   directory when the repository was created without one, which has\n   been corrected to auto-create it.\n   (merge 7f44842ac1 jt/sparse-checkout-leading-dir-fix later to maint).\n\n * Cloning from a repository that does not yet have any branches or\n   tags but has other refs resulted in a \"remote transport reported\n   error\", which has been corrected.\n   (merge dccea605b6 jt/clone-not-quite-empty later to maint).\n\n * Mark in various places in the code that the sparse index and the\n   split index features are mutually incompatible.\n   (merge 451b66c533 js/sparse-vs-split-index later to maint).\n\n * Update the logic to compute alignment requirement for our mem-pool.\n   (merge e38bcc66d8 jc/mem-pool-alignment later to maint).\n\n * Pick a better random number generator and use it when we prepare\n   temporary filenames.\n   (merge 47efda967c bc/csprng-mktemps later to maint).\n\n * Update the contributor-facing documents on proposed log messages.\n   (merge cdba0295b0 jc/doc-log-messages later to maint).\n\n * When \"git fetch --prune\" failed to prune the refs it wanted to\n   prune, the command issued error messages but exited with exit\n   status 0, which has been corrected.\n   (merge c9e04d905e tg/fetch-prune-exit-code-fix later to maint).\n\n * Problems identified by Coverity in the reftable code have been\n   corrected.\n   (merge 01033de49f hn/reftable-coverity-fixes later to maint).\n\n * A bug that made multi-pack bitmap and the object order out-of-sync,\n   making the .midx data corrupt, has been fixed.\n   (merge f8b60cf99b tb/midx-bitmap-corruption-fix later to maint).\n\n * The build procedure has been taught to notice older version of zlib\n   and enable our replacement uncompress2() automatically.\n   (merge 07564773c2 ab/auto-detect-zlib-compress2 later to maint).\n\n * Interaction between fetch.negotiationAlgorithm and\n   feature.experimental configuration variables has been corrected.\n   (merge 714edc620c en/fetch-negotiation-default-fix later to maint).\n\n * \"git diff --diff-filter=aR\" is now parsed correctly.\n   (merge 75408ca949 js/diff-filter-negation-fix later to maint).\n\n * When \"git subtree\" wants to create a merge, it used \"git merge\" and\n   let it be affected by end-user's \"merge.ff\" configuration, which\n   has been corrected.\n   (merge 9158a3564a tk/subtree-merge-not-ff-only later to maint).\n\n * Unlike \"git apply\", \"git patch-id\" did not handle patches with\n   hunks that has only 1 line in either preimage or postimage, which\n   has been corrected.\n   (merge 757e75c81e jz/patch-id-hunk-header-parsing-fix later to maint).\n\n * \"receive-pack\" checks if it will do any ref updates (various\n   conditions could reject a push) before received objects are taken\n   out of the temporary directory used for quarantine purposes, so\n   that a push that is known-to-fail will not leave crufts that a\n   future \"gc\" needs to clean up.\n   (merge 5407764069 cb/clear-quarantine-early-on-all-ref-update-errors later to maint).\n\n * Because a deletion of ref would need to remove it from both the\n   loose ref store and the packed ref store, a delete-ref operation\n   that logically removes one ref may end up invoking ref-transaction\n   hook twice, which has been corrected.\n   (merge 2ed1b64ebd ps/avoid-unnecessary-hook-invocation-with-packed-refs later to maint).\n\n * When there is no object to write .bitmap file for, \"git\n   multi-pack-index\" triggered an error, instead of just skipping,\n   which has been corrected.\n   (merge eb57277ba3 tb/midx-no-bitmap-for-no-objects later to maint).\n\n * \"git cmd -h\" outside a repository should error out cleanly for many\n   commands, but instead it hit a BUG(), which has been corrected.\n   (merge 87ad07d735 js/short-help-outside-repo-fix later to maint).\n\n * \"working tree\" and \"per-worktree ref\" were in glossary, but\n   \"worktree\" itself wasn't, which has been corrected.\n   (merge 2df5387ed0 jc/glossary-worktree later to maint).\n\n * L10n support for a few error messages.\n   (merge 3d3c23b3a7 bs/forbid-i18n-of-protocol-token-in-fetch-pack later to maint).\n\n * Test modernization.\n   (merge d4fe066e4b sy/t0001-use-path-is-helper later to maint).\n\n * \"git log --graph --graph\" used to leak a graph structure, and there\n   was no way to countermand \"--graph\" that appear earlier on the\n   command line.  A \"--no-graph\" option has been added and resource\n   leakage has been plugged.\n\n * Error output given in response to an ambiguous object name has been\n   improved.\n   (merge 3a73c1dfaf ab/ambiguous-object-name later to maint).\n\n * \"git sparse-checkout\" wants to work with per-worktree configuration,\n   but did not work well in a worktree attached to a bare repository.\n   (merge 3ce1138272 ds/sparse-checkout-requires-per-worktree-config later to maint).\n\n * Setting core.untrackedCache to true failed to add the untracked\n   cache extension to the index.\n\n * Workaround we have for versions of PCRE2 before their version 10.36\n   were in effect only for their versions newer than 10.36 by mistake,\n   which has been corrected.\n   (merge 97169fc361 rs/pcre-invalid-utf8-fix-fix later to maint).\n\n * Document Taylor as a new member of Git PLC at SFC.  Welcome.\n   (merge e8d56ca863 tb/coc-plc-update later to maint).\n\n * \"git checkout -b branch/with/multi/level/name && git stash\" only\n   recorded the last level component of the branch name, which has\n   been corrected.\n\n * \"git fetch\" can make two separate fetches, but ref updates coming\n   from them were in two separate ref transactions under \"--atomic\",\n   which has been corrected.\n\n * Check the return value from parse_tree_indirect() to turn segfaults\n   into calls to die().\n   (merge 8d2eaf649a gc/parse-tree-indirect-errors later to maint).\n\n * Newer version of GPGSM changed its output in a backward\n   incompatible way to break our code that parses its output.  It also\n   added more processes our tests need to kill when cleaning up.\n   Adjustments have been made to accommodate these changes.\n   (merge b0b70d54c4 fs/gpgsm-update later to maint).\n\n * The untracked cache newly computed weren't written back to the\n   on-disk index file when there is no other change to the index,\n   which has been corrected.\n\n * \"git config -h\" did not describe the \"--type\" option correctly.\n   (merge 5445124fad mf/fix-type-in-config-h later to maint).\n\n * The way generation number v2 in the commit-graph files are\n   (not) handled has been corrected.\n   (merge 6dbf4b8172 ds/commit-graph-gen-v2-fixes later to maint).\n\n * The method to trigger malloc check used in our tests no longer work\n   with newer versions of glibc.\n   (merge baedc59543 ep/test-malloc-check-with-glibc-2.34 later to maint).\n\n * When \"git fetch --recurse-submodules\" grabbed submodule commits\n   that would be needed to recursively check out newly fetched commits\n   in the superproject, it only paid attention to submodules that are\n   in the current checkout of the superproject.  We now do so for all\n   submodules that have been run \"git submodule init\" on.\n\n * \"git rebase $base $non_branch_commit\", when $base is an ancestor or\n   the $non_branch_commit, modified the current branch, which has been\n   corrected.\n\n * When \"shallow\" information is updated, we forgot to update the\n   in-core equivalent, which has been corrected.\n\n * When creating a loose object file, we didn't report the exact\n   filename of the file we failed to fsync, even though the\n   information was readily available, which has been corrected.\n\n * \"git am\" can read from the standard input when no mailbox is given\n   on the command line, but the end-user gets no indication when it\n   happens, making Git appear stuck.\n   (merge 7b20af6a06 jc/mailsplit-warn-on-tty later to maint).\n\n * \"git mv\" failed to refresh the cached stat information for the\n   entry it moved.\n   (merge b7f9130a06 vd/mv-refresh-stat later to maint).\n\n * Other code cleanup, docfix, build fix, etc.\n   (merge cfc5cf428b jc/find-header later to maint).\n   (merge 40e7cfdd46 jh/p4-fix-use-of-process-error-exception later to maint).\n   (merge 727e6ea350 jh/p4-spawning-external-commands-cleanup later to maint).\n   (merge 0a6adc26e2 rs/grep-expr-cleanup later to maint).\n   (merge 4ed7dfa713 po/readme-mention-contributor-hints later to maint).\n   (merge 6046f7a91c en/plug-leaks-in-merge later to maint).\n   (merge 8c591dbfce bc/clarify-eol-attr later to maint).\n   (merge 518e15db74 rs/parse-options-lithelp-help later to maint).\n   (merge cbac0076ef gh/doc-typos later to maint).\n   (merge ce14de03db ab/no-errno-from-resolve-ref-unsafe later to maint).\n   (merge 2826ffad8c rc/negotiate-only-typofix later to maint).\n   (merge 0f03f04c5c en/sparse-checkout-leakfix later to maint).\n   (merge 74f3390dde sy/diff-usage-typofix later to maint).\n   (merge 45d0212a71 ll/doc-mktree-typofix later to maint).\n   (merge e9b272e4c1 js/no-more-legacy-stash later to maint).\n   (merge 6798b08e84 ab/do-not-hide-failures-in-git-dot-pm later to maint).\n   (merge 9325285df4 po/doc-check-ignore-markup-fix later to maint).\n   (merge cd26cd6c7c sy/modernize-t-lib-read-tree-m-3way later to maint).\n   (merge d17294a05e ab/hash-object-leakfix later to maint).\n   (merge b8403129d3 jd/t0015-modernize later to maint).\n   (merge 332acc248d ds/mailmap later to maint).\n   (merge 04bf052eef ab/grep-patterntype later to maint).\n   (merge 6ee36364eb ab/diff-free-more later to maint).\n   (merge 63a36017fe nj/read-tree-doc-reffix later to maint).\n   (merge eed36fce38 sm/no-git-in-upstream-of-pipe-in-tests later to maint).\n   (merge c614beb933 ep/t6423-modernize later to maint).\n   (merge 57be9c6dee ab/reflog-prep-fix later to maint).\n   (merge 5327d8982a js/in-place-reverse-in-sequencer later to maint).\n   (merge 2e2c0be51e dp/worktree-repair-in-usage later to maint).\n   (merge 6563706568 jc/coding-guidelines-decl-in-for-loop later to maint).\n\n----------------------------------------------------------------\n\nChanges since v2.35.0 are as follows:\n\nAbhradeep Chakraborty (2):\n      amend remaining usage strings according to style guide\n      partial-clone: add a partial-clone test case\n\nAlex Henrie (3):\n      log: fix memory leak if --graph is passed multiple times\n      log: add a --no-graph option\n      switch: mention the --detach option when dying due to lack of a branch\n\nAtharva Raykar (5):\n      submodule--helper: get remote names from any repository\n      submodule--helper: refactor get_submodule_displaypath()\n      submodule--helper: allow setting superprefix for init_submodule()\n      submodule--helper: run update using child process struct\n      submodule: move core cmd_update() logic to C\n\nBagas Sanjaya (1):\n      fetch-pack: parameterize message containing 'ready' keyword\n\nCOGONI Guillaume (3):\n      t/t3903-stash.sh: replace test [-d|-f] with test_path_is_*\n      tests: allow testing if a path is truly a file or a directory\n      tests: make the code more readable\n\nChen Bojun (1):\n      receive-pack: purge temporary data if no command is ready to run\n\nDavid Cantrell (1):\n      completion: tab completion of filenames for 'git restore'\n\nDerrick Stolee (45):\n      Documentation: add extensions.worktreeConfig details\n      worktree: create init_worktree_config()\n      config: add repo_config_set_worktree_gently()\n      sparse-checkout: set worktree-config correctly\n      worktree: copy sparse-checkout patterns and config on add\n      config: make git_configset_get_string_tmp() private\n      mailmap: change primary address for Derrick Stolee\n      dir: force untracked cache with core.untrackedCache\n      worktree: combine two translatable messages\n      worktree: extract copy_filtered_worktree_config()\n      worktree: extract copy_sparse_checkout()\n      worktree: extract checkout_worktree()\n      worktree: use 'worktree' over 'working tree'\n      worktree: use 'worktree' over 'working tree'\n      worktree: use 'worktree' over 'working tree'\n      worktree: use 'worktree' over 'working tree'\n      worktree: use 'worktree' over 'working tree'\n      worktree: use 'worktree' over 'working tree'\n      worktree: use 'worktree' over 'working tree'\n      test-read-graph: include extra post-parse info\n      t5318: extract helpers to lib-commit-graph.sh\n      commit-graph: fix ordering bug in generation numbers\n      commit-graph: start parsing generation v2 (again)\n      commit-graph: fix generation number v2 overflow values\n      commit-graph: declare bankruptcy on GDAT chunks\n      index-pack: document and test the --promisor option\n      list-objects-filter-options: create copy helper\n      revision: put object filter into struct rev_info\n      pack-objects: use rev.filter when possible\n      pack-bitmap: drop filter in prepare_bitmap_walk()\n      list-objects: consolidate traverse_commit_list[_filtered]\n      MyFirstObjectWalk: update recommended usage\n      bundle: parse filter capability\n      rev-list: move --filter parsing into revision.c\n      bundle: create filtered bundles\n      bundle: unbundle promisor packs\n      clone: fail gracefully when cloning filtered bundle\n      maintenance: fix synopsis in documentation\n      list-objects-filter: remove CL_ARG__FILTER\n      pack-objects: move revs out of get_object_list()\n      pack-objects: parse --filter directly into revs.filter\n      bundle: move capabilities to end of 'verify'\n      bundle: output hash information in 'verify'\n      t7700: check post-condition in kept-pack test\n      test-lib-functions: remove test_subcommand_inexact\n\nDes Preston (1):\n      worktree: include repair cmd in usage\n\nElia Pinto (8):\n      test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34\n      t6423-merge-rename-directories.sh: use the $(...) construct\n      attr.c: delete duplicate include\n      builtin/gc.c: delete duplicate include\n      builtin/sparse-checkout.c: delete duplicate include\n      builtin/stash.c: delete duplicate include\n      t/helper/test-run-command.c: delete duplicate include\n      attr.h: remove duplicate struct definition\n\nElijah Newren (33):\n      t1011: add testcase demonstrating accidental loss of user modifications\n      unpack-trees: fix accidental loss of user changes\n      repo_read_index: clear SKIP_WORKTREE bit from files present in worktree\n      Update documentation related to sparsity and the skip-worktree bit\n      Accelerate clear_skip_worktree_from_present_files() by caching\n      merge-ort: avoid assuming all renames detected\n      merge-ort: fix memory leak in merge_ort_internal()\n      merge: fix memory leaks in cmd_merge()\n      sequencer, stash: fix running from worktree subdir\n      sparse-checkout: fix a couple minor memory leaks\n      repo-settings: fix checking for fetch.negotiationAlgorithm=default\n      repo-settings: fix error handling for unknown values\n      repo-settings: rename the traditional default fetch.negotiationAlgorithm\n      show, log: provide a --remerge-diff capability\n      log: clean unneeded objects during `log --remerge-diff`\n      ll-merge: make callers responsible for showing warnings\n      merge-ort: capture and print ll-merge warnings in our preferred fashion\n      merge-ort: mark a few more conflict messages as omittable\n      merge-ort: format messages slightly different for use in headers\n      diff: add ability to insert additional headers for paths\n      show, log: include conflict/warning messages in --remerge-diff headers\n      merge-ort: mark conflict/warning messages from inner merges as omittable\n      diff-merges: avoid history simplifications when diffing merges\n      merge-ort: make informational messages from recursive merges clearer\n      sparse-checkout: correct reapply's handling of options\n      sparse-checkout: correctly set non-cone mode when expected\n      sparse-checkout: pay attention to prefix for {set, add}\n      sparse-checkout: error or warn when given individual files\n      sparse-checkout: reject arguments in cone-mode that look like patterns\n      merge-ort: fix small memory leak in detect_and_process_renames()\n      merge-ort: fix small memory leak in unique_path()\n      merge-ort: exclude messages from inner merges by default\n      repo_read_index: add config to expect files outside sparse patterns\n\nEmily Shaffer (14):\n      hook: add 'run' subcommand\n      gc: use hook library for pre-auto-gc hook\n      am: convert {pre,post}-applypatch to use hook.h\n      rebase: convert pre-rebase to use hook.h\n      am: convert applypatch-msg to use hook.h\n      merge: convert post-merge to use hook.h\n      hooks: convert non-worktree 'post-checkout' hook to hook library\n      hooks: convert worktree 'post-checkout' hook to hook library\n      send-email: use 'git hook run' for 'sendemail-validate'\n      git-p4: use 'git hook' to run hooks\n      commit: convert {pre-commit,prepare-commit-msg} hook to hook.h\n      read-cache: convert post-index-change to use hook.h\n      receive-pack: convert push-to-checkout hook to hook.h\n      run-command: remove old run_hook_{le,ve}() hook API\n\nFabian Stelzer (2):\n      gpg-interface: trim CR from ssh-keygen\n      gpg-interface/gpgsm: fix for v2.3\n\nGlen Choo (39):\n      fetch: use goto cleanup in cmd_fetch()\n      fetch: skip tasks related to fetching objects\n      fetch --negotiate-only: do not update submodules\n      branch: move --set-upstream-to behavior to dwim_and_setup_tracking()\n      branch: make create_branch() always create a branch\n      branch: add a dry_run parameter to create_branch()\n      builtin/branch: consolidate action-picking logic in cmd_branch()\n      branch: add --recurse-submodules option for branch creation\n      branch.c: use 'goto cleanup' in setup_tracking() to fix memory leaks\n      stash: strip \"refs/heads/\" with skip_prefix\n      checkout, clone: die if tree cannot be parsed\n      submodule--helper: remove update-module-mode\n      submodule--helper: reorganize code for sh to C conversion\n      submodule--helper run-update-procedure: remove --suboid\n      submodule--helper run-update-procedure: learn --remote\n      submodule--helper update-clone: learn --init\n      submodule--helper: remove ensure-core-worktree\n      submodule update: add tests for --filter\n      submodule--helper update-clone: check for --filter and --init\n      t5526: introduce test helper to assert on fetches\n      t5526: stop asserting on stderr literally\n      t5526: create superproject commits with test helper\n      submodule: make static functions read submodules from commits\n      submodule: inline submodule_commits() into caller\n      submodule: store new submodule commits oid_array in a struct\n      submodule: extract get_fetch_task()\n      submodule: move logic into fetch_task_create()\n      submodule update: use die_message()\n      submodule--helper: teach update_data more options\n      submodule--helper: reduce logic in run_update_procedure()\n      submodule--helper: remove forward declaration\n      fetch: fetch unpopulated, changed submodules\n      submodule: fix latent check_has_commit() bug\n      branch: support more tracking modes when recursing\n      branch: give submodule updating advice before exit\n      branch --set-upstream-to: be consistent when advising\n      branch: remove negative exit code\n      branch: rework comments for future developers\n      branch.c: simplify advice-and-die sequence\n\nGreg Hurrell (2):\n      Documentation/config/pgp.txt: replace stray <TAB> character with <SPC>\n      Documentation/config/pgp.txt: add missing apostrophe\n\nHan-Wen Nienhuys (27):\n      reftable: fix OOB stack write in print functions\n      reftable: fix resource leak in block.c error path\n      reftable: fix resource leak blocksource.c\n      reftable: check reftable_stack_auto_compact() return value\n      reftable: ignore remove() return value in stack_test.c\n      reftable: fix resource warning\n      reftable: all xxx_free() functions accept NULL arguments\n      reftable: order unittests by complexity\n      reftable: drop stray printf in readwrite_test\n      reftable: handle null refnames in reftable_ref_record_equal\n      reftable: make reftable-record.h function signatures const correct\n      reftable: implement record equality generically\n      reftable: remove outdated file reftable.c\n      reftable: make reftable_record a tagged union\n      reftable: add print functions to the record types\n      t1405: explictly delete reflogs for reftable\n      t1405: mark test that checks existence as REFFILES\n      t5312: prepare for reftable\n      t1410: use test-tool ref-store to inspect reflogs\n      t1410: mark bufsize boundary test as REFFILES\n      Documentation: object_id_len goes up to 31\n      reftable: reject 0 object_id_len\n      reftable: add a test that verifies that writing empty keys fails\n      reftable: avoid writing empty keys at the block layer\n      reftable: ensure that obj_id_len is >= 2 on writing\n      reftable: add test for length of disambiguating prefix\n      reftable: rename writer_stats to reftable_writer_stats\n\nJacob Keller (1):\n      name-rev: use generation numbers if available\n\nJason Yundt (2):\n      comment: fix typo\n      gitweb: remove invalid http-equiv=\"content-type\"\n\nJayati Shrivastava (1):\n      sequencer: use reverse_commit_list() helper\n\nJaydeep Das (1):\n      t/t0015-hash.sh: remove unnecessary '\\' at line end\n\nJaydeep P Das (1):\n      userdiff: add builtin diff driver for kotlin language.\n\nJean-Noël Avila (4):\n      i18n: factorize more 'incompatible options' messages\n      i18n: factorize \"invalid value\" messages\n      i18n: remove from i18n strings that do not hold translatable parts\n      i18n: fix some misformated placeholders in command synopsis\n\nJeff Hostetler (30):\n      fsmonitor: enhance existing comments, clarify trivial response handling\n      fsmonitor-ipc: create client routines for git-fsmonitor--daemon\n      fsmonitor: config settings are repository-specific\n      fsmonitor: use IPC to query the builtin FSMonitor daemon\n      fsmonitor: document builtin fsmonitor\n      fsmonitor--daemon: add a built-in fsmonitor daemon\n      fsmonitor--daemon: implement 'stop' and 'status' commands\n      compat/fsmonitor/fsm-listen-win32: stub in backend for Windows\n      compat/fsmonitor/fsm-listen-darwin: stub in backend for Darwin\n      fsmonitor--daemon: implement 'run' command\n      fsmonitor--daemon: implement 'start' command\n      fsmonitor--daemon: add pathname classification\n      fsmonitor--daemon: define token-ids\n      fsmonitor--daemon: create token-based changed path cache\n      compat/fsmonitor/fsm-listen-win32: implement FSMonitor backend on Windows\n      compat/fsmonitor/fsm-listen-darwin: add MacOS header files for FSEvent\n      compat/fsmonitor/fsm-listen-darwin: implement FSEvent listener on MacOS\n      fsmonitor--daemon: implement handle_client callback\n      help: include fsmonitor--daemon feature flag in version info\n      t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon\n      t7527: create test for fsmonitor--daemon\n      t/perf: avoid copying builtin fsmonitor files into test repo\n      t/helper/test-chmtime: skip directories on Windows\n      t/perf/p7519: fix coding style\n      t/perf/p7519: speed up test on Windows\n      t/perf/p7519: add fsmonitor--daemon test cases\n      fsmonitor--daemon: periodically truncate list of modified files\n      fsmonitor--daemon: use a cookie file to sync with file system\n      fsmonitor: force update index after large responses\n      t7527: test status with untracked-cache and fsmonitor--daemon\n\nJerry Zhang (3):\n      git-rev-list: add --exclude-first-parent-only flag\n      patch-id: fix antipatterns in tests\n      patch-id: fix scan_hunk_header on diffs with 1 line of before/after\n\nJessica Clarke (1):\n      mem-pool: don't assume uintmax_t is aligned enough for all types\n\nJoel Holdsworth (4):\n      git-p4: don't select shell mode using the type of the command argument\n      git-p4: pass command arguments as lists instead of using shell\n      git-p4: don't print shell commands as python lists\n      git-p4: fix instantiation of CalledProcessError\n\nJohannes Schindelin (14):\n      sparse-index: sparse index is disallowed when split index is active\n      t1091: disable split index\n      split-index: it really is incompatible with the sparse index\n      git-sh-setup: remove remnant bits referring to `git-legacy-stash`\n      add: remove support for `git-legacy-stash`\n      stash: remove documentation for `stash.useBuiltin`\n      stash: stop warning about the obsolete `stash.useBuiltin` config setting\n      docs(diff): lose incorrect claim about `diff-files --diff-filter=A`\n      diff.c: move the diff filter bits definitions up a bit\n      diff-filter: be more careful when looking for negative bits\n      scalar: accept -C and -c options before the subcommand\n      checkout/fetch/pull/pack-objects: allow `-h` outside a repository\n      t0012: verify that built-ins handle `-h` even without gitdir\n      cocci: allow padding with `strbuf_addf()`\n\nJohn Cai (15):\n      receive-pack.c: consolidate find header logic\n      name-rev: deprecate --stdin in favor of --annotate-stdin\n      name-rev.c: use strbuf_getline instead of limited size buffer\n      builtin/reflog.c: use parse-options api for expire, delete subcommands\n      name-rev: replace --stdin with --annotate-stdin in synopsis\n      cat-file: rename cmdmode to transform_mode\n      cat-file: introduce batch_mode enum to replace print_contents\n      cat-file: add remove_timestamp helper\n      cat-file: add --batch-command mode\n      stash: add tests to ensure reflog --rewrite --updatref behavior\n      reflog: libify delete reflog function and helpers\n      stash: call reflog_delete() in reflog.c\n      cat-file: skip expanding default format\n      rebase: use test_commit helper in setup\n      rebase: set REF_HEAD_DETACH in checkout_up_to_date()\n\nJonathan Tan (6):\n      config: make git_config_include() static\n      config: include file if remote URL matches a glob\n      sparse-checkout: create leading directory\n      clone: support unusual remote ref configurations\n      ls-files: support --recurse-submodules --stage\n      shallow: reset commit grafts when shallow is reset\n\nJosh Steadmon (2):\n      test-lib: unset trace2 parent envvars\n      clone, submodule: pass partial clone filters to submodules\n\nJunio C Hamano (31):\n      compat/qsort_s.c: avoid using potentially unaligned access\n      fetch: help translators by reusing the same message template\n      Start post 2.35 cycle\n      SubmittingPatches: write problem statement in the log in the present tense\n      CodingGuidelines: hint why we value clearly written log messages\n      SubmittingPatches: explain why we care about log messages\n      Git 2.35.1\n      Name the next one 2.36 to prepare for 2.35.1\n      The first batch\n      The second batch for 2.36\n      glossary: describe \"worktree\"\n      The third batch\n      The fourth batch\n      The fifth batch\n      The sixth batch\n      The seventh batch\n      The eighth batch\n      rerere-train: two fixes to the use of \"git show -s\"\n      am/apply: warn if we end up reading patches from terminal\n      The ninth batch\n      The tenth batch\n      The eleventh batch\n      The twelfth batch\n      The thirteenth batch\n      The 14th batch\n      reset: show --no-refresh in the short-help\n      The 15th batch\n      The 16th batch\n      The 17th batch\n      CodingGuidelines: give deadline for \"for (int i = 0; ...\"\n      Git 2.36-rc0\n\nJustin Donnelly (4):\n      git-prompt: rename `upstream` to `upstream_type`\n      git-prompt: make upstream state indicator location consistent\n      git-prompt: make long upstream state indicator consistent\n      git-prompt: put upstream comments together\n\nLessley Dennington (3):\n      completion: address sparse-checkout issues\n      completion: improve sparse-checkout cone mode directory completion\n      completion: handle unusual characters for sparse-checkout\n\nLiginity Lee (1):\n      fix typo in git-mktree.txt\n\nMarc Strapetz (4):\n      test-lib: introduce API for verifying file mtime\n      t7508: fix bogus mtime verification\n      t7508: add tests capturing racy timestamp handling\n      update-index: refresh should rewrite index in case of racy timestamps\n\nMatheus Felipe (1):\n      config: correct \"--type\" option in \"git config -h\" output\n\nMatt Cooper (1):\n      index-pack: clarify the breached limit\n\nMichael J Gruber (2):\n      test-lib: declare local variables as local\n      tests: demonstrate \"show --word-diff --color-moved\" regression\n\nNeeraj Singh (10):\n      wrapper: make inclusion of Windows csprng header tightly scoped\n      core.fsyncmethod: add writeout-only mode\n      core.fsync: introduce granular fsync control infrastructure\n      core.fsync: add configuration parsing\n      core.fsync: new option to harden the index\n      core.fsync: documentation and user-friendly aggregate options\n      core.fsync: fix incorrect expression for default configuration\n      trace2: add stats for fsync operations\n      core.fsyncmethod: correctly camel-case warning message\n      object-file: pass filename to fsync_or_die\n\nNihal Jere (1):\n      Documentation: git-read-tree: separate links using commas\n\nPatrick Steinhardt (24):\n      refs: extract packed_refs_delete_refs() to allow control of transaction\n      refs: allow passing flags when beginning transactions\n      refs: allow skipping the reference-transaction hook\n      refs: demonstrate excessive execution of the reference-transaction hook\n      refs: do not execute reference-transaction hook on packing refs\n      refs: skip hooks when deleting uncovered packed refs\n      fetch-pack: use commit-graph when computing cutoff\n      fetch: skip computing output width when not printing anything\n      fetch: increase test coverage of fetches\n      fetch: backfill tags before setting upstream\n      fetch: control lifecycle of FETCH_HEAD in a single place\n      fetch: report errors when backfilling tags fails\n      refs: add interface to iterate over queued transactional updates\n      fetch: make `--atomic` flag cover backfilling of tags\n      fetch: make `--atomic` flag cover pruning of refs\n      upload-pack: look up \"want\" lines via commit-graph\n      fetch: avoid lookup of commits when not appending to FETCH_HEAD\n      refs: add ability for backends to special-case reading of symbolic refs\n      remote: read symbolic refs via `refs_read_symbolic_ref()`\n      refs/files-backend: optimize reading of symbolic refs\n      t5503: simplify setup of test which exercises failure of backfill\n      repack: refactor to avoid double-negation of update-server-info\n      repack: add config to skip updating server info\n      core.fsync: new option to harden references\n\nPhilip Oakley (2):\n      README.md: add CodingGuidelines and a link for Translators\n      doc: check-ignore: code-quote an exclamation mark\n\nPhilippe Blain (1):\n      pull --rebase: honor rebase.autostash when fast-forwarding\n\nPhillip Wood (29):\n      t3701: clean up hunk splitting tests\n      builtin add -p: fix hunk splitting\n      rebase: factor out checkout for up to date branch\n      t5403: refactor rebase post-checkout hook tests\n      rebase: pass correct arguments to post-checkout hook\n      rebase: do not remove untracked files on checkout\n      rebase --apply: don't run post-checkout hook if there is an error\n      reset_head(): remove action parameter\n      reset_head(): factor out ref updates\n      reset_head(): make default_reflog_action optional\n      create_autostash(): remove unneeded parameter\n      rebase: cleanup reset_head() calls\n      reset_head(): take struct rebase_head_opts\n      rebase --apply: fix reflog\n      rebase --apply: set ORIG_HEAD correctly\n      rebase -m: don't fork git checkout\n      xdiff: fix a memory leak\n      xdiff: handle allocation failure in patience diff\n      xdiff: refactor a function\n      xdiff: handle allocation failure when merging\n      terminal: always reset terminal when reading without echo\n      terminal: pop signal handler when terminal is restored\n      terminal: set VMIN and VTIME in non-canonical mode\n      add -p: disable stdin buffering when interactive.singlekey is set\n      terminal: use flags for save_term()\n      terminal: don't assume stdin is /dev/tty\n      terminal: work around macos poll() bug\n      terminal: restore settings on SIGTSTP\n      worktree: add -z option for list subcommand\n\nRené Scharfe (10):\n      grep: use grep_or_expr() in compile_pattern_or()\n      grep: use grep_not_expr() in compile_pattern_not()\n      apply: use strsets to track symlinks\n      stable-qsort: avoid using potentially unaligned access\n      bisect--helper: report actual bisect_state() argument on error\n      bisect--helper: release strbuf and strvec on run error\n      bisect: document run behavior with exit codes 126 and 127\n      bisect--helper: double-check run command on exit code 126 and 127\n      parse-options: document bracketing of argh\n      grep: fix triggering PCRE2_NO_START_OPTIMIZE workaround\n\nRobert Coup (8):\n      fetch: fix negotiate-only error message\n      fetch-negotiator: add specific noop initializer\n      fetch-pack: add refetch\n      builtin/fetch-pack: add --refetch option\n      fetch: add --refetch option\n      t5615-partial-clone: add test for fetch --refetch\n      fetch: after refetch, encourage auto gc repacking\n      docs: mention --refetch fetch option\n\nSZEDER Gábor (1):\n      reflog: fix 'show' subcommand's argv\n\nShaoxuan Yuan (4):\n      builtin/diff.c: fix \"git-diff\" usage string typo\n      t/lib-read-tree-m-3way: modernize style\n      t/lib-read-tree-m-3way: indent with tabs\n      t0001: replace \"test [-d|-f]\" with test_path_is_* functions\n\nShubham Mishra (3):\n      t0003: avoid pipes with Git on LHS\n      t0001-t0028: avoid pipes with Git on LHS\n      t0030-t0050: avoid pipes with Git on LHS\n\nTao Klerks (6):\n      t7519: avoid file to index mtime race for untracked cache\n      t7519: populate untracked cache before test\n      untracked-cache: write index when populating empty untracked cache\n      t/helper/test-chmtime: update mingw to support chmtime on directories\n      t7063: mtime-mangling instead of delays in untracked cache testing\n      tracking branches: add advice to ambiguous refspec error\n\nTaylor Blau (15):\n      grep: extract grep_binexp() from grep_or_expr()\n      grep: use grep_and_expr() in compile_pattern_and()\n      t5326: demonstrate bitmap corruption after permutation\n      midx.c: make changing the preferred pack safe\n      pack-revindex.c: instrument loading on-disk reverse index\n      t5326: drop unnecessary setup\n      t5326: extract `test_rev_exists`\n      t5326: move tests to t/lib-bitmap.sh\n      t/lib-bitmap.sh: parameterize tests over reverse index source\n      midx: read `RIDX` chunk when present\n      pack-bitmap.c: gracefully fallback after opening pack/MIDX\n      midx: prevent writing a .bitmap without any objects\n      CODE_OF_CONDUCT.md: update PLC members list\n      builtin/remote.c: parse options in 'rename'\n      builtin/remote.c: show progress when renaming remote references\n\nTeng Long (6):\n      git-cli.txt: clarify \"options first and then args\"\n      ls-tree: rename \"retval\" to \"recurse\" in \"show_tree()\"\n      ls-tree: simplify nesting if/else logic in \"show_tree()\"\n      ls-tree: fix \"--name-only\" and \"--long\" combined use bug\n      ls-tree: slightly refactor `show_tree()`\n      ls-tree: support --object-only option for \"git-ls-tree\"\n\nThomas Gummerer (1):\n      fetch --prune: exit with error if pruning fails\n\nThomas Koutcher (1):\n      subtree: force merge commit\n\nTodd Zullinger (2):\n      t/lib-gpg: reload gpg components after updating trustlist\n      t/lib-gpg: kill all gpg components, not just gpg-agent\n\nVictoria Dye (29):\n      reset: fix validation in sparse index test\n      reset: reorder wildcard pathspec conditions\n      clean: integrate with sparse index\n      checkout-index: expand sparse checkout compatibility tests\n      checkout-index: add --ignore-skip-worktree-bits option\n      checkout-index: integrate with sparse index\n      update-index: add tests for sparse-checkout compatibility\n      update-index: integrate with sparse index\n      update-index: reduce scope of index expansion in do_reupdate\n      sparse-index: prevent repo root from becoming sparse\n      status: fix nested sparse directory diff in sparse index\n      read-tree: explicitly disallow prefixes with a leading '/'\n      read-tree: expand sparse checkout test coverage\n      read-tree: integrate with sparse index\n      read-tree: narrow scope of index expansion for '--prefix'\n      read-tree: make two-way merge sparse-aware\n      read-tree: make three-way merge sparse-aware\n      reset: revise index refresh advice\n      reset: introduce --[no-]refresh option to --mixed\n      reset: replace '--quiet' with '--no-refresh' in performance advice\n      reset: suppress '--no-refresh' advice if logging is silenced\n      stash: make internal resets quiet and refresh index\n      t1092: add sparse directory before cone in test repo\n      unpack-trees: increment cache_bottom for sparse directories\n      Revert \"unpack-trees: improve performance of next_cache_entry\"\n      reset: do not make '--quiet' disable index refresh\n      reset: remove 'reset.quiet' config option\n      reset: remove 'reset.refresh' config option\n      mv: refresh stat info for moved entry\n\nbrian m. carlson (6):\n      t0027: add tests for eol without text in .gitattributes\n      docs: correct documentation about eol attribute\n      wrapper: add a helper to generate numbers from a CSPRNG\n      wrapper: use a CSPRNG to generate random file names\n      doc: clarify interaction between 'eol' and text=auto\n      block-sha1: remove use of obsolete x86 assembly\n\nÆvar Arnfjörð Bjarmason (183):\n      cat-file tests: test bad usage\n      cat-file tests: test messaging on bad objects/paths\n      parse-options API: add a usage_msg_optf()\n      cat-file docs: fix SYNOPSIS and \"-h\" output\n      cat-file: move \"usage\" variable to cmd_cat_file()\n      cat-file: make --batch-all-objects a CMDMODE\n      cat-file: fix remaining usage bugs\n      cat-file: correct and improve usage information\n      object-name.c: don't have GET_OID_ONLY_TO_DIE imply *_QUIETLY\n      cat-file: use GET_OID_ONLY_TO_DIE in --(textconv|filters)\n      hook API: add a run_hooks() wrapper\n      hook API: add a run_hooks_l() wrapper\n      git hook run: add an --ignore-missing flag\n      cat-file: don't whitespace-pad \"(...)\" in SYNOPSIS and usage output\n      cat-file: s/_/-/ in typo'd usage_msg_optf() message\n      compat: auto-detect if zlib has uncompress2()\n      sequencer: don't use die_errno() on refs_resolve_ref_unsafe() failure\n      refs API: remove \"failure_errno\" from refs_resolve_ref_unsafe()\n      object-name tests: add tests for ambiguous object blind spots\n      object-name: explicitly handle OBJ_BAD in show_ambiguous_object()\n      object-name: explicitly handle bad tags in show_ambiguous_object()\n      object-name: make ambiguous object output translatable\n      object-name: show date for ambiguous tag objects\n      object-name: iterate ambiguous objects before showing header\n      object-name: re-use \"struct strbuf\" in show_ambiguous_object()\n      perl Git.pm: don't ignore signalled failure in _cmd_close()\n      completion tests: re-source git-completion.bash in a subshell\n      completion: add a GIT_COMPLETION_SHOW_ALL_COMMANDS\n      leak tests: fix a memory leak in \"test-progress\" helper\n      progress.c test helper: add missing braces\n      progress.c tests: make start/stop commands on stdin\n      progress.c tests: test some invalid usage\n      progress.h: format and be consistent with progress.c naming\n      progress.c: use dereferenced \"progress\" variable, not \"(*p_progress)\"\n      progress.c: refactor stop_progress{,_msg}() to use helpers\n      progress API: unify stop_progress{,_msg}(), fix trace2 bug\n      pack-bitmap-write.c: don't return without stop_progress()\n      t0051: use \"skip_all\" under !MINGW in single-test file\n      hash-object: fix a trivial leak in --path\n      ls-remote & transport API: release \"struct transport_ls_refs_options\"\n      grep.h: remove unused \"regex_t regexp\" from grep_opt\n      log tests: check if grep_config() is called by \"log\"-like cmds\n      grep tests: create a helper function for \"BRE\" or \"ERE\"\n      grep tests: add missing \"grep.patternType\" config tests\n      built-ins: trust the \"prefix\" from run_builtin()\n      grep.c: don't pass along NULL callback value\n      grep API: call grep_config() after grep_init()\n      grep.h: make \"grep_opt.pattern_type_option\" use its enum\n      grep.c: do \"if (bool && memchr())\" not \"if (memchr() && bool)\"\n      grep: simplify config parsing and option parsing\n      cache.h: remove always unused show_date_human() declaration\n      date API: create a date.h, split from cache.h\n      date API: provide and use a DATE_MODE_INIT\n      date API: add basic API docs\n      date API: add and use a date_mode_release()\n      diff.[ch]: have diff_free() call clear_pathspec(opts.pathspec)\n      diff.[ch]: have diff_free() free options->parseopts\n      hook tests: test for exact \"pre-push\" hook input\n      hook tests: use a modern style for \"pre-push\" tests\n      git-compat-util.h: clarify GCC v.s. C99-specific in comment\n      C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code\n      help doc: add missing \"]\" to \"[-a|--all]\"\n      help.c: use puts() instead of printf{,_ln}() for consistency\n      help tests: test \"git\" and \"git help [-a|-g] spacing\n      help.c: split up list_all_cmds_help() function\n      help: note the option name on option incompatibility\n      help: correct usage & behavior of \"git help --all\"\n      help: error if [-a|-g|-c] and [-i|-m|-w] are combined\n      help: add --no-[external-commands|aliases] for use with --all\n      help: don't print \"\\n\" before single-section output\n      imap-send.c: use designated initializers for \"struct imap_server_conf\"\n      trace2: use designated initializers for \"struct tr2_tgt\"\n      trace2: use designated initializers for \"struct tr2_dst\"\n      object-file: use designated initializers for \"struct git_hash_algo\"\n      archive-*.c: use designated initializers for \"struct archiver\"\n      userdiff.c: use designated initializers for \"struct userdiff_driver\"\n      convert.c: use designated initializers for \"struct stream_filter*\"\n      refspec.c: use designated initializers for \"struct refspec_item\"\n      fast-import.c: use designated initializers for \"partial\" struct assignments\n      object-file.c: split up declaration of unrelated variables\n      object-file API: return \"void\", not \"int\" from hash_object_file()\n      object-file API: add a format_object_header() function\n      object-file API: have write_object_file() take \"enum object_type\"\n      object API: correct \"buf\" v.s. \"map\" mismatch in *.c and *.h\n      object API docs: move check_object_signature() docs to cache.h\n      object API users + docs: check <0, not !0 with check_object_signature()\n      object-file API: split up and simplify check_object_signature()\n      object API: rename hash_object_file_literally() to write_*()\n      object-file API: have hash_object_file() take \"enum object_type\"\n      object-file.c: add a literal version of write_object_file_prepare()\n      object-file API: pass an enum to read_object_with_reference()\n      test-lib: add GIT_SAN_OPTIONS, inherit [AL]SAN_OPTIONS\n      test-lib: correct and assert TEST_DIRECTORY overriding\n      test-lib: make $GIT_BUILD_DIR an absolute path\n      test-lib: add \"fast_unwind_on_malloc=0\" to LSAN_OPTIONS\n      scalar Makefile: use \"The default target of...\" pattern\n      Makefiles: add \"shared.mak\", move \".DELETE_ON_ERROR\" to it\n      Makefile: disable GNU make built-in wildcard rules\n      Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)\n      Makefile: move \".SUFFIXES\" rule to shared.mak\n      Makefile: move $(comma), $(empty) and $(space) to shared.mak\n      Makefile: add \"$(QUIET)\" boilerplate to shared.mak\n      Makefiles: add and use wildcard \"mkdir -p\" template\n      log tests: fix \"abort tests early\" regression in ff37a60c369\n      index-pack: fix memory leaks\n      merge-base: free() allocated \"struct commit **\" list\n      diff.c: free \"buf\" in diff_words_flush()\n      urlmatch.c: add and use a *_release() function\n      remote-curl.c: free memory in cmd_main()\n      bundle: call strvec_clear() on allocated strvec\n      transport: stop needlessly copying bundle header references\n      submodule--helper: fix trivial leak in module_add()\n      commit-graph: fix memory leak in misused string_list API\n      commit-graph: stop fill_oids_from_packs() progress on error and free()\n      lockfile API users: simplify and don't leak \"path\"\n      range-diff: plug memory leak in common invocation\n      range-diff: plug memory leak in read_patches()\n      repository.c: free the \"path cache\" in repo_clear()\n      submodule tests: test for init and update failure output\n      submodule--helper: don't use bitfield indirection for parse_options()\n      gettext API users: don't explicitly cast ngettext()'s \"n\"\n      string-list API: change \"nr\" and \"alloc\" to \"size_t\"\n      merge: don't run post-hook logic on --no-verify\n      hooks: fix an obscure TOCTOU \"did we just run a hook?\" race\n      tests: change some 'test $(git) = \"x\"' to test_cmp\n      tests: use \"test_stdout_line_count\", not \"test $(git [...] | wc -l)\"\n      read-tree tests: check \"diff-files\" exit code on failure\n      diff tests: don't ignore \"git diff\" exit code\n      diff tests: don't ignore \"git diff\" exit code in \"read\" loop\n      apply tests: use \"test_must_fail\" instead of ad-hoc pattern\n      merge tests: use \"test_must_fail\" instead of ad-hoc pattern\n      rev-parse tests: don't ignore \"git reflog\" exit code\n      notes tests: don't ignore \"git\" exit code\n      diff tests: don't ignore \"git rev-list\" exit code\n      rev-list tests: don't hide abort() in \"test_expect_failure\"\n      gettext tests: don't ignore \"test-tool regex\" exit code\n      apply tests: don't ignore \"git ls-files\" exit code, drop sub-shell\n      checkout tests: don't ignore \"git <cmd>\" exit code\n      rev-list simplify tests: don't ignore \"git\" exit code\n      list-objects: handle NULL function pointers\n      reflog: don't be noisy on empty reflogs\n      builtin/submodule--helper.c: rename option struct to \"opt\"\n      test-lib-functions: add and use a \"test_hook\" wrapper\n      hook tests: turn exit code assertions into a loop\n      http tests: don't rely on \"hook/post-update.sample\"\n      tests: assume the hooks are disabled by default\n      bugreport tests: tighten up \"git bugreport -s hooks\" test\n      fetch+push tests: use \"test_hook\" and \"test_when_finished\" pattern\n      gc + p4 tests: use \"test_hook\", remove sub-shells\n      tests: change \"cat && chmod +x\" to use \"test_hook\"\n      tests: change \"mkdir -p && write_script\" to use \"test_hook\"\n      tests: use \"test_hook\" for misc \"mkdir -p\" and \"chmod\" cases\n      diff.c: fix a double-free regression in a18d66cefb\n      refs: use designated initializers for \"struct ref_storage_be\"\n      refs: use designated initializers for \"struct ref_iterator_vtable\"\n      misc *.c: use designated initializers for struct assignments\n      packed-backend: remove stub BUG(...) functions\n      refs debug: add a wrapper for \"read_symbolic_ref\"\n      tests: extend \"test_hook\" for \"rm\" and \"chmod -x\", convert \"$HOOK\"\n      proc-receive hook tests: use \"test_hook\" instead of \"write_script\"\n      http tests: use \"test_hook\" for \"smart\" and \"dumb\" http tests\n      reflog.c: indent argument lists\n      reflog: refactor cmd_reflog() to \"if\" branches\n      reflog tests: add missing \"git reflog exists\" tests\n      reflog: move \"usage\" variables and use macros\n      git reflog [expire|delete]: make -h output consistent with SYNOPSIS\n      reflog exists: use parse_options() API\n      Makefile: use ' ', not non-existing $(wspfx_SQ)\n      ls-tree tests: add tests for --name-status\n      ls-tree: remove commented-out code\n      ls-tree: add missing braces to \"else\" arms\n      ls-tree: use \"enum object_type\", not {blob,tree,commit}_type\n      ls-tree: use \"size_t\", not \"int\" for \"struct strbuf\"'s \"len\"\n      ls-tree: introduce struct \"show_tree_data\"\n      ls-tree: introduce \"--format\" option\n      ls-tree: detect and error on --name-only --name-status\n      ls-tree: split up \"fast path\" callbacks\n      hooks: fix \"invoked hook\" regression in a8cc5943338\n      reflog: convert to parse_options() API\n      reflog [show]: display sensible -h output\n      test-lib: have --immediate emit valid TAP on failure\n      pack-objects: lazily set up \"struct rev_info\", don't leak\n      reftable: make assignments portable to AIX xlc v12.01\n\n"},{"id":"453306","messageId":"xmqq1qy8qske.fsf@gitster.g","threadId":"57657","inReplyTo":"xmqqo81gpokn.fsf@gitster.g","subject":"Re: [ANNOUNCE] Git v2.36.0-rc0","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-04-08T01:20:33Z","receivedAt":"2022-04-08T01:20:41Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> An early preview release Git v2.36.0-rc0 is now available for\n> testing at the usual places.  It is comprised of 661 non-merge\n> commits since v2.35.0, contributed by 80 people, 25 of which are\n> new faces [*].\n\nThanks for finding and fixing many oops glitches in this preview so\nquickly.  Hopefully with the tip of 'master/main' today, we can tag\na bug-free -rc1 tomorrow ;-)\n\n$ git shortlog --no-merges v2.36.0-rc0..master\nAdam Dinwoodie (1):\n      configure.ac: fix HAVE_SYNC_FILE_RANGE definition\n\nCarlo Marcelo Arenas Belón (1):\n      git-compat-util: really support openssl as a source of entropy\n\nFangyi Zhou (1):\n      submodule-helper: fix usage string\n\nJosh Steadmon (1):\n      ls-tree: `-l` should not imply recursive listing\n\nMartin Ågren (1):\n      git-ls-tree.txt: fix the name of \"%(objectsize:padded)\"\n\nTodd Zullinger (1):\n      doc: replace \"--\" with {litdd} in credential-cache/fsmonitor\n\nVictoria Dye (1):\n      contrib/scalar: fix 'all' target in Makefile\n\nÆvar Arnfjörð Bjarmason (2):\n      Documentation/Makefile: fix \"make info\" regression in dad9cd7d518\n      Documentation: add --batch-command to cat-file synopsis\n\n\n\n"},{"id":"453307","messageId":"006b01d84aee$365e2100$a31a6300$@nexbridge.com","threadId":"57657","inReplyTo":"xmqq1qy8qske.fsf@gitster.g","subject":"RE: [ANNOUNCE] Git v2.36.0-rc0","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2022-04-08T02:13:12Z","receivedAt":"2022-04-08T02:13:24Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":" On April 7, 2022 9:21 PM, Junio C Hamano wrote:\n>To: git@vger.kernel.org\n>Cc: Adam Dinwoodie <adam@dinwoodie.org>; Carlo Marcelo Arenas Belón\n><carenas@gmail.com>; Fangyi Zhou <me@fangyi.io>; Josh Steadmon\n><steadmon@google.com>; Martin Ågren <martin.agren@gmail.com>; Todd\n>Zullinger <tmz@pobox.com>; Victoria Dye <vdye@github.com>; Ævar Arnfjörð\n>Bjarmason <avarab@gmail.com>\n>Subject: Re: [ANNOUNCE] Git v2.36.0-rc0\n>\n>Junio C Hamano <gitster@pobox.com> writes:\n>\n>> An early preview release Git v2.36.0-rc0 is now available for testing\n>> at the usual places.  It is comprised of 661 non-merge commits since\n>> v2.35.0, contributed by 80 people, 25 of which are new faces [*].\n>\n>Thanks for finding and fixing many oops glitches in this preview so quickly.\n>Hopefully with the tip of 'master/main' today, we can tag a bug-free -rc1\n>tomorrow ;-)\n>\n>$ git shortlog --no-merges v2.36.0-rc0..master Adam Dinwoodie (1):\n>      configure.ac: fix HAVE_SYNC_FILE_RANGE definition\n>\n>Carlo Marcelo Arenas Belón (1):\n>      git-compat-util: really support openssl as a source of entropy\n>\n>Fangyi Zhou (1):\n>      submodule-helper: fix usage string\n>\n>Josh Steadmon (1):\n>      ls-tree: `-l` should not imply recursive listing\n>\n>Martin Ågren (1):\n>      git-ls-tree.txt: fix the name of \"%(objectsize:padded)\"\n>\n>Todd Zullinger (1):\n>      doc: replace \"--\" with {litdd} in credential-cache/fsmonitor\n>\n>Victoria Dye (1):\n>      contrib/scalar: fix 'all' target in Makefile\n>\n>Ævar Arnfjörð Bjarmason (2):\n>      Documentation/Makefile: fix \"make info\" regression in dad9cd7d518\n>      Documentation: add --batch-command to cat-file synopsis\n>\n\nThe NonStop builds are now working. t6200 is likely to fail - not sure what to do about that because of SSH location restrictions. At least the build works.\n\n"},{"id":"453319","messageId":"20220408082904.eeq77iyddbtwfqhg@lucy.dinwoodie.org","threadId":"57657","inReplyTo":"xmqq1qy8qske.fsf@gitster.g","subject":"Re: [ANNOUNCE] Git v2.36.0-rc0","fromName":"Adam Dinwoodie","fromEmail":"adam@dinwoodie.org","sentAt":"2022-04-08T08:29:04Z","receivedAt":"2022-04-08T08:29:13Z","isPatch":false,"sender":{"key":"adam@dinwoodie.org","avatar":"https://avatars.githubusercontent.com/u/1397507?v=4"},"body":"On Thu, Apr 07, 2022 at 06:20:33PM -0700, Junio C Hamano wrote:\n> Junio C Hamano <gitster@pobox.com> writes:\n> \n> > An early preview release Git v2.36.0-rc0 is now available for\n> > testing at the usual places.  It is comprised of 661 non-merge\n> > commits since v2.35.0, contributed by 80 people, 25 of which are\n> > new faces [*].\n> \n> Thanks for finding and fixing many oops glitches in this preview so\n> quickly.  Hopefully with the tip of 'master/main' today, we can tag\n> a bug-free -rc1 tomorrow ;-)\n\nThere's still an outstanding (test-only) regression in Cygwin:\nhttps://lore.kernel.org/git/20220406094207.h7ru4xdiimywelqg@lucy.dinwoodie.org/\n\nI'll see if I can offer a patch for this myself later today.\n"}]}