{"thread":{"id":"56300","subject":"[ANNOUNCE] Git v2.33.0","startedAt":"2021-08-16T23:06:17Z","lastAt":"2021-08-16T23:06:17Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"432892","messageId":"xmqq1r6touqi.fsf@gitster.g","threadId":"56300","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.33.0","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-08-16T23:06:13Z","receivedAt":"2021-08-16T23:06:17Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"The latest feature release Git v2.33.0 is now available at the\nusual places.  It is comprised of 449 non-merge commits since\nv2.32.0, contributed by 74 people, 19 of which are new faces [*].\n\nAs can be seen here, it turns out that this release does not have\nmany end-user facing changes and new features, but a lot of fixes\nand internal improvements went into the codebase during this cycle.\nAlso, preparation for a new merge strategy backend (can be used with\n\"git merge -sort\" today) is on its final stretch and we are hoping\nthat it can become the default in the next release.\n\nThe tarballs are found at:\n\n    https://www.kernel.org/pub/software/scm/git/\n\nThe following public repositories all have a copy of the 'v2.33.0'\ntag 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.32.0 are as follows.\nWelcome to the Git development community!\n\n  Anders Höckersten, Andrew Berry, Andy AO, Beshr Kayali,\n  dorgon.chang, edef, Fabian Stelzer, Fabian Wermelinger, Gregory\n  Anders, Greg Pflaum, Hu Jialun, Jason Hatton, Julian Verdurmen,\n  Matthew Hughes, Michael Schindler, Reuven Y, Stephen Manz,\n  Tao Klerks, and Teng Long.\n\nReturning contributors who helped this release are as follows.\nThanks for your continued support.\n\n  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,\n  Anders Kaseorg, Andrei Rybak, Andrzej Hunt, Atharva Raykar,\n  Bagas Sanjaya, brian m. carlson, Carlo Marcelo Arenas Belón,\n  Christian Couder, Christopher Diaz Riveros, Daniel Santos,\n  Dennis Ameling, Denton Liu, Derrick Stolee, Đoàn Trần Công\n  Danh, Elijah Newren, Emily Shaffer, Emir Sarı, Eric Sunshine,\n  Eric Wong, Fangyi Zhou, Felipe Contreras, Han-Wen Nienhuys,\n  Jean-Noël Avila, Jeff King, Jiang Xin, Johannes Schindelin,\n  Jonathan Nieder, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C\n  Hamano, Kaartic Sivaraam, Martin Ågren, Matheus Tavares, Matthew\n  Rogers, Matthias Aßhauer, Nicolas Pitre, Patrick Steinhardt,\n  Peter Krefting, Philippe Blain, Ralf Thielow, René Scharfe,\n  Sergey Organov, Shourya Shukla, Taylor Blau, Thomas Bétous,\n  Thomas Braun, Trần Ngọc Quân, Wolfgang Müller, Yi-Jyun Pan,\n  ZheNing Hu, and 依云.\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.33 Release Notes\n======================\n\nUpdates since Git 2.32\n----------------------\n\nUI, Workflows & Features\n\n * \"git send-email\" learned the \"--sendmail-cmd\" command line option\n   and the \"sendemail.sendmailCmd\" configuration variable, which is a\n   more sensible approach than the current way of repurposing the\n   \"smtp-server\" that is meant to name the server to instead name the\n   command to talk to the server.\n\n * The userdiff pattern for C# learned the token \"record\".\n\n * \"git rev-list\" learns to omit the \"commit <object-name>\" header\n   lines from the output with the `--no-commit-header` option.\n\n * \"git worktree add --lock\" learned to record why the worktree is\n   locked with a custom message.\n\n\nPerformance, Internal Implementation, Development Support etc.\n\n * The code to handle the \"--format\" option in \"for-each-ref\" and\n   friends made too many string comparisons on %(atom)s used in the\n   format string, which has been corrected by converting them into\n   enum when the format string is parsed.\n\n * Use the hashfile API in the codepath that writes the index file to\n   reduce code duplication.\n\n * Repeated rename detections in a sequence of mergy operations have\n   been optimized out for the 'ort' merge strategy.\n\n * Preliminary clean-up of tests before the main reftable changes\n   hits the codebase.\n\n * The backend for \"diff -G/-S\" has been updated to use pcre2 engine\n   when available.\n\n * Use \".DELETE_ON_ERROR\" pseudo target to simplify our Makefile.\n\n * Code cleanup around struct_type_init() functions.\n\n * \"git send-email\" optimization.\n\n * GitHub Actions / CI update.\n   (merge 0dc787a9f2 js/ci-windows-update later to maint).\n\n * Object accesses in repositories with many alternate object store\n   have been optimized.\n\n * \"git log\" has been optimized not to waste cycles to load ref\n   decoration data that may not be needed.\n\n * Many \"printf\"-like helper functions we have have been annotated\n   with __attribute__() to catch placeholder/parameter mismatches.\n\n * Tests that cover protocol bits have been updated and helpers\n   used there have been consolidated.\n\n * The CI gained a new job to run \"make sparse\" check.\n\n * \"git status\" codepath learned to work with sparsely populated index\n   without hydrating it fully.\n\n * A guideline for gender neutral documentation has been added.\n\n * Documentation on \"git diff -l<n>\" and diff.renameLimit have been\n   updated, and the defaults for these limits have been raised.\n\n * The completion support used to offer alternate spelling of options\n   that exist only for compatibility, which has been corrected.\n\n * \"TEST_OUTPUT_DIRECTORY=there make test\" failed to work, which has\n   been corrected.\n\n * \"git bundle\" gained more test coverage.\n\n * \"git read-tree\" had a codepath where blobs are fetched one-by-one\n   from the promisor remote, which has been corrected to fetch in bulk.\n\n * Rewrite of \"git submodule\" in C continues.\n\n * \"git checkout\" and \"git commit\" learn to work without unnecessarily\n   expanding sparse indexes.\n\n\nFixes since v2.32\n-----------------\n\n * We historically rejected a very short string as an author name\n   while accepting a patch e-mail, which has been loosened.\n   (merge 72ee47ceeb ef/mailinfo-short-name later to maint).\n\n * The parallel checkout codepath did not initialize object ID field\n   used to talk to the worker processes in a futureproof way.\n\n * Rewrite code that triggers undefined behaviour warning.\n   (merge aafa5df0df jn/size-t-casted-to-off-t-fix later to maint).\n\n * The description of \"fast-forward\" in the glossary has been updated.\n   (merge e22f2daed0 ry/clarify-fast-forward-in-glossary later to maint).\n\n * Recent \"git clone\" left a temporary directory behind when the\n   transport layer returned an failure.\n   (merge 6aacb7d861 jk/clone-clean-upon-transport-error later to maint).\n\n * \"git fetch\" over protocol v2 left its side of the socket open after\n   it finished speaking, which unnecessarily wasted the resource on\n   the other side.\n   (merge ae1a7eefff jk/fetch-pack-v2-half-close-early later to maint).\n\n * The command line completion (in contrib/) learned that \"git diff\"\n   takes the \"--anchored\" option.\n   (merge d1e7c2cac9 tb/complete-diff-anchored later to maint).\n\n * \"git-svn\" tests assumed that \"locale -a\", which is used to pick an\n   available UTF-8 locale, is available everywhere.  A knob has been\n   introduced to allow testers to specify a suitable locale to use.\n   (merge 482c962de4 dd/svn-test-wo-locale-a later to maint).\n\n * Update \"git subtree\" to work better on Windows.\n   (merge 77f37de39f js/subtree-on-windows-fix later to maint).\n\n * Remove multimail from contrib/\n   (merge f74d11471f js/no-more-multimail later to maint).\n\n * Make the codebase MSAN clean.\n   (merge 4dbc55e87d ah/uninitialized-reads-fix later to maint).\n\n * Work around inefficient glob substitution in older versions of bash\n   by rewriting parts of a test.\n   (merge eb87c6f559 jx/t6020-with-older-bash later to maint).\n\n * Avoid duplicated work while building reachability bitmaps.\n   (merge aa9ad6fee5 jk/bitmap-tree-optim later to maint).\n\n * We broke \"GIT_SKIP_TESTS=t?000\" to skip certain tests in recent\n   update, which got fixed.\n\n * The side-band demultiplexer that is used to display progress output\n   from the remote end did not clear the line properly when the end of\n   line hits at a packet boundary, which has been corrected.\n\n * Some test scripts assumed that readlink(1) was universally\n   installed and available, which is not the case.\n   (merge 7c0afdf23c jk/test-without-readlink-1 later to maint).\n\n * Recent update to completion script (in contrib/) broke those who\n   use the __git_complete helper to define completion to their custom\n   command.\n   (merge cea232194d fw/complete-cmd-idx-fix later to maint).\n\n * Output from some of our tests were affected by the width of the\n   terminal that they were run in, which has been corrected by\n   exporting a fixed value in the COLUMNS environment.\n   (merge c49a177bec ab/fix-columns-to-80-during-tests later to maint).\n\n * On Windows, mergetool has been taught to find kdiff3.exe just like\n   it finds winmerge.exe.\n   (merge 47eb4c6890 ms/mergetools-kdiff3-on-windows later to maint).\n\n * When we cannot figure out how wide the terminal is, we use a\n   fallback value of 80 ourselves (which cannot be avoided), but when\n   we run the pager, we export it in COLUMNS, which forces the pager\n   to use the hardcoded value, even when the pager is perfectly\n   capable to figure it out itself.  Stop exporting COLUMNS when we\n   fall back on the hardcoded default value for our own use.\n   (merge 9b6e2c8b98 js/stop-exporting-bogus-columns later to maint).\n\n * \"git cat-file --batch-all-objects\"\" misbehaved when \"--batch\" is in\n   use and did not ask for certain object traits.\n   (merge ee02ac6164 zh/cat-file-batch-fix later to maint).\n\n * Some code and doc clarification around \"git push\".\n\n * The \"union\" conflict resultion variant misbehaved when used with\n   binary merge driver.\n   (merge 382b601acd jk/union-merge-binary later to maint).\n\n * Prevent \"git p4\" from failing to submit changes to binary file.\n   (merge 54662d5958 dc/p4-binary-submit-fix later to maint).\n\n * \"git grep --and -e foo\" ought to have been diagnosed as an error\n   but instead segfaulted, which has been corrected.\n   (merge fe7fe62d8d rs/grep-parser-fix later to maint).\n\n * The merge code had funny interactions between content based rename\n   detection and directory rename detection.\n   (merge 3585d0ea23 en/merge-dir-rename-corner-case-fix later to maint).\n\n * When rebuilding the multi-pack index file reusing an existing one,\n   we used to blindly trust the existing file and ended up carrying\n   corrupted data into the updated file, which has been corrected.\n   (merge f89ecf7988 tb/midx-use-checksum later to maint).\n\n * Update the location of system-side configuration file on Windows.\n   (merge e355307692 js/gfw-system-config-loc-fix later to maint).\n\n * Code recently added to support common ancestry negotiation during\n   \"git push\" did not sanity check its arguments carefully enough.\n   (merge eff40457a4 ab/fetch-negotiate-segv-fix later to maint).\n\n * Update the documentation not to assume users are of certain gender\n   and adds to guidelines to do so.\n   (merge 46a237f42f ds/gender-neutral-doc later to maint).\n\n * \"git commit --allow-empty-message\" won't abort the operation upon\n   an empty message, but the hint shown in the editor said otherwise.\n   (merge 6f70f00b4f hj/commit-allow-empty-message later to maint).\n\n * The code that gives an error message in \"git multi-pack-index\" when\n   no subcommand is given tried to print a NULL pointer as a strong,\n   which has been corrected.\n   (merge 88617d11f9 tb/reverse-midx later to maint).\n\n * CI update.\n   (merge a066a90db6 js/ci-check-whitespace-updates later to maint).\n\n * Documentation fix for \"git pull --rebase=no\".\n   (merge d3236becec fc/pull-no-rebase-merges-theirs-into-ours later to maint).\n\n * A race between repacking and using pack bitmaps has been corrected.\n   (merge dc1daacdcc jk/check-pack-valid-before-opening-bitmap later to maint).\n\n * The local changes stashed by \"git merge --autostash\" were lost when\n   the merge failed in certain ways, which has been corrected.\n\n * Windows rmdir() equivalent behaves differently from POSIX ones in\n   that when used on a symbolic link that points at a directory, the\n   target directory gets removed, which has been corrected.\n   (merge 3e7d4888e5 tb/mingw-rmdir-symlink-to-directory later to maint).\n\n * Other code cleanup, docfix, build fix, etc.\n   (merge bfe35a6165 ah/doc-describe later to maint).\n   (merge f302c1e4aa jc/clarify-revision-range later to maint).\n   (merge 3127ff90ea tl/fix-packfile-uri-doc later to maint).\n   (merge a84216c684 jk/doc-color-pager later to maint).\n   (merge 4e0a64a713 ab/trace2-squelch-gcc-warning later to maint).\n   (merge 225f7fa847 ps/rev-list-object-type-filter later to maint).\n   (merge 5317dfeaed dd/honor-users-tar-in-tests later to maint).\n   (merge ace6d8e3d6 tk/partial-clone-repack-doc later to maint).\n   (merge 7ba68e0cf1 js/trace2-discard-event-docfix later to maint).\n   (merge 8603c419d3 fc/doc-default-to-upstream-config later to maint).\n   (merge 1d72b604ef jk/revision-squelch-gcc-warning later to maint).\n   (merge abcb66c614 ar/typofix later to maint).\n   (merge 9853830787 ah/graph-typofix later to maint).\n   (merge aac578492d ab/config-hooks-path-testfix later to maint).\n   (merge 98c7656a18 ar/more-typofix later to maint).\n   (merge 6fb9195f6c jk/doc-max-pack-size later to maint).\n   (merge 4184cbd635 ar/mailinfo-memcmp-to-skip-prefix later to maint).\n   (merge 91d2347033 ar/doc-libera-chat-in-my-first-contrib later to maint).\n   (merge 338abb0f04 ab/cmd-foo-should-return later to maint).\n   (merge 546096a5cb ab/xdiff-bug-cleanup later to maint).\n   (merge b7b793d1e7 ab/progress-cleanup later to maint).\n   (merge d94f9b8e90 ba/object-info later to maint).\n   (merge 52ff891c03 ar/test-code-cleanup later to maint).\n   (merge a0538e5c8b dd/document-log-decorate-default later to maint).\n   (merge ce24797d38 mr/cmake later to maint).\n   (merge 9eb542f2ee ab/pre-auto-gc-hook-test later to maint).\n   (merge 9fffc38583 bk/doc-commit-typofix later to maint).\n   (merge 1cf823d8f0 ks/submodule-cleanup later to maint).\n   (merge ebbf5d2b70 js/config-mak-windows-pcre-fix later to maint).\n   (merge 617480d75b hn/refs-iterator-peel-returns-boolean later to maint).\n   (merge 6a24cc71ed ar/submodule-helper-include-cleanup later to maint).\n   (merge 5632e838f8 rs/khash-alloc-cleanup later to maint).\n   (merge b1d87fbaf1 jk/typofix later to maint).\n   (merge e04170697a ab/gitignore-discovery-doc later to maint).\n   (merge 8232a0ff48 dl/packet-read-response-end-fix later to maint).\n   (merge eb448631fb dl/diff-merge-base later to maint).\n   (merge c510928a25 hn/refs-debug-empty-prefix later to maint).\n   (merge ddcb189d9d tb/bitmap-type-filter-comment-fix later to maint).\n   (merge 878b399734 pb/submodule-recurse-doc later to maint).\n   (merge 734283855f jk/config-env-doc later to maint).\n   (merge 482e1488a9 ab/getcwd-test later to maint).\n   (merge f0b922473e ar/doc-markup-fix later to maint).\n\n----------------------------------------------------------------\n\nChanges since v2.32.0 are as follows:\n\nAlex Henrie (6):\n      merge: don't translate literal commands\n      stash: don't translate literal commands\n      submodule: use the imperative mood to describe the --files option\n      fetch: improve grammar of \"shallow roots\" message\n      setup: split \"extensions found\" messages into singular and plural\n      graph: improve grammar of \"invalid color\" error message\n\nAlexander Shopov (1):\n      l10n: bg.po: Updated Bulgarian translation (5227t)\n\nAnders Höckersten (1):\n      describe-doc: clarify default length of abbreviation\n\nAndrei Rybak (8):\n      t: fix whitespace around &&\n      mailinfo: use starts_with() when checking scissors\n      *: fix typos which duplicate a word\n      blame: correct name of config option in docs\n      t: fix typos in test messages\n      git-worktree.txt: fix typo in example path\n      help: convert git_cmd to page in one place\n      Documentation: render special characters correctly\n\nAndrew Berry (1):\n      docs: .gitignore parsing is to the top of the repo\n\nAndrzej Hunt (15):\n      bulk-checkin: make buffer reuse more obvious and safer\n      split-index: use oideq instead of memcmp to compare object_id's\n      builtin/checkout--worker: zero-initialise struct to avoid MSAN complaints\n      fmt-merge-msg: free newly allocated temporary strings when done\n      environment: move strbuf into block to plug leak\n      builtin/submodule--helper: release unused strbuf to avoid leak\n      builtin/for-each-repo: remove unnecessary argv copy to plug leak\n      diffcore-rename: move old_dir/new_dir definition to plug leak\n      ref-filter: also free head for ATOM_HEAD to avoid leak\n      read-cache: call diff_setup_done to avoid leak\n      convert: release strbuf to avoid leak\n      builtin/mv: free or UNLEAK multiple pointers at end of cmd_mv\n      builtin/merge: free found_ref when done\n      builtin/rebase: fix options.strategy memory lifecycle\n      reset: clear_unpack_trees_porcelain to plug leak\n\nAtharva Raykar (6):\n      MyFirstContribution: link #git-devel to Libera Chat\n      submodule--helper: remove redundant include\n      t7400: test failure to add submodule in tracked path\n      submodule: prefix die messages with 'fatal'\n      submodule--helper: refactor module_clone()\n      submodule--helper: introduce add-clone subcommand\n\nBagas Sanjaya (5):\n      l10n: id.po: fix mismatched variable names\n      diff: --pickaxe-all typofix\n      l10n: id: po-id for 2.33.0 (round 1)\n      l10n: id: mismatch variable name fixes\n      l10n: id: po-id for 2.33.0 round 2\n\nBeshr Kayali (1):\n      Documentation: fix typo in the --patch option of the commit command\n\nCarlo Marcelo Arenas Belón (4):\n      config.mak.uname: PCRE1 cleanup\n      t7508: avoid non POSIX BRE\n      oidtree: avoid nested struct oidtree_node\n      object-store: avoid extra ';' from KHASH_INIT\n\nChristopher Diaz Riveros (1):\n      l10n: es: 2.33.0 round 2\n\nDaniel Santos (12):\n      l10n: pt_PT: add Portuguese translations part 4\n      l10n: pt_PT: add Portuguese translations part 5\n      l10n: pt_PT: translation tables\n      l10n: pt_PT: remove trailing comments\n      l10n: pt_PT: update git-po-helper\n      l10n: pt_PT: translated git v2.33.0\n      l10n: pt_PT: update translation tables\n      l10n: pt_PT: cleaning duplicate translations\n      l10n: pt_PT: cleaning flags mismatch\n      l10n: pt_PT: update translation table\n      l10n: pt_PT: git-po-helper update\n      l10n: pt_PT: v2.33.0 round 2\n\nDennis Ameling (2):\n      cmake(windows): set correct path to the system Git config\n      ci (vs-build): build with NO_GETTEXT\n\nDenton Liu (2):\n      pkt-line: replace \"stateless separator\" with \"response end\"\n      git-diff: fix missing --merge-base docs\n\nDerrick Stolee (28):\n      hashfile: use write_in_full()\n      csum-file.h: increase hashfile buffer size\n      read-cache: use hashfile instead of git_hash_ctx\n      read-cache: delete unused hashing methods\n      *: fix typos\n      sparse-index: skip indexes with unmerged entries\n      sparse-index: include EXTENDED flag when expanding\n      t1092: replace incorrect 'echo' with 'cat'\n      t1092: expand repository data shape\n      t1092: add tests for status/add and sparse files\n      unpack-trees: preserve cache_bottom\n      unpack-trees: compare sparse directories correctly\n      unpack-trees: rename unpack_nondirectories()\n      unpack-trees: unpack sparse directory entries\n      dir.c: accept a directory as part of cone-mode patterns\n      diff-lib: handle index diffs with sparse dirs\n      status: skip sparse-checkout percentage with sparse-index\n      status: use sparse-index throughout\n      wt-status: expand added sparse directory entries\n      fsmonitor: integrate with sparse index\n      t1092: document bad sparse-checkout behavior\n      p2000: add 'git checkout -' test and decrease depth\n      p2000: compress repo names\n      commit: integrate with sparse-index\n      sparse-index: recompute cache-tree\n      checkout: stop expanding sparse indexes\n      t1092: document bad 'git checkout' behavior\n      unpack-trees: resolve sparse-directory/file conflicts\n\nElijah Newren (36):\n      t6423: rename file within directory that other side renamed\n      Documentation/technical: describe remembering renames optimization\n      fast-rebase: change assert() to BUG()\n      fast-rebase: write conflict state to working tree, index, and HEAD\n      t6429: testcases for remembering renames\n      merge-ort: add data structures for in-memory caching of rename detection\n      merge-ort: populate caches of rename detection results\n      merge-ort: add code to check for whether cached renames can be reused\n      merge-ort: avoid accidental API mis-use\n      merge-ort: preserve cached renames for the appropriate side\n      merge-ort: add helper functions for using cached renames\n      merge-ort: handle interactions of caching and rename/rename(1to1) cases\n      merge-ort, diffcore-rename: employ cached renames when possible\n      merge-ort: replace string_list_df_name_compare with faster alternative\n      diffcore-rename: avoid unnecessary strdup'ing in break_idx\n      Fix various issues found in comments\n      merge-ort: miscellaneous touch-ups\n      promisor-remote: output trace2 statistics for number of objects fetched\n      t6421: add tests checking for excessive object downloads during merge\n      diffcore-rename: allow different missing_object_cb functions\n      diffcore-rename: use a different prefetch for basename comparisons\n      merge-ort: add prefetching for content merges\n      t6423: test directory renames causing rename-to-self\n      merge-ort: ensure we consult df_conflict and path_conflicts\n      merge-recursive: handle rename-to-self case\n      diff: correct warning message when renameLimit exceeded\n      doc: clarify documentation for rename/copy limits\n      diffcore-rename: treat a rename_limit of 0 as unlimited\n      rename: bump limit defaults yet again\n      merge-ort: resolve paths early when we have sufficient information\n      merge-ort: add some more explanations in collect_merge_info_callback()\n      merge-ort: add data structures for allowable trivial directory resolves\n      merge-ort: add a handle_deferred_entries() helper function\n      merge-ort: defer recursing into directories when merge base is matched\n      merge-ort: avoid recursing into directories when we don't need to\n      merge-ort: restart merge with cached renames to reduce process entry cost\n\nEmir Sarı (2):\n      l10n: tr: v2.33.0 round 1\n      l10n: tr: v2.33 (round 2)\n\nEric Wong (6):\n      xmmap: inform Linux users of tuning knobs on ENOMEM\n      speed up alt_odb_usable() with many alternates\n      avoid strlen via strbuf_addstr in link_alt_odb_entry\n      make object_directory.loose_objects_subdir_seen a bitmap\n      oidcpy_with_padding: constify `src' arg\n      oidtree: a crit-bit tree for odb_loose_cache\n\nFabian Wermelinger (1):\n      completion: bash: fix late declaration of __git_cmd_idx\n\nFangyi Zhou (1):\n      l10n: zh_CN: Revision for git v2.32.0 l10n round 1\n\nFelipe Contreras (33):\n      doc: refactor common asciidoc dependencies\n      doc: improve asciidoc dependencies\n      doc: remove unnecessary rm instances\n      doc: simplify Makefile using .DELETE_ON_ERROR\n      doc: avoid using rm directly\n      push: rename !triangular to same_remote\n      push: hedge code of default=simple\n      push: copy code to setup_push_simple()\n      push: reorganize setup_push_simple()\n      push: simplify setup_push_simple()\n      push: remove unused code in setup_push_upstream()\n      doc: push: explain default=simple correctly\n      push: create new get_upstream_ref() helper\n      push: return immediately in trivial switch case\n      push: split switch cases\n      push: factor out null branch check\n      push: only get the branch when needed\n      push: make setup_push_* return the dst\n      push: trivial simplifications\n      push: get rid of all the setup_push_* functions\n      push: factor out the typical case\n      push: remove redundant check\n      push: remove trivial function\n      push: only check same_remote when needed\n      push: don't get a full remote object\n      doc: merge: mention default of defaulttoupstream\n      doc: avoid using the gender of other people\n      comments: avoid using the gender of our users\n      pull: cleanup autostash check\n      pull: trivial cleanup\n      pull: trivial whitespace style fix\n      doc: pull: fix rebase=false documentation\n      test: fix for COLUMNS and bash 5\n\nGregory Anders (1):\n      git-send-email: add option to specify sendmail command\n\nHan-Wen Nienhuys (26):\n      refs: make explicit that ref_iterator_peel returns boolean\n      t4202: split testcase for invalid HEAD symref and HEAD hash\n      t/helper/ref-store: initialize oid in resolve-ref\n      t9300: check ref existence using test-helper rather than a file system check\n      t5601: read HEAD using rev-parse\n      t1401: use tar to snapshot and restore repo state\n      t1401-symbolic-ref: avoid direct filesystem access\n      t1413: use tar to save and restore entire .git directory\n      t1301: fix typo in error message\n      t5000: reformat indentation to the latest fashion\n      t5000: inspect HEAD using git-rev-parse\n      t7003: use rev-parse rather than FS inspection\n      t5304: restyle: trim empty lines, drop ':' before >\n      t5304: use \"reflog expire --all\" to clear the reflog\n      test-lib: provide test prereq REFFILES\n      t1407: require REFFILES for for_each_reflog test\n      t1414: mark corruption test with REFFILES\n      t2017: mark --orphan/logAllRefUpdates=false test as REFFILES\n      t1404: mark tests that muck with .git directly as REFFILES.\n      t7900: stop checking for loose refs\n      t7003: check reflog existence only for REFFILES\n      t4202: mark bogus head hash test with REFFILES\n      t1415: set REFFILES for test specific to storage format\n      t1415: avoid direct filesystem access for writing refs\n      t7509: avoid direct file access for writing CHERRY_PICK_HEAD\n      refs/debug: quote prefix\n\nHu Jialun (2):\n      commit: reorganise commit hint strings\n      commit: remove irrelavent prompt on `--allow-empty-message`\n\nJean-Noël Avila (5):\n      help: fix small typo in error message\n      l10n: fr: fix typo\n      l10n: fr.po v2.33 rnd 1\n      l10n: fr.po fix typos in commands and variables\n      l10n: fr.po v2.33 rnd 2\n\nJeff King (27):\n      clone: clean up directory after transport_fetch_refs() failure\n      fetch-pack: signal v2 server that we are done making requests\n      doc: explain the use of color.pager\n      doc: warn people against --max-pack-size\n      ll_binary_merge(): handle XDL_MERGE_FAVOR_UNION\n      ll_union_merge(): pass name labels to ll_xdl_merge()\n      ll_union_merge(): rename path_unused parameter\n      add_pending_object_with_path(): work around \"gcc -O3\" complaint\n      bitmaps: don't recurse into trees already in the bitmap\n      t: use portable wrapper for readlink(1)\n      pretty.h: update and expand docstring for userformat_find_requirements()\n      log: avoid loading decorations for userformats that don't need it\n      object.h: expand docstring for lookup_unknown_object()\n      object.h: add lookup_object_by_type() function\n      load_ref_decorations(): avoid parsing non-tag objects\n      add_ref_decoration(): rename s/type/deco_type/\n      test-lib: avoid accidental globbing in match_pattern_list()\n      doc/rev-list-options: fix duplicate word typo\n      load_ref_decorations(): fix decoration with tags\n      t0000: clear GIT_SKIP_TESTS before running sub-tests\n      doc/git-config: explain --file instead of referring to GIT_CONFIG\n      doc/git-config: clarify GIT_CONFIG environment variable\n      doc/git-config: simplify \"override\" advice for FILES section\n      pack-bitmap: check pack validity when opening bitmap\n      submodule: drop unused sm_name parameter from show_fetch_remotes()\n      ci: run \"apt-get update\" before \"apt-get install\"\n      ci/install-dependencies: handle \"sparse\" job package installs\n\nJiang Xin (11):\n      t6020: fix incompatible parameter expansion\n      sideband: don't lose clear-to-eol at packet boundary\n      test: compare raw output, not mangle tabs and spaces\n      test: refactor to use \"test_commit\" to create commits\n      test: refactor to use \"get_abbrev_oid\" to get abbrev oid\n      l10n: fixed tripple-letter typos\n      l10n: git.pot: v2.33.0 round 1 (38 new, 15 removed)\n      l10n: git.pot: v2.33.0 round 2 (11 new, 8 removed)\n      l10n: README: refactor to use GFM syntax\n      l10n: zh_CN: for git v2.33.0 l10n round 2\n      l10n: TEAMS: change Simplified Chinese team leader\n\nJohannes Schindelin (15):\n      multimail: stop shipping a copy\n      subtree: fix the GIT_EXEC_PATH sanity check to work on Windows\n      subtree: fix assumption about the directory separator\n      pager: avoid setting COLUMNS when we're guessing its value\n      mingw: move Git for Windows' system config where users expect it\n      config: normalize the path of the system gitconfig\n      ci: use the new GitHub Action to download git-sdk-64-minimal\n      ci (vs-build): use `cmd` to copy the DLLs, not `powershell`\n      ci: upgrade to using actions/{up,down}load-artifacts v2\n      ci (windows): transfer also the Git-tracked files to the test jobs\n      artifacts-tar: respect NO_GETTEXT\n      ci: accelerate the checkout\n      ci: run `make sparse` as part of the GitHub workflow\n      ci(check-whitespace): stop requiring a read/write token\n      ci(check-whitespace): restrict to the intended commits\n\nJonathan Nieder (2):\n      xsize_t: avoid implementation defined behavior when len < 0\n      Revert 'diff-merges: let \"-m\" imply \"-p\"'\n\nJonathan Tan (7):\n      repository: move global r_f_p_c to repo struct\n      promisor-remote: support per-repository config\n      submodule: refrain from filtering GIT_CONFIG_COUNT\n      run-command: refactor subprocess env preparation\n      promisor-remote: teach lazy-fetch in any repo\n      unpack-trees: refactor prefetching code\n      cache-tree: prefetch in partial clone read-tree\n\nJordi Mas (3):\n      l10n: Update Catalan translation\n      l10n: Update Catalan translation\n      l10n: Update Catalan translation\n\nJosh Steadmon (1):\n      docs: fix api-trace2 doc for \"too_many_files\" event\n\nJulian Verdurmen (1):\n      userdiff: add support for C# record types\n\nJunio C Hamano (14):\n      revisions(7): clarify that most commands take a single revision range\n      The first batch post Git 2.32\n      The second batch\n      The third batch\n      The fourth batch\n      CodingGuidelines: recommend gender-neutral description\n      The fifth batch\n      The sixth batch\n      The seventh batch\n      Git 2.33-rc0\n      The eighth batch\n      Git 2.33-rc1\n      Git 2.33-rc2\n      Git 2.33\n\nKaartic Sivaraam (1):\n      submodule: remove unnecessary `prefix` based option logic\n\nMatheus Tavares (1):\n      parallel-checkout: send the new object_id algo field to the workers\n\nMatthew Rogers (3):\n      cmake: add knob to disable vcpkg\n      cmake: create compile_commands.json by default\n      cmake: add warning for ignored MSGFMT_EXE\n\nMichael Schindler (1):\n      mergetools/kdiff3: make kdiff3 work on Windows too\n\nPatrick Steinhardt (2):\n      perf: fix when running with TEST_OUTPUT_DIRECTORY\n      t0000: fix test if run with TEST_OUTPUT_DIRECTORY\n\nPeter Krefting (3):\n      l10n: fixed typos of mismatched constant strings\n      l10n: sv.po: Update Swedish translation (5227t0f0u)\n      l10n: sv.po: Update Swedish translation (5230t0f0u)\n\nPhilippe Blain (6):\n      parse-options: don't complete option aliases by default\n      doc: clarify description of 'submodule.recurse'\n      merge: add missing word \"strategy\" to a message\n      Documentation: define 'MERGE_AUTOSTASH'\n      merge: apply autostash if fast-forward fails\n      merge: apply autostash if merge strategy fails\n\nRalf Thielow (3):\n      l10n: update German translation for Git v2.33.0\n      l10n: de.po: fix typos\n      l10n: update German translation for Git v2.33.0 (rnd2)\n\nRené Scharfe (5):\n      grep: report missing left operand of --and\n      khash: clarify that allocations never fail\n      use fspathhash() everywhere\n      object-file: use unsigned arithmetic with bit mask\n      oidtree: avoid unaligned access to crit-bit tree\n\nReuven Y (1):\n      docs: improve fast-forward in glossary content\n\nSergey Organov (10):\n      t4013: test that \"-m\" alone has no effect in \"git log\"\n      t4013: test \"git log -m --raw\"\n      t4013: test \"git log -m --stat\"\n      t4013: test \"git diff-tree -m\"\n      t4013: test \"git diff-index -m\"\n      diff-merges: move specific diff-index \"-m\" handling to diff-index\n      git-svn: stop passing \"-m\" to \"git rev-list\"\n      stash list: stop passing \"-m\" to \"git log\"\n      diff-merges: rename \"combined_imply_patch\" to \"merges_imply_patch\"\n      diff-merges: let \"-m\" imply \"-p\"\n\nStephen Manz (3):\n      t2400: clean up '\"add\" worktree with lock' test\n      worktree: mark lock strings with `_()` for translation\n      worktree: teach `add` to accept --reason <string> with --lock\n\nTao Klerks (1):\n      Remove warning that repack only works on non-promisor packfiles\n\nTaylor Blau (6):\n      csum-file: introduce checksum_valid()\n      commit-graph: rewrite to use checksum_valid()\n      midx: don't reuse corrupt MIDXs when writing\n      midx: report checksum mismatches during 'verify'\n      multi-pack-index: fix potential segfault without sub-command\n      pack-bitmap: clarify comment in filter_bitmap_exclude_type()\n\nTeng Long (1):\n      packfile-uri.txt: fix blobPackfileUri description\n\nThomas Braun (1):\n      completion: add --anchored to diff's options\n\nThomas Bétous (1):\n      mingw: align symlinks-related rmdir() behavior with Linux\n\nTrần Ngọc Quân (3):\n      l10n: vi.po(5227t): Updated Vietnamese translation for v2.32.0\n      l10n: vi.po(5227t): Fixed typo after run git-po-helper\n      l10n: vi.po(5230t): Updated translation for v2.32.0 round 2\n\nWolfgang Müller (1):\n      rev-parse: mark die() messages for translation\n\nYi-Jyun Pan (2):\n      l10n: zh_TW.po: update for v2.33.0 rnd 2\n      l10n: zh_TW.po: remove the obsolete glossary\n\nZheNing Hu (4):\n      ref-filter: add objectsize to used_atom\n      ref-filter: introduce enum atom_type\n      cat-file: handle trivial --batch format with --batch-all-objects\n      cat-file: merge two block into one\n\nbrian m. carlson (1):\n      rev-list: add option for --pretty=format without header\n\ndorgon.chang (1):\n      git-p4: fix failed submit by skip non-text data files\n\nedef (1):\n      mailinfo: don't discard names under 3 characters\n\nÆvar Arnfjörð Bjarmason (93):\n      test-lib: bring $remove_trash out of retirement\n      test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable\n      test-lib-functions: reword \"test_commit --append\" docs\n      test-lib-functions: document test_commit --no-tag\n      test-lib functions: add an --annotated option to \"test_commit\"\n      describe tests: convert setup to use test_commit\n      test-lib functions: add --printf option to test_commit\n      submodule tests: use symbolic-ref --short to discover branch name\n      test-lib: reformat argument list in test_create_repo()\n      test-lib: do not show advice about init.defaultBranch under --verbose\n      test-lib: split up and deprecate test_create_repo()\n      grep/pcre2 tests: reword comments referring to kwset\n      pickaxe tests: refactor to use test_commit --append --printf\n      pickaxe tests: add test for diffgrep_consume() internals\n      pickaxe tests: add test for \"log -S\" not being a regex\n      pickaxe tests: test for -G, -S and --find-object incompatibility\n      pickaxe tests: add missing test for --no-pickaxe-regex being an error\n      pickaxe: die when -G and --pickaxe-regex are combined\n      pickaxe: die when --find-object and --pickaxe-all are combined\n      diff.h: move pickaxe fields together again\n      pickaxe/style: consolidate declarations and assignments\n      perf: add performance test for pickaxe\n      pickaxe: refactor function selection in diffcore-pickaxe()\n      pickaxe: assert that we must have a needle under -G or -S\n      pickaxe -S: support content with NULs under --pickaxe-regex\n      pickaxe: rename variables in has_changes() for brevity\n      pickaxe -S: slightly optimize contains()\n      xdiff-interface: prepare for allowing early return\n      xdiff-interface: allow early return from xdiff_emit_line_fn\n      pickaxe -G: terminate early on matching lines\n      pickaxe -G: don't special-case create/delete\n      xdiff users: use designated initializers for out_line\n      xdiff-interface: replace discard_hunk_line() with a flag\n      describe tests: improve test for --work-tree & --dirty\n      describe tests: refactor away from glob matching\n      describe tests: don't rely on err.actual from \"check_describe\"\n      describe tests: fix nested \"test_expect_success\" call\n      describe tests: support -C in \"check_describe\"\n      trace2: refactor to avoid gcc warning under -O3\n      send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true\n      send-email tests: test for boolean variables without a value\n      send-email: remove non-working support for \"sendemail.smtpssl\"\n      send-email: refactor sendemail.smtpencryption config parsing\n      send-email: copy \"config_regxp\" into git-send-email.perl\n      send-email: lazily load config for a big speedup\n      send-email: lazily shell out to \"git var\"\n      send-email: use function syntax instead of barewords\n      send-email: get rid of indirect object syntax\n      send-email: lazily load modules for a big speedup\n      perl: lazily load some common Git.pm setup code\n      send-email: move trivial config handling to Perl\n      perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd()\n      protocol-caps.h: add newline at end of file\n      read-cache.c: don't guard calls to progress.c API\n      xdiff: use BUG(...), not xdl_bug(...)\n      builtins + test helpers: use return instead of exit() in cmd_*\n      mktag tests: parse out options in helper\n      mktag tests: invert --no-strict test\n      show-branch tests: rename the one \"show-branch\" test file\n      show-branch tests: modernize test code\n      pre-commit hook tests: don't leave \"actual\" nonexisting on failure\n      gc tests: add a test for the \"pre-auto-gc\" hook\n      mktag tests: test hash-object --literally and unreachable fsck\n      mktag tests: test update-ref and reachable fsck\n      mktag tests: test for-each-ref\n      mktag tests: test fast-export\n      show-branch: don't <COLOR></RESET> for space characters\n      show-branch tests: add missing tests\n      Makefile: add and use the \".DELETE_ON_ERROR\" flag\n      test-lib.sh: set COLUMNS=80 for --verbose repeatability\n      send-pack.c: move \"no refs in common\" abort earlier\n      fetch: document the --negotiate-only option\n      *.h: move some *_INIT to designated initializers\n      *.c *_init(): define in terms of corresponding *_INIT macro\n      dir.[ch]: replace dir_init() with DIR_INIT\n      string-list.[ch]: add a string_list_init_{nodup,dup}()\n      string-list.h users: change to use *_{nodup,dup}()\n      bundle cmd: stop leaking memory from parse_options_cmd_bundle()\n      bundle.c: use a temporary variable for OIDs and names\n      bundle: remove \"ref_list\" in favor of string-list.c API\n      imap-send.c: use less verbose strbuf_fread() idiom\n      fetch: fix segfault in --negotiate-only without --negotiation-tip=*\n      *.c static functions: don't forward-declare __attribute__\n      sequencer.c: move static function to avoid forward decl\n      *.c static functions: add missing __attribute__((format))\n      *.h: add a few missing __attribute__((format))\n      advice.h: add missing __attribute__((format)) & fix usage\n      test-lib-functions: use test-tool for [de]packetize()\n      SubmittingPatches: move discussion of Signed-off-by above \"send\"\n      SubmittingPatches: replace discussion of Travis with GitHub Actions\n      bundle tests: use \">file\" not \": >file\"\n      bundle tests: use test_cmp instead of grep\n      t0001: fix broken not-quite getcwd(3) test in bed67874e2\n\nĐoàn Trần Công Danh (6):\n      t: use configured TAR instead of tar\n      doc/log: correct default for --decorate\n      t: use user-specified utf-8 locale for testing svn\n      test-lib-functions: introduce test_stdout_line_count\n      t6400: preserve git ls-files exit status code\n      t6402: preserve git exit status code\n\n依云 (1):\n      l10n: zh_CN: review for git v2.32.0 l10n round 1\n\n"}]}