{"thread":{"id":"58052","subject":"[ANNOUNCE] Git v2.37.0-rc2","startedAt":"2022-06-22T19:34:06Z","lastAt":"2022-06-27T08:32:21Z","messageCount":5,"participants":["Junio C Hamano","Fernando Ramos","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"457740","messageId":"xmqqedzg4hqj.fsf@gitster.g","threadId":"58052","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.37.0-rc2","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-06-22T19:32:04Z","receivedAt":"2022-06-22T19:34:06Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"A release candidate Git v2.37.0-rc2 is now available for testing at\nthe usual places.  It is comprised of 378 non-merge commits since\nv2.36.0, contributed by 64 people, 19 of which are new faces [*].\n\nDue to summer vacation season in the northern hemisphere, this cycle\nis shorter than usual.  We expect to tag the final 2.37 release\nearly next week.  Hopefully we fixed all the known regressions in\n2.36 without adding too many new ones.\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.37.0-rc2' 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.36.0 are as follows.\nWelcome to the Git development community!\n\n  Chris Down, Daniel Li, Fernando Ramos, Frantisek Hrbata,\n  Garrit Franke, Gregory David, Guy Maurel, halilsen, Huang Zou,\n  \"Ing. Martin Prantl Ph.D.\", Joakim Petersen, Kevin Locke,\n  Khalid Masum, Kirill Frolov, Kleber Tarcísio, Laurent Lyaudet,\n  Siddharth Asthana, Thomas Hurst, and Yuyi Wang.\n\nReturning contributors who helped this release are as follows.\nThanks for your continued support.\n\n  Abhradeep Chakraborty, Ævar Arnfjörð Bjarmason, Alexander\n  Shopov, Alex Henrie, Anthony Sottile, BRESSAT Jonathan, Carlo\n  Arenas, Carlo Marcelo Arenas Belón, Christian Couder, COGONI\n  Guillaume, Derrick Stolee, Edmundo Carmona Antoranz, Elia Pinto,\n  Elijah Newren, Eric Sunshine, Fabian Stelzer, Fangyi Zhou, Glen\n  Choo, Jason Yundt, Jeff Hostetler, Jeff King, Jiang Xin, Joel\n  Holdsworth, Johannes Schindelin, Jonathan Tan, Josh Steadmon,\n  Junio C Hamano, Matthew John Cheetham, Matthias Aßhauer,\n  Matthieu Moy, Michael J Gruber, Miklos Vajna, Neeraj Singh,\n  Orgad Shaneh, Philip Oakley, Philippe Blain, Phillip Wood,\n  Randall S. Becker, René Scharfe, Son Luong Ngoc, SZEDER Gábor,\n  Tao Klerks, Taylor Blau, Victoria Dye, and ZheNing Hu.\n\n[*] We are counting not just the authorship contribution but issue\n    reporting, mentoring, helping and reviewing that are recorded in\n    the commit trailers.\n\n----------------------------------------------------------------\n\nGit v2.37 Release Notes (draft)\n===============================\n\nUI, Workflows & Features\n\n * \"vimdiff[123]\" mergetool drivers have been reimplemented with a\n   more generic layout mechanism.\n\n * \"git -v\" and \"git -h\" are now understood as \"git --version\" and\n   \"git --help\".\n\n * The temporary files fed to external diff command are now generated\n   inside a new temporary directory under the same basename.\n\n * \"git log --since=X\" will stop traversal upon seeing a commit that\n   is older than X, but there may be commits behind it that is younger\n   than X when the commit was created with a faulty clock.  A new\n   option is added to keep digging without stopping, and instead\n   filter out commits with timestamp older than X.\n\n * \"git -c branch.autosetupmerge=simple branch $A $B\" will set the $B\n   as $A's upstream only when $A and $B shares the same name, and \"git\n   -c push.default=simple\" on branch $A would push to update the\n   branch $A at the remote $B came from.  Also more places use the\n   sole remote, if exists, before defaulting to 'origin'.\n\n * A new doc has been added that lists tips for tools to work with\n   Git's codebase.\n\n * \"git remote -v\" now shows the list-objects-filter used during\n   fetching from the remote, if available.\n\n * With the new http.curloptResolve configuration, the CURLOPT_RESOLVE\n   mechanism that allows cURL based applications to use pre-resolved\n   IP addresses for the requests is exposed to the scripts.\n\n * \"git add -i\" was rewritten in C some time ago and has been in\n   testing; the reimplementation is now exposed to general public by\n   default.\n\n * Deprecate non-cone mode of the sparse-checkout feature.\n\n * Introduce a filesystem-dependent mechanism to optimize the way the\n   bits for many loose object files are ensured to hit the disk\n   platter.\n\n * The \"do not remove the directory the user started Git in\" logic,\n   when Git cannot tell where that directory is, is disabled.  Earlier\n   we refused to run in such a case.\n\n * A mechanism to pack unreachable objects into a \"cruft pack\",\n   instead of ejecting them into loose form to be reclaimed later, has\n   been introduced.\n\n * Update the doctype written in gitweb output to xhtml5.\n\n * The \"transfer.credentialsInURL\" configuration variable controls what\n   happens when a URL with embedded login credential is used on either\n   \"fetch\" or \"push\". Credentials are currently only detected in\n   `remote.<name>.url` config, not `remote.<name>.pushurl`.\n\n * \"git revert\" learns \"--reference\" option to use more human-readable\n   reference to the commit it reverts in the message template it\n   prepares for the user.\n\n * Various error messages that talk about the removal of\n   \"--preserve-merges\" in \"rebase\" have been strengthened, and \"rebase\n   --abort\" learned to get out of a state that was left by an earlier\n   use of the option.\n\n\nPerformance, Internal Implementation, Development Support etc.\n\n * The performance of the \"untracked cache\" feature has been improved\n   when \"--untracked-files=<mode>\" and \"status.showUntrackedFiles\"\n   are combined.\n\n * \"git stash\" works better with sparse index entries.\n\n * \"git show :<path>\" learned to work better with the sparse-index\n   feature.\n\n * Introduce and apply coccinelle rule to discourage an explicit\n   comparison between a pointer and NULL, and applies the clean-up to\n   the maintenance track.\n\n * Preliminary code refactoring around transport and bundle code.\n\n * \"sparse-checkout\" learns to work better with the sparse-index\n   feature.\n\n * A workflow change for translators are being proposed.  git.pot is\n   no longer version controlled and it is local responsibility of\n   translators to generate it.\n\n * Plug the memory leaks from the trickiest API of all, the revision\n   walker.\n\n * Rename .env_array member to .env in the child_process structure.\n\n  * The fsmonitor--daemon handles even more corner cases when\n    watching filesystem events.\n\n * A new bug() and BUG_if_bug() API is introduced to make it easier to\n   uniformly log \"detect multiple bugs and abort in the end\" pattern.\n\n\nFixes since v2.36\n-----------------\n\n * \"git submodule update\" without pathspec should silently skip an\n   uninitialized submodule, but it started to become noisy by mistake.\n   (merge 4f1ccef87c gc/submodule-update-part2 later to maint).\n\n * \"diff-tree --stdin\" has been broken for about a year, but 2.36\n   release broke it even worse by breaking running the command with\n   <pathspec>, which in turn broke \"gitk\" and got noticed.  This has\n   been corrected by aligning its behaviour to that of \"log\".\n   (merge f8781bfda3 jc/diff-tree-stdin-fix later to maint).\n\n * Regression fix for 2.36 where \"git name-rev\" started to sometimes\n   reference strings after they are freed.\n   (merge 45a14f578e rs/name-rev-fix-free-after-use later to maint).\n\n * \"git show <commit1> <commit2>... -- <pathspec>\" lost the pathspec\n   when showing the second and subsequent commits, which has been\n   corrected.\n   (merge 5cdb38458e jc/show-pathspec-fix later to maint).\n\n * \"git fast-export -- <pathspec>\" lost the pathspec when showing the\n   second and subsequent commits, which has been corrected.\n   (merge d1c25272f5 rs/fast-export-pathspec-fix later to maint).\n\n * \"git format-patch <args> -- <pathspec>\" lost the pathspec when\n   showing the second and subsequent commits, which has been\n   corrected.\n   (merge 91f8f7e46f rs/format-patch-pathspec-fix later to maint).\n\n * \"git clone --origin X\" leaked piece of memory that held value read\n   from the clone.defaultRemoteName configuration variable, which has\n   been plugged.\n   (merge 6dfadc8981 jc/clone-remote-name-leak-fix later to maint).\n\n * Get rid of a bogus and over-eager coccinelle rule.\n   (merge 08bdd3a185 jc/cocci-xstrdup-or-null-fix later to maint).\n\n * The path taken by \"git multi-pack-index\" command from the end user\n   was compared with path internally prepared by the tool without first\n   normalizing, which lead to duplicated paths not being noticed,\n   which has been corrected.\n   (merge 11f9e8de3d ds/midx-normalize-pathname-before-comparison later to maint).\n\n * Correct choices of C compilers used in various CI jobs.\n   (merge 3506cae04f ab/cc-package-fixes later to maint).\n\n * Various cleanups to \"git p4\".\n   (merge 4ff0108d9e jh/p4-various-fixups later to maint).\n\n * The progress meter of \"git blame\" was showing incorrect numbers\n   when processing only parts of the file.\n   (merge e5f5d7d42e ea/progress-partial-blame later to maint).\n\n * \"git rebase --keep-base <upstream> <branch-to-rebase>\" computed the\n   commit to rebase onto incorrectly, which has been corrected.\n   (merge 9e5ebe9668 ah/rebase-keep-base-fix later to maint).\n\n * Fix a leak of FILE * in an error codepath.\n   (merge c0befa0c03 kt/commit-graph-plug-fp-leak-on-error later to maint).\n\n * Avoid problems from interaction between malloc_check and address\n   sanitizer.\n   (merge 067109a5e7 pw/test-malloc-with-sanitize-address later to maint).\n\n * The commit summary shown after making a commit is matched to what\n   is given in \"git status\" not to use the break-rewrite heuristics.\n   (merge 84792322ed rs/commit-summary-wo-break-rewrite later to maint).\n\n * Update a few end-user facing messages around EOL conversion.\n   (merge c970d30c2c ah/convert-warning-message later to maint).\n\n * Trace2 documentation updates.\n   (merge a6c80c313c js/trace2-doc-fixes later to maint).\n\n * Build procedure fixup.\n   (merge 1fbfd96f50 mg/detect-compiler-in-c-locale later to maint).\n\n * \"git pull\" without \"--recurse-submodules=<arg>\" made\n   submodule.recurse take precedence over fetch.recurseSubmodules by\n   mistake, which has been corrected.\n   (merge 5819417365 gc/pull-recurse-submodules later to maint).\n\n * \"git bisect\" was too silent before it is ready to start computing\n   the actual bisection, which has been corrected.\n   (merge f11046e6de cd/bisect-messages-from-pre-flight-states later to maint).\n\n * macOS CI jobs have been occasionally flaky due to tentative version\n   skew between perforce and the homebrew packager.  Instead of\n   failing the whole CI job, just let it skip the p4 tests when this\n   happens.\n   (merge f15e00b463 cb/ci-make-p4-optional later to maint).\n\n * A bit of test framework fixes with a few fixes to issues found by\n   valgrind.\n   (merge 7c898554d7 ab/valgrind-fixes later to maint).\n\n * \"git archive --add-file=<path>\" picked up the raw permission bits\n   from the path and propagated to zip output in some cases, without\n   normalization, which has been corrected (tar output did not have\n   this issue).\n   (merge 6a61661967 jc/archive-add-file-normalize-mode later to maint).\n\n * \"make coverage-report\" without first running \"make coverage\" did\n   not produce any meaningful result, which has been corrected.\n   (merge 96ddfecc5b ep/coverage-report-wants-test-to-have-run later to maint).\n\n * The \"--current\" option of \"git show-branch\" should have been made\n   incompatible with the \"--reflog\" mode, but this was not enforced,\n   which has been corrected.\n   (merge 41c64ae0e7 jc/show-branch-g-current later to maint).\n\n * \"git fetch\" unnecessarily failed when an unexpected optional\n   section appeared in the output, which has been corrected.\n   (merge 7709acf7be jt/fetch-peek-optional-section later to maint).\n\n * The way \"git fetch\" without \"--update-head-ok\" ensures that HEAD in\n   no worktree points at any ref being updated was too wasteful, which\n   has been optimized a bit.\n   (merge f7400da800 os/fetch-check-not-current-branch later to maint).\n\n * \"git fetch --recurse-submodules\" from multiple remotes (either from\n   a remote group, or \"--all\") used to make one extra \"git fetch\" in\n   the submodules, which has been corrected.\n   (merge 0353c68818 jc/avoid-redundant-submodule-fetch later to maint).\n\n * With a recent update to refuse access to repositories of other\n   people by default, \"sudo make install\" and \"sudo git describe\"\n   stopped working, which has been corrected.\n   (merge 6b11e3d52e cb/path-owner-check-with-sudo-plus later to maint).\n\n * The tests that ensured merges stop when interfering local changes\n   are present did not make sure that local changes are preserved; now\n   they do.\n   (merge 4b317450ce jc/t6424-failing-merge-preserve-local-changes later to maint).\n\n * Some real problems noticed by gcc 12 have been fixed, while false\n   positives have been worked around.\n\n * Update the version of FreeBSD image used in Cirrus CI.\n   (merge c58bebd4c6 pb/use-freebsd-12.3-in-cirrus-ci later to maint).\n\n * The multi-pack-index code did not protect the packfile it is going\n   to depend on from getting removed while in use, which has been\n   corrected.\n   (merge 4090511e40 tb/midx-race-in-pack-objects later to maint).\n\n * Teach \"git repack --geometric\" work better with \"--keep-pack\" and\n   avoid corrupting the repository when packsize limit is used.\n   (merge 66731ff921 tb/geom-repack-with-keep-and-max later to maint).\n\n * The documentation on the interaction between \"--add-file\" and\n   \"--prefix\" options of \"git archive\" has been improved.\n   (merge a75910602a rs/document-archive-prefix later to maint).\n\n * A git subcommand like \"git add -p\" spawns a separate git process\n   while relaying its command line arguments.  A pathspec with only\n   negative elements was mistakenly passed with an empty string, which\n   has been corrected.\n   (merge b02fdbc80a jc/all-negative-pathspec later to maint).\n\n * With a more targeted workaround in http.c in another topic, we may\n   be able to lift this blanket \"GCC12 dangling-pointer warning is\n   broken and unsalvageable\" workaround.\n   (merge 419141e495 cb/buggy-gcc-12-workaround later to maint).\n\n * A misconfigured 'branch..remote' led to a bug in configuration\n   parsing.\n   (merge f1dfbd9ee0 gc/zero-length-branch-config-fix later to maint).\n\n * \"git -c diff.submodule=log range-diff\" did not show anything for\n   submodules that changed in the ranges being compared, and\n   \"git -c diff.submodule=diff range-diff\" did not work correctly.\n   Fix this by including the \"--submodule=short\" output\n   unconditionally to be compared.\n\n * In Git 2.36 we revamped the way how hooks are invoked.  One change\n   that is end-user visible is that the output of a hook is no longer\n   directly connected to the standard output of \"git\" that spawns the\n   hook, which was noticed post release.  This is getting corrected.\n   (merge a082345372 ab/hooks-regression-fix later to maint).\n\n * Updating the graft information invalidates the list of parents of\n   in-core commit objects that used to be in the graft file.\n\n * \"git show-ref --heads\" (and \"--tags\") still iterated over all the\n   refs only to discard refs outside the specified area, which has\n   been corrected.\n   (merge c0c9d35e27 tb/show-ref-optim later to maint).\n\n * Remove redundant copying (with index v3 and older) or possible\n   over-reading beyond end of mmapped memory (with index v4) has been\n   corrected.\n   (merge 6d858341d2 zh/read-cache-copy-name-entry-fix later to maint).\n\n * Sample watchman interface hook sometimes failed to produce\n   correctly formatted JSON message, which has been corrected.\n   (merge 134047b500 sn/fsmonitor-missing-clock later to maint).\n\n * Use-after-free (with another forget-to-free) fix.\n   (merge 323822c72b ab/remote-free-fix later to maint).\n\n * Remove a coccinelle rule that is no longer relevant.\n   (merge b1299de4a1 jc/cocci-cleanup later to maint).\n\n * Other code cleanup, docfix, build fix, etc.\n   (merge e6b2582da3 cm/reftable-0-length-memset later to maint).\n   (merge 0b75e5bf22 ab/misc-cleanup later to maint).\n   (merge 52e1ab8a76 ea/rebase-code-simplify later to maint).\n   (merge 756d15923b sg/safe-directory-tests-and-docs later to maint).\n   (merge d097a23bfa ds/do-not-call-bug-on-bad-refs later to maint).\n   (merge c36c27e75c rs/t7812-pcre2-ws-bug-test later to maint).\n   (merge 1da312742d gf/unused-includes later to maint).\n   (merge 465b30a92d pb/submodule-recurse-mode-enum later to maint).\n   (merge 82b28c4ed8 km/t3501-use-test-helpers later to maint).\n   (merge 72315e431b sa/t1011-use-helpers later to maint).\n   (merge 95b3002201 cg/vscode-with-gdb later to maint).\n   (merge fbe5f6b804 tk/p4-utf8-bom later to maint).\n   (merge 17f273ffba tk/p4-with-explicity-sync later to maint).\n   (merge 944db25c60 kf/p4-multiple-remotes later to maint).\n   (merge b014cee8de jc/update-ozlabs-url later to maint).\n   (merge 4ec5008062 pb/ggg-in-mfc-doc later to maint).\n   (merge af845a604d tb/receive-pack-code-cleanup later to maint).\n   (merge 2acf4cf001 js/ci-gcc-12-fixes later to maint).\n   (merge 05e280c0a6 jc/http-clear-finished-pointer later to maint).\n   (merge 8c49d704ef fh/transport-push-leakfix later to maint).\n   (merge 1d232d38bd tl/ls-tree-oid-only later to maint).\n   (merge db7961e6a6 gc/document-config-worktree-scope later to maint).\n   (merge ce18a30bb7 fs/ssh-default-key-command-doc later to maint).\n\n----------------------------------------------------------------\n\nChanges since v2.36.0 are as follows:\n\nAbhradeep Chakraborty (1):\n      builtin/remote.c: teach `-v` to list filters for promisor remotes\n\nAlex Henrie (2):\n      convert: clarify line ending conversion warning\n      rebase: use correct base for --keep-base when a branch is given\n\nAlexander Shopov (1):\n      name-rev: prefix annotate-stdin with '--' in message\n\nCOGONI Guillaume (2):\n      contrib/vscode/: debugging with VS Code and gdb\n      Documentation/ToolsForGit.txt: Tools for developing Git\n\nCarlo Marcelo Arenas Belón (8):\n      reftable: avoid undefined behaviour breaking t0032\n      ci: make failure to find perforce more user friendly\n      ci: avoid brew for installing perforce\n      ci: reintroduce prevention from perforce being quarantined in macOS\n      t: regression git needs safe.directory when using sudo\n      git-compat-util: avoid failing dir ownership checks if running privileged\n      t0034: add negative tests and allow git init to mostly work under sudo\n      git-compat-util: allow root to access both SUDO_UID and root owned\n\nChris Down (2):\n      bisect: output state before we are ready to compute bisection\n      bisect: output bisect setup status in bisect log\n\nChristian Couder (1):\n      http: add custom hostname to IP address resolutions\n\nDerrick Stolee (28):\n      clone: die() instead of BUG() on bad refs\n      midx: use real paths in lookup_multi_pack_index()\n      multi-pack-index: use --object-dir real path\n      cache: use const char * for get_object_directory()\n      t1092: add compatibility tests for 'git show'\n      show: integrate with the sparse index\n      object-name: reject trees found in the index\n      object-name: diagnose trees in index properly\n      rev-parse: integrate with sparse index\n      http: make http_get_file() external\n      remote: move relative_url()\n      remote: allow relative_url() to return an absolute url\n      object-file: convert 'switch' back to 'if'\n      t1092: refactor 'sparse-index contents' test\n      t1092: stress test 'git sparse-checkout set'\n      sparse-index: create expand_index()\n      sparse-index: introduce partially-sparse indexes\n      cache-tree: implement cache_tree_find_path()\n      sparse-checkout: --no-sparse-index needs a full index\n      sparse-index: partially expand directories\n      sparse-index: complete partial expansion\n      p2000: add test for 'git sparse-checkout [add|set]'\n      sparse-checkout: integrate with sparse index\n      remote: create fetch.credentialsInUrl config\n      t2107: test 'git update-index --verbose'\n      t5329: test 'git gc --cruft' without '--prune=now'\n      pack-write: drop always-NULL parameter\n      cache-tree: remove cache_tree_find_path()\n\nEdmundo Carmona Antoranz (2):\n      blame: report correct number of lines in progress when using ranges\n      rebase: simplify an assignment of options.type in cmd_rebase\n\nElia Pinto (2):\n      Makefile: add a prerequisite to the coverage-report target\n      contrib/coccinnelle: add equals-null.cocci\n\nElijah Newren (9):\n      tests: stop assuming --no-cone is the default mode for sparse-checkout\n      sparse-checkout: make --cone the default\n      git-sparse-checkout.txt: wording updates for the cone mode default\n      git-sparse-checkout.txt: update docs for deprecation of 'init'\n      git-sparse-checkout.txt: shuffle some sections and mark as internal\n      git-sparse-checkout.txt: add a new EXAMPLES section\n      git-sparse-checkout.txt: flesh out pattern set sections a bit\n      git-sparse-checkout.txt: mark non-cone mode as deprecated\n      Documentation: some sparsity wording clarifications\n\nFabian Stelzer (1):\n      gpg docs: explain better use of ssh.defaultKeyCommand\n\nFangyi Zhou (2):\n      push: fix capitalisation of the option name autoSetupMerge\n      builtin/rebase: remove a redundant space in l10n string\n\nFernando Ramos (4):\n      vimdiff: new implementation with layout support\n      vimdiff: integrate layout tests in the unit tests framework ('t' folder)\n      vimdiff: add tool documentation\n      mergetools: add description to all diff/merge tools\n\nFrantisek Hrbata (3):\n      transport: remove unnecessary indenting in transport_push()\n      transport: unify return values and exit point from transport_push()\n      transport: free local and remote refs in transport_push()\n\nGarrit Franke (3):\n      cli: add -v and -h shorthands\n      serve.c: remove unnecessary include\n      apply.c: remove unnecessary include\n\nGlen Choo (4):\n      pull: do not let submodule.recurse override fetch.recurseSubmodules\n      remote.c: don't BUG() on 0-length branch names\n      remote.c: reject 0-length branch names\n      config: document and test the 'worktree' scope\n\nJason Yundt (1):\n      gitweb: switch to an XHTML5 DOCTYPE\n\nJeff Hostetler (30):\n      fsm-listen-win32: handle shortnames\n      t7527: test FSMonitor on repos with Unicode root paths\n      t/helper/fsmonitor-client: create stress test\n      fsmonitor-settings: bare repos are incompatible with FSMonitor\n      fsmonitor-settings: stub in Win32-specific incompatibility checking\n      fsmonitor-settings: VFS for Git virtual repos are incompatible\n      fsmonitor-settings: stub in macOS-specific incompatibility checking\n      fsmonitor-settings: remote repos on macOS are incompatible\n      fsmonitor-settings: remote repos on Windows are incompatible\n      fsmonitor-settings: NTFS and FAT32 on MacOS are incompatible\n      unpack-trees: initialize fsmonitor_has_run_once in o->result\n      fsm-listen-darwin: ignore FSEvents caused by xattr changes on macOS\n      fsmonitor--daemon: cd out of worktree root\n      fsmonitor--daemon: prepare for adding health thread\n      fsmonitor--daemon: rename listener thread related variables\n      fsmonitor--daemon: stub in health thread\n      fsm-health-win32: add polling framework to monitor daemon health\n      fsm-health-win32: force shutdown daemon if worktree root moves\n      fsm-listen-darwin: shutdown daemon if worktree root is moved/renamed\n      fsmonitor: optimize processing of directory events\n      t7527: FSMonitor tests for directory moves\n      t/perf/p7527: add perf test for builtin FSMonitor\n      fsmonitor: never set CE_FSMONITOR_VALID on submodules\n      t7527: test FSMonitor on case insensitive+preserving file system\n      fsmonitor: on macOS also emit NFC spelling for NFD pathname\n      t/helper/hexdump: add helper to print hexdump of stdin\n      t/lib-unicode-nfc-nfd: helper prereqs for testing unicode nfc/nfd\n      t7527: test Unicode NFC/NFD handling on MacOS\n      fsmonitor--daemon: allow --super-prefix argument\n      t7527: improve implicit shutdown testing in fsmonitor--daemon\n\nJeff King (2):\n      perf-lib: fix missing test titles in output\n      bug_fl(): correctly initialize trace2 va_list\n\nJiang Xin (6):\n      Makefile: sort source files before feeding to xgettext\n      Makefile: generate \"po/git.pot\" from stable LOCALIZED_C\n      Makefile: remove duplicate and unwanted files in FOUND_SOURCE_FILES\n      po/git.pot: this is now a generated file\n      Makefile: add \"po-update\" rule to update po/XX.po\n      i18n: fix mismatched camelCase config variables\n\nJoakim Petersen (2):\n      git-prompt: make colourization consistent\n      git-prompt: fix expansion of branch colour codes\n\nJoel Holdsworth (22):\n      git-p4: add blank lines between functions and class definitions\n      git-p4: remove unneeded semicolons from statements\n      git-p4: indent with 4-spaces\n      git-p4: improve consistency of docstring formatting\n      git-p4: convert descriptive class and function comments into docstrings\n      git-p4: remove commented code\n      git-p4: sort and de-duplcate pylint disable list\n      git-p4: remove padding from lists, tuples and function arguments\n      git-p4: remove spaces around default arguments\n      git-p4: removed brackets when assigning multiple return values\n      git-p4: place a single space after every comma\n      git-p4: remove extraneous spaces before function arguments\n      git-p4: remove redundant backslash-continuations inside brackets\n      git-p4: remove spaces between dictionary keys and colons\n      git-p4: ensure every comment has a single #\n      git-p4: ensure there is a single space around all operators\n      git-p4: normalize indentation of lines in conditionals\n      git-p4: compare to singletons with \"is\" and \"is not\"\n      git-p4: only seperate code blocks by a single empty line\n      git-p4: move inline comments to line above\n      git-p4: seperate multiple statements onto seperate lines\n      git-p4: sort imports\n\nJohannes Schindelin (36):\n      t2016: require the PERL prereq only when necessary\n      add -i: default to the built-in implementation\n      trace2 docs: a couple of grammar fixes\n      trace2 docs: \"printf\" is not an English word\n      trace2 docs: surround more terms in backticks\n      trace2 docs: fix a JSON formatted example\n      trace2 docs: clarify what `varargs` is all about\n      trace2 docs: add missing full stop\n      ci: fix code style\n      tests: refactor --write-junit-xml code\n      test(junit): avoid line feeds in XML attributes\n      ci/run-build-and-tests: take a more high-level view\n      ci: make it easier to find failed tests' logs in the GitHub workflow\n      ci/run-build-and-tests: add some structure to the GitHub workflow output\n      ci: optionally mark up output in the GitHub workflow\n      ci(github): skip the logs of the successful test cases\n      ci: use `--github-workflow-markup` in the GitHub workflow\n      ci(github): mention where the full logs can be found\n      ci: call `finalize_test_case_output` a little later\n      compat/win32/syslog: fix use-after-realloc\n      nedmalloc: avoid new compile error\n      dir.c: avoid \"exceeds maximum object size\" error with GCC v12.x\n      archive: optionally add \"virtual\" files\n      archive --add-virtual-file: allow paths containing colons\n      scalar: validate the optional enlistment argument\n      scalar: implement `scalar diagnose`\n      scalar diagnose: include disk space information\n      ci(github): bring back the 'print test failures' step\n      ci(github): use grouping also in the `win-build` job\n      ci(github): also mark up compile errors\n      fsmonitor: avoid memory leak in `fsm_settings__get_incompatible_msg()`\n      submodule-config: avoid memory leak\n      submodule--helper: avoid memory leak when fetching submodules\n      read_index_from(): avoid memory leak\n      pack-mtimes: avoid closing a bogus file descriptor\n      relative_url(): fix incorrect condition\n\nJonathan Tan (2):\n      fetch-pack: make unexpected peek result non-fatal\n      commit,shallow: unparse commits if grafts changed\n\nJosh Steadmon (1):\n      run-command: don't spam trace2_child_exit()\n\nJunio C Hamano (39):\n      show-branch: -g and --current are incompatible\n      2.36 gitk/diff-tree --stdin regression fix\n      Some regression fixes for 2.36\n      2.36 show regression fix\n      clone: plug a miniscule leak\n      cocci: drop bogus xstrdup_or_null() rule\n      tree-wide: apply equals-null.cocci\n      tree-wide: apply equals-null.cocci\n      tree-wide: apply equals-null.cocci\n      A bit more regression fixes for 2.36\n      Git 2.36.1\n      0th batch for topics from the previous cycle\n      SubmittingPatches: use more stable git.ozlabs.org URL\n      second 0th batch of topics from the previous cycle\n      archive: do not let on-disk mode leak to zip archives\n      commit: fix \"author_ident\" leak\n      fetch: do not run a redundant fetch from submodule\n      t6424: make sure a failed merge preserves local changes\n      First batch for 2.37\n      Second batch\n      Third batch\n      Fourth batch\n      revert: optionally refer to commit in the \"reference\" format\n      http.c: clear the 'finished' member once we are done with it\n      pathspec: correct an empty string used as a pathspec element\n      Fifth batch\n      revert: --reference should apply only to 'revert', not 'cherry-pick'\n      Sixth batch\n      Revert -Wno-error=dangling-pointer\n      Seventh batch\n      Eighth batch\n      cocci: retire is_null_sha1() rule\n      Prepare for 2.36.2\n      Ninth batch\n      Git 2.37-rc0\n      Fixes and updates post -rc0\n      Another batch of fixes before -rc1\n      Git 2.37-rc1\n      Git 2.37-rc2\n\nKevin Locke (1):\n      setup: don't die if realpath(3) fails on getcwd(3)\n\nKhalid Masum (1):\n      t3501: remove test -f and stop ignoring git <cmd> exit code\n\nKirill Frolov (1):\n      git-p4: fix issue with multiple perforce remotes\n\nKleber Tarcísio (1):\n      commit-graph: close file before returning NULL\n\nMatthew John Cheetham (2):\n      scalar: teach `diagnose` to gather packfile info\n      scalar: teach `diagnose` to gather loose objects information\n\nMichael J Gruber (1):\n      detect-compiler: make detection independent of locale\n\nMiklos Vajna (1):\n      log: \"--since-as-filter\" option is a non-terminating \"--since\" variant\n\nNeeraj Singh (12):\n      bulk-checkin: rename 'state' variable and separate 'plugged' boolean\n      bulk-checkin: rebrand plug/unplug APIs as 'odb transactions'\n      core.fsyncmethod: batched disk flushes for loose-objects\n      cache-tree: use ODB transaction around writing a tree\n      builtin/add: add ODB transaction around add_files_to_cache\n      update-index: use the bulk-checkin infrastructure\n      unpack-objects: use the bulk-checkin infrastructure\n      core.fsync: use batch mode and sync loose objects by default on Windows\n      test-lib-functions: add parsing helpers for ls-files and ls-tree\n      core.fsyncmethod: tests for batch mode\n      core.fsyncmethod: performance tests for batch mode\n      t/perf: add iteration setup mechanism to perf-lib\n\nOrgad Shaneh (2):\n      submodule--helper: fix initialization of warn_if_uninitialized\n      fetch: limit shared symref check only for local branches\n\nPhilip Oakley (4):\n      rebase.c: state preserve-merges has been removed\n      rebase: help users when dying with `preserve-merges`\n      rebase: note `preserve` merges may be a pull config option\n      rebase: translate a die(preserve-merges) message\n\nPhilippe Blain (8):\n      submodule.h: use a named enum for RECURSE_SUBMODULES_*\n      MyFirstContribution: add \"Anatomy of a Patch Series\" section\n      MyFirstContribution: add standalone section on cover letter\n      MyFirstContribution: reference \"The cover letter\" in \"Preparing Email\"\n      MyFirstContribution: reference \"The cover letter\" in GitGitGadget section\n      MyFirstContribution: drop PR description for GGG single-patch contributions\n      ci: update Cirrus-CI image to FreeBSD 12.3\n      range-diff: show submodule changes irrespective of diff.submodule\n\nPhillip Wood (1):\n      tests: make SANITIZE=address imply TEST_NO_MALLOC_CHECK\n\nRené Scharfe (9):\n      commit, sequencer: turn off break_opt for commit summary\n      t7812: test PCRE2 whitespace bug\n      tempfile: add mks_tempfile_dt()\n      diff: use mks_tempfile_dt()\n      Revert \"name-rev: release unused name strings\"\n      2.36 format-patch regression fix\n      2.36 fast-export regression fix\n      archive: improve documentation of --prefix\n      gc: simplify --cruft description\n\nSZEDER Gábor (3):\n      t0033-safe-directory: check the error message without matching the trash dir\n      t0033-safe-directory: check when 'safe.directory' is ignored\n      safe.directory: document and check that it's ignored in the environment\n\nSiddharth Asthana (1):\n      t1011: replace test -f with test_path_is_file\n\nSon Luong Ngoc (1):\n      fsmonitor: query watchman with right valid json\n\nTao Klerks (8):\n      untracked-cache: test untracked-cache-bypassing behavior with -uall\n      untracked-cache: support '--untracked-files=all' if configured\n      git-p4: support explicit sync of arbitrary existing git-p4 refs\n      git-p4: preserve utf8 BOM when importing from p4 to git\n      branch: new autosetupmerge option 'simple' for matching branches\n      push: default to single remote even when not named origin\n      push: new config option \"push.autoSetupRemote\" supports \"simple\" push\n      git-p4: improve encoding handling to support inconsistent encodings\n\nTaylor Blau (25):\n      builtin/receive-pack.c: remove redundant 'if'\n      t7703: demonstrate object corruption with pack.packSizeLimit\n      builtin/repack.c: ensure that `names` is sorted\n      Documentation/technical: add cruft-packs.txt\n      pack-bitmap.c: check preferred pack validity when opening MIDX bitmap\n      builtin/pack-objects.c: avoid redundant NULL check\n      builtin/pack-objects.c: ensure included `--stdin-packs` exist\n      builtin/pack-objects.c: ensure pack validity from MIDX bitmap objects\n      pack-mtimes: support reading .mtimes files\n      pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles'\n      chunk-format.h: extract oid_version()\n      pack-mtimes: support writing pack .mtimes files\n      t/helper: add 'pack-mtimes' test-tool\n      builtin/pack-objects.c: return from create_object_entry()\n      builtin/pack-objects.c: --cruft without expiration\n      reachable: add options to add_unseen_recent_objects_to_traversal\n      reachable: report precise timestamps from objects in cruft packs\n      builtin/pack-objects.c: --cruft with expiration\n      builtin/repack.c: support generating a cruft pack\n      builtin/repack.c: allow configuring cruft pack generation\n      builtin/repack.c: use named flags for existing_packs\n      builtin/repack.c: add cruft packs to MIDX during geometric repack\n      builtin/gc.c: conditionally avoid pruning objects via loose\n      sha1-file.c: don't freshen cruft packs\n      builtin/show-ref.c: avoid over-iterating with --heads, --tags\n\nVictoria Dye (8):\n      stash: expand sparse-checkout compatibility testing\n      stash: integrate with sparse index\n      sparse-index: expose 'is_sparse_index_allowed()'\n      read-cache: set sparsity when index is new\n      stash: apply stash using 'merge_ort_nonrecursive()'\n      unpack-trees: preserve index sparsity\n      repack: respect --keep-pack with geometric repack\n      ci(github): avoid printing test case preamble twice\n\nYuyi Wang (3):\n      cmake: fix CMakeLists.txt on Linux\n      cmake: add pcre2 support\n      cmake: remove (_)UNICODE def on Windows in CMakeLists.txt\n\nZheNing Hu (1):\n      read-cache.c: reduce unnecessary cache entry name copying\n\nhalilsen (2):\n      gitk: trivial indentation fix\n      gitk: include y coord in recorded sash position\n\nÆvar Arnfjörð Bjarmason (66):\n      run-command.h: remove always unused \"clean_on_exit_handler_cbdata\"\n      configure.ac: remove USE_PIC comment\n      xdiff/xmacros.h: remove unused XDL_PTRFREE\n      pack-bitmap-write: remove unused bitmap_reset() function\n      object-store.h: remove unused has_sha1_file*()\n      alloc.[ch]: remove alloc_report() function\n      t/helper/test-fast-rebase.c: don't leak \"struct strbuf\"\n      blame: use \"goto cleanup\" for cleanup_scoreboard()\n      string_list API users: use string_list_init_{no,}dup\n      format-patch: don't leak \"extra_headers\" or \"ref_message_ids\"\n      cocci: add and apply free_commit_list() rules\n      revision.[ch]: provide and start using a release_revisions()\n      revisions API users: add straightforward release_revisions()\n      revision.[ch]: document and move code declared around \"init\"\n      revisions API users: use release_revisions() needing REV_INFO_INIT\n      stash: always have the owner of \"stash_info\" free it\n      revisions API users: add \"goto cleanup\" for release_revisions()\n      revisions API users: use release_revisions() in http-push.c\n      revisions API users: use release_revisions() in builtin/log.c\n      revisions API users: use release_revisions() with UNLEAK()\n      revisions API users: use release_revisions() for \"prune_data\" users\n      revisions API: have release_revisions() release \"commits\"\n      revisions API: have release_revisions() release \"mailmap\"\n      revisions API: have release_revisions() release \"cmdline\"\n      revisions API: have release_revisions() release \"filter\"\n      revisions API: have release_revisions() release \"grep_filter\"\n      revisions API: have release_revisions() release \"prune_data\"\n      revisions API: clear \"boundary_commits\" in release_revisions()\n      revisions API: release \"reflog_info\" in release revisions()\n      revisions API: call diff_free(&revs->pruning) in revisions_release()\n      revisions API: have release_revisions() release \"date_mode\"\n      revisions API: have release_revisions() release \"topo_walk_info\"\n      revisions API: add a TODO for diff_free(&revs->diffopt)\n      CI: select CC based on CC_PACKAGE (again)\n      tests: using custom GIT_EXEC_PATH breaks --valgrind tests\n      log test: skip a failing mkstemp() test under valgrind\n      object-file: fix a unpack_loose_header() regression in 3b6a8db3b03\n      commit-graph.c: don't assume that stat() succeeds\n      ci: use https, not http to download binaries from perforce.com\n      connect.c: refactor sending of agent & object-format\n      dir API: add a generalized path_match_flags() function\n      fetch-pack: add a deref_without_lazy_fetch_extended()\n      fetch-pack: move --keep=* option filling to a function\n      bundle.h: make \"fd\" version of read_bundle_header() public\n      Makefile: have \"make pot\" not \"reset --hard\"\n      i18n CI: stop allowing non-ASCII source messages in po/git.pot\n      po/git.pot: don't check in result of \"make pot\"\n      Makefile: add \"po-init\" rule to initialize po/XX.po\n      l10n: Document the new l10n workflow\n      common-main.c: move non-trace2 exit() behavior out of trace2.c\n      usage.c: add a non-fatal bug() function to go with BUG()\n      parse-options.c: use new bug() API for optbug()\n      parse-options.c: use optbug() instead of BUG() \"opts\" check\n      receive-pack: use bug() and BUG_if_bug()\n      cache-tree.c: use bug() and BUG_if_bug()\n      run-command API: rename \"env_array\" to \"env\"\n      run-command API users: use \"env\" not \"env_array\" in comments & names\n      ls-tree: test for the regression in 9c4d58ff2c3\n      run-command: add an \"ungroup\" option to run_process_parallel()\n      remote.c: remove braces from one-statement \"for\"-loops\n      remote.c: don't dereference NULL in freeing loop\n      hook API: fix v2.36.0 regression: hooks should be connected to a TTY\n      add -i tests: mark \"TODO\" depending on GIT_TEST_ADD_I_USE_BUILTIN\n      fetch doc: note \"pushurl\" caveat about \"credentialsInUrl\", elaborate\n      transfer doc: move fetch.credentialsInUrl to \"transfer\" config namespace\n      tests: add LIBCURL prerequisite to tests needing libcurl\n\n"},{"id":"457889","messageId":"Yrii4Wj+c0YuQy61@zacax395.localdomain","threadId":"58052","inReplyTo":"xmqqedzg4hqj.fsf@gitster.g","subject":"Re: [ANNOUNCE] Git v2.37.0-rc2","fromName":"Fernando Ramos","fromEmail":"greenfoo@u92.eu","sentAt":"2022-06-26T18:18:09Z","receivedAt":"2022-06-26T18:18:20Z","isPatch":false,"sender":{"key":"greenfoo@u92.eu","avatar":"https://avatars.githubusercontent.com/u/42691086?v=4"},"body":"On 22/06/22 12:32PM, Junio C Hamano wrote:\n>  * \"vimdiff[123]\" mergetool drivers have been reimplemented with a\n>    more generic layout mechanism.\n\nHi. Maybe because this is my first contribution to git I was strangely excited\nand decided to create a small blog post describing how the new mechanism works.\n\nThere is no javascript nor tracking nor ads... just good old html/css/pngs\nexplaining how and when to use `mergetool.vimdiff.layout`:\n\n  https://u92.eu/blog/git-vimdiff/\n\nHope someone finds this useful :)\n\nPS: Please let me know if this type of message is not appropriate for this\nmailing list and I will never do it again... I just thought it might be good to\nexplain the new feature in a blog post to prevent it from going unnoticied\nconsidering how \"hidden\" the new configuration variable is. Thanks!\n"},{"id":"457891","messageId":"YrjJkuX6diZiF/SM@coredump.intra.peff.net","threadId":"58052","inReplyTo":"Yrii4Wj+c0YuQy61@zacax395.localdomain","subject":"Re: [ANNOUNCE] Git v2.37.0-rc2","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2022-06-26T21:03:14Z","receivedAt":"2022-06-26T21:03:22Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sun, Jun 26, 2022 at 08:18:09PM +0200, Fernando Ramos wrote:\n\n> On 22/06/22 12:32PM, Junio C Hamano wrote:\n> >  * \"vimdiff[123]\" mergetool drivers have been reimplemented with a\n> >    more generic layout mechanism.\n> \n> Hi. Maybe because this is my first contribution to git I was strangely excited\n> and decided to create a small blog post describing how the new mechanism works.\n> [...]\n> PS: Please let me know if this type of message is not appropriate for this\n> mailing list and I will never do it again... I just thought it might be good to\n> explain the new feature in a blog post to prevent it from going unnoticied\n> considering how \"hidden\" the new configuration variable is. Thanks!\n\nNo, this is very cool. Describing your changes to the greater world is\nvery welcome, and letting people here know about it is good.\n\nOne thing I would suggest, though: many folks on the list use the\npresence of their email in the \"to\" or \"cc\" of a message to help\nprioritize (i.e., to see responses directly to them which may need a\nresponse, versus general list chatter). You can imagine that Junio\nespecially gets a lot of emails. :) So for something like this that's\nmore of general interest than an email to a specific person, I'd usually\neither bump them down to \"cc\" rather than \"to\" (using the list address\nfor \"to\"), or even remove them entirely from the headers (and they may\nread it from the general list like everyone else).\n\nCongratulations on making your first contribution to Git!\n\n-Peff\n"},{"id":"457894","messageId":"YrlHjtyratGlxs/D@zacax395.localdomain","threadId":"58052","inReplyTo":"YrjJkuX6diZiF/SM@coredump.intra.peff.net","subject":"Re: [ANNOUNCE] Git v2.37.0-rc2","fromName":"Fernando Ramos","fromEmail":"greenfoo@u92.eu","sentAt":"2022-06-27T06:00:55Z","receivedAt":"2022-06-27T06:01:11Z","isPatch":false,"sender":{"key":"greenfoo@u92.eu","avatar":"https://avatars.githubusercontent.com/u/42691086?v=4"},"body":"On 22/06/26 05:03PM, Jeff King wrote:\n> One thing I would suggest, though: many folks on the list use the\n> presence of their email in the \"to\" or \"cc\" of a message to help\n> prioritize (i.e., to see responses directly to them which may need a\n> response, versus general list chatter).\n\nYou are completely right. I should have noticed this before sending the message\n(I also use to/cc for priorization and my message obviously did not require a\nreply from Junio). I'll pay more attention in the future. Thanks!\n"},{"id":"457898","messageId":"xmqqv8smqzg6.fsf@gitster.g","threadId":"58052","inReplyTo":"Yrii4Wj+c0YuQy61@zacax395.localdomain","subject":"Re: [ANNOUNCE] Git v2.37.0-rc2","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-06-27T08:32:09Z","receivedAt":"2022-06-27T08:32:21Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Fernando Ramos <greenfoo@u92.eu> writes:\n\n> On 22/06/22 12:32PM, Junio C Hamano wrote:\n>>  * \"vimdiff[123]\" mergetool drivers have been reimplemented with a\n>>    more generic layout mechanism.\n>\n> Hi. Maybe because this is my first contribution to git I was strangely excited\n> and decided to create a small blog post describing how the new mechanism works.\n>\n> There is no javascript nor tracking nor ads... just good old html/css/pngs\n> explaining how and when to use `mergetool.vimdiff.layout`:\n>\n>   https://u92.eu/blog/git-vimdiff/\n>\n> Hope someone finds this useful :)\n>\n> PS: Please let me know if this type of message is not appropriate for this\n> mailing list and I will never do it again... I just thought it might be good to\n> explain the new feature in a blog post to prevent it from going unnoticied\n> considering how \"hidden\" the new configuration variable is. Thanks!\n\nYou may want to also tell Git Rev News editors (Christian Cc'ed)\nabout the blog post page, I think they have a list of Git related\nreadings in each edition.\n\nThanks for an interesting feature.\n"}]}