{"thread":{"id":"63610","subject":"[ANNOUNCE] Git v2.50.0-rc2","startedAt":"2025-06-09T17:13:31Z","lastAt":"2025-06-10T15:01:24Z","messageCount":2,"participants":["Junio C Hamano","rsbecker@nexbridge.com"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"519984","messageId":"xmqqfrg8surr.fsf@gitster.g","threadId":"63610","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.50.0-rc2","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-06-09T17:13:28Z","receivedAt":"2025-06-09T17:13:31Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"A release candidate Git v2.50.0-rc2 is now available for testing at\nthe usual places.  It is comprised of 604 non-merge commits since\nv2.49.0, contributed by 85 people, 33 of which are new faces [*].\n\nThe tarballs are found at:\n\n    https://www.kernel.org/pub/software/scm/git/testing/\n\nThe following public repositories all have a copy of the\n'v2.50.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.49.0 are as follows.\nWelcome to the Git development community!\n\n  Abhijeetsingh Meena, Aditya Garg, Alexander Ogorodov, Alex\n  Mironov, Anthony Wang, Arnav Bhate, Brad Smith, Bruno De Fraine,\n  Christian Fredrik Johnsen, Christian Reich, Collin Funk,\n  Dmitry Goncharov, Jason Cho, Jensen Huang, Jitka Plesnikova,\n  kawarimidoll, K Jayatheerth, Lidong Yan, Mahendra Dani, Mark\n  Mentovai, Matt Hunter, Moumita Dhar, Nathan Royce, Niels\n  Glodny, Ondřej Pohořelský, Peter Seiderer, piotrsiupa,\n  R. Diez, Rodrigo Carvalho, SURA, Wonuk Kim, Zheng Yuting,\n  and தமிழ் நேரம்.\n\nReturning contributors who helped this release are as follows.\nThanks for your continued support.\n\n  Abhijeet Sonar, Adam Johnson, Ahelenia Ziemiańska, brian\n  m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, David\n  Mandelberg, D. Ben Knoble, Dennis Ameling, Derrick Stolee, Đoàn\n  Trần Công Danh, Elijah Newren, Eli Schwartz, Eric Sunshine,\n  Fernando Ramos, Han Jiang, Jacob Keller, Jean-Noël Avila,\n  Jeff King, Johannes Schindelin, Johannes Sixt, John Paul Adrian\n  Glaubitz, Josh Heinrichs, Junio C Hamano, Justin Tobler, Karthik\n  Nayak, Koji Nakamaru, Kristoffer Haugsbakk, Lucas Seiki Oshiro,\n  Luke Shumaker, Mark Levedahl, Meet Soni, Olaf Hering, Oswald\n  Buddenhagen, Patrick Steinhardt, Philippe Blain, Phillip Wood,\n  Ramsay Jones, Randall S. Becker, René Scharfe, Sam James, Scott\n  Chacon, Seyi Kuforiji, shejialuo, SZEDER Gábor, Taylor Blau,\n  Todd Zullinger, Toon Claes, Torsten Bögershausen, Tuomas Ahola,\n  Usman Akinyemi, and YOKOTA Hiroshi.\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.50 Release Notes (draft)\n===============================\n\nUI, Workflows & Features\n------------------------\n\n * A post-processing filter for \"diff --raw\" output has been\n   introduced.\n\n * \"git repack\" learned \"--combine-cruft-below-size\" option that\n   controls how cruft-packs are combined.\n\n * TCP keepalive behaviour on http transports can now be configured by\n   calling cURL library.\n\n * Incrementally updating multi-pack index files.\n\n * \"git reflog\" learns \"drop\" subcommand, that discards the entire\n   reflog data for a ref.\n\n * A new userdiff driver for \".ini\" format configuration files has\n   been added.\n\n * The job to coalesce loose objects into packfiles in \"git\n   maintenance\" now has configurable batch size.\n\n * \"git clone\" still gave the message about the default branch name;\n   this message has been turned into an advice message that can be\n   turned off.\n\n * \"git rev-list\" learns machine-parsable output format that delimits\n   each field with NUL.\n\n * \"git maintenance\" learns a new task to expire reflog entries.\n\n * Auth-related (and unrelated) error handling in send-email has been\n   made more robust.\n\n * Updating multiple references have only been possible in all-or-none\n   fashion with transactions, but it can be more efficient to batch\n   multiple updates even when some of them are allowed to fail in a\n   best-effort manner.  A new \"best effort batches of updates\" mode\n   has been introduced.\n\n * \"git help --build-options\" reports SHA-1 and SHA-256 backends used\n   in the build.\n\n * \"git cat-file --batch\" and friends learned to allow \"--filter=\" to\n   omit certain objects, just like the transport layer does.\n\n * \"git blame --porcelain\" mode now talks about unblamable lines and\n   lines that are blamed to an ignored commit.\n\n * The build procedure installs bash (but not zsh) completion script.\n\n * send-email has been updated to work better with Outlook's smtp server.\n\n * \"git diff --minimal\" used to give non-minimal output when its\n   optimization kicked in, which has been disabled.\n\n * \"git index-pack --fix-thin\" used to abort to prevent a cycle in\n   delta chains from forming in a corner case even when there is no\n   such cycle.\n\n * Make repository clean-up tasks \"gc\" can do available to \"git\n   maintenance\" front-end.\n\n * Bundle-URI feature did not use refs recorded in the bundle other\n   than normal branches as anchoring points to optimize the follow-up\n   fetch during \"git clone\"; now it is told to utilize all.\n\n * The `send-email` documentation has been updated with OAuth2.0\n   related examples.\n\n * Two of the \"scalar\" subcommands that add a repository that hasn't\n   been under \"scalar\"'s control are taught an option not to enable the\n   scheduled maintenance on it.\n\n * The userdiff pattern for shell scripts has been updated to cope\n   with more bash-isms.\n\n * \"git merge-tree\" learned an option to see if it resolves cleanly\n   without actually creating a result.\n\n * The commit title in the \"rebase -i\" todo file are now prefixed with\n   '#', just like a merge commit being replayed.\n\n * \"git receive-pack\" optionally learns not to care about connectivity\n   check, which can be useful when the repository arranges to ensure\n   connectivity by some other means.\n\n * \"git notes --help\" documentation updates.\n\n\nPerformance, Internal Implementation, Development Support etc.\n--------------------------------------------------------------\n\n * A handful of built-in command implementations have been rewritten\n   to use the repository instance supplied by git.c:run_builtin(), its\n   caller.\n\n * \"git fsck\" becomes more careful when checking the refs.\n\n * \"git fast-export | git fast-import\" learns to deal with commit and\n   tag objects with embedded signatures a bit better.  This is highly\n   experimental and the format of the data stream may change in the\n   future without compatibility guarantees.\n\n * The code paths to check whether a refname X is available (by seeing\n   if another ref X/Y exists, etc.) have been optimized.\n\n * First step of deprecating and removing merge-recursive.\n\n * In protocol v2 where the refs advertisement is constrained, we try\n   to tell the server side not to limit the advertisement when there\n   is no specific need to, which has been the source of confusion and\n   recent bugs.  Revamp the logic to simplify.\n\n * Update meson based build procedure for breaking changes support.\n\n * Enable -Wunreachable-code for developer builds.\n\n * Ensure what we write in assert() does not have side effects,\n   and introduce ASSERT() macro to mark those that cannot be\n   mechanically checked for lack of side effects.\n\n * Give more meaningful error return values from block writer layer of\n   the reftable ref-API backend.\n\n * Make the code in reftable library less reliant on the service\n   routines it used to borrow from Git proper, to make it easier to\n   use by external users of the library.\n\n * CI update.\n\n * The object layer has been updated to take an explicit repository\n   instance as a parameter in more code paths.\n\n * Some warnings from \"-Wsign-compare\" for builtin/rm.c have been\n   squelched.\n\n * A few traditional unit tests have been rewritten to use the clar\n   framework.\n\n * Some warnings from \"-Wsign-compare\" for pathspec.c have been\n   squelched.\n\n * \"make test\" used to have a hard dependency on (basic) Perl; tests\n   have been rewritten help environment with NO_PERL test the build as\n   much as possible.\n\n * Remove remnants of the recursive merge strategy backend, which was\n   superseded by the ort merge strategy.\n\n * Optimize the code to dedup references recorded in a bundle file.\n\n * Update parse-options API to catch mistakes to pass address of an\n   integral variable of a wrong type/size.\n\n * Since a call to repo_config() can be called with repo set to NULL\n   these days, a command that is marked as RUN_SETUP in the builtin\n   command table does not have to check repo with NULL before making\n   the call.\n\n * Overhaul of the reftable API.\n\n * Reduce requirement for Perl in our documentation build and a few\n   scripts.\n\n * The build procedure based on Meson learned to drive the\n   benchmarking tests.\n\n * Code clean-up for meson-based build infrastructure.\n\n * Add an equivalent to \"make hdr-check\" target to meson based builds.\n\n * Further code clean-up in the object-store layer.\n\n * Build performance fix.\n\n * Teach \"git send-email\" to also consult `hostname -f` for mail\n   domain to compute the identity given to SMTP servers.\n\n * The dependency on the_repository variable has been reduced from the\n   code paths in \"git replay\".\n\n * Support to create a loose object file with unknown object type has\n   been dropped.\n\n * The code path to access the \"packed-refs\" file while \"fsck\" is\n   taught to mmap the file, instead of reading the whole file in the\n   memory.\n\n * Assorted fixes for issues found with CodeQL.\n\n * Remove the leftover hints to the test framework to mark tests that\n   do not pass the leak checker tests, as they should no longer be\n   needed.\n\n * When a stale .midx file refers to .pack files that no longer exist,\n   we ended up checking for these non-existent files repeatedly, which\n   has been optimized by memoizing the non-existence.\n\n * Build settings have been improved for BSD based systems.\n\n * Newer version of libcURL detected curl_easy_setopt() calls we made\n   with platform-natural \"int\" when we should have used \"long\", which\n   all have been corrected.\n\n * Tests that compare $HOME and $(pwd), which should be the same\n   directory unless the tests chdir's around, would fail when the user\n   enters the test directory via symbolic links, which has been\n   corrected.\n\n\nFixes since v2.49\n-----------------\n\n * The refname exclusion logic in the packed-ref backend has been\n   broken for some time, which confused upload-pack to advertise\n   different set of refs.  This has been corrected.\n   (merge 10e8a9352b tb/refs-exclude-fixes later to maint).\n\n * The merge-recursive and merge-ort machinery crashed in corner cases\n   when certain renames are involved.\n   (merge 3adba40858 en/merge-process-renames-crash-fix later to maint).\n\n * Certain \"cruft\" objects would have never been refreshed when there\n   are multiple cruft packs in the repository, which has been\n   corrected.\n   (merge 08f612ba70 tb/multi-cruft-pack-refresh-fix later to maint).\n\n * The xdiff code on 32-bit platform misbehaved when an insanely large\n   context size is given, which has been corrected.\n   (merge d39e28e68c rs/xdiff-context-length-fix later to maint).\n\n * GitHub Actions CI switched on a CI/CD variable that does not exist\n   when choosing what packages to install etc., which has been\n   corrected.\n   (merge ee89f7c79d kn/ci-meson-check-build-docs-fix later to maint).\n\n * Using \"git name-rev --stdin\" as an example, improve the framework to\n   prepare tests to pretend to be in the future where the breaking\n   changes have already happened.\n   (merge de3dec1187 jc/name-rev-stdin later to maint).\n\n * An earlier code refactoring of the hash machinery missed a few\n   required calls to init_fn.\n   (merge d39f04b638 jh/hash-init-fixes later to maint).\n\n * A documentation page was left out from formatting and installation,\n   which has been corrected.\n   (merge ae85116f18 pw/build-breaking-changes-doc later to maint).\n\n * The bash command line completion script (in contrib/) has been\n   updated to cope with remote repository nicknames with slashes in\n   them.\n   (merge 778d2f1760 dm/completion-remote-names-fix later to maint).\n\n * \"Dubious ownership\" checks on Windows has been tightened up.\n   (merge 5bb88e89ef js/mingw-admins-are-special later to maint).\n\n * Layout configuration in vimdiff backend didn't work as advertised,\n   which has been corrected.\n   (merge 93bab2d04b fr/vimdiff-layout-fixes later to maint).\n\n * Fix our use of zlib corner cases.\n   (merge 1cb2f293f5 jk/zlib-inflate-fixes later to maint).\n\n * Fix lockfile contention in reftable code on Windows.\n   (merge 0a3dceabf1 ps/mingw-creat-excl-fix later to maint).\n\n * \"git-merge-file\" documentation source, which has lines that look\n   like conflict markers, lacked custom conflict marker size defined,\n   which has been corrected..\n   (merge d3b5832381 pw/custom-conflict-marker-size-for-merge-related-docs later to maint).\n\n * Squelch false-positive from sparse.\n   (merge da87b58014 dd/sparse-glibc-workaround later to maint).\n\n * Adjust to the deprecation of use of Ubuntu 20.04 GitHub Actions CI.\n   (merge 832d9f6d0b js/ci-github-update-ubuntu later to maint).\n\n * Work around CI breakage due to fedora base image getting updated.\n   (merge 8a471a663b js/ci-fedora-gawk later to maint).\n\n * A ref transaction corner case fix.\n   (merge b9fadeead7 jt/ref-transaction-abort-fix later to maint).\n\n * Random build fixes.\n   (merge 85e1d6819f ps/misc-build-fixes later to maint).\n\n * \"git fetch [<remote>]\" with only the configured fetch refspec\n   should be the only thing to update refs/remotes/<remote>/HEAD,\n   but the code was overly eager to do so in other cases.\n\n * Incorrect sorting of refs with bytes with high-bit set on platforms\n   with signed char led to a BUG, which has been corrected.\n\n * \"make perf\" fixes.\n   (merge 1665f12fa0 pb/perf-test-fixes later to maint).\n\n * Doc mark-up updates.\n   (merge 5a5565ec44 ja/doc-reset-mv-rm-markup-updates later to maint).\n\n * Work around false positive from CodeQL checker.\n   (merge 0f558141ed js/range-check-codeql-workaround later to maint).\n\n * \"git log --{left,right}-only A...B\", when A and B does not share\n   any common ancestor, now behaves as expected.\n   (merge e7ef4be7c2 mh/left-right-limited later to maint).\n\n * Document the convention to disable hooks altogether by setting the\n   hooksPath configuration variable to /dev/null.\n   (merge 1b2eee94f1 ds/doc-disable-hooks later to maint).\n\n * Make sure outage of third-party sites that supply P4, Git-LFS, and\n   JGit we use for testing would not prevent our CI jobs from running\n   at all.\n\n * Various build tweaks, including CSPRNG selection on some platforms.\n   (merge cdda67de03 rj/build-tweaks later to maint).\n\n * Developer support fix..\n   (merge 32b74b9809 js/git-perf-env-override later to maint).\n\n * Fix for scheduled maintenance tasks on platforms using launchctl.\n   (merge eb2d7beb0e jh/gc-launchctl-schedule-fix later to maint).\n\n * Update to arm64 Windows port.\n   (merge 436a42215e js/windows-arm64 later to maint).\n\n * hashmap API clean-up to ensure hashmap_clear() leaves a cleared map\n   in a reusable state.\n   (merge 9481877de3 en/hashmap-clear-fix later to maint).\n\n * \"git mv a a/b dst\" would ask to move the directory 'a' itself, as\n   well as its contents, in a single destination directory, which is\n   a contradicting request that is impossible to satisfy. This case is\n   now detected and the command errors out.\n   (merge 974f0d4664 ps/mv-contradiction-fix later to maint).\n\n * Further refinement on CI messages when an optional external\n   software is unavailable (e.g. due to third-party service outage).\n   (merge 956acbefbd jc/ci-skip-unavailable-external-software later to maint).\n\n * Test result aggregation did not work in Meson based CI jobs.\n   (merge bd38ed5be1 ps/ci-test-aggreg-fix-for-meson later to maint).\n\n * Code clean-up around stale CI elements and building with Visual Studio.\n   (merge a7b060f67f js/ci-buildsystems-cleanup later to maint).\n\n * \"git add 'f?o'\" did not add 'foo' if 'f?o', an unusual pathname,\n   also existed on the working tree, which has been corrected.\n   (merge ec727e189c kj/glob-path-with-special-char later to maint).\n\n * The fallback implementation of open_nofollow() depended on\n   open(\"symlink\", O_NOFOLLOW) to set errno to ELOOP, but a few BSD\n   derived systems use different errno, which has been worked around.\n   (merge f47bcc3413 cf/wrapper-bsd-eloop later to maint).\n\n * Use-after-free fix in the sequencer.\n   (merge 5dbaec628d pw/sequencer-reflog-use-after-free later to maint).\n\n * win+Meson CI pipeline, unlike other pipelines for Windows,\n   used to build artifacts in developer mode, which has been changed to\n   build them in release mode for consistency.\n   (merge 184abdcf05 js/ci-build-win-in-release-mode later to maint).\n\n * CI settings at GitLab has been updated to run MSVC based Meson job\n   automatically (as opposed to be done only upon manual request).\n   (merge 6389579b2f ps/ci-gitlab-enable-msvc-meson-job later to maint).\n\n * \"git apply\" and \"git add -i/-p\" code paths no longer unnecessarily\n   expand sparse-index while working.\n   (merge ecf9ba20e3 ds/sparse-apply-add-p later to maint).\n\n * Avoid adding directory path to a sparse-index tree entries to the\n   name-hash, since they would bloat the hashtable without anybody\n   querying for them.  This was done already for a single threaded\n   part of the code, but now the multi-threaded code also does the\n   same.\n   (merge 2e60aabc75 am/sparse-index-name-hash-fix later to maint).\n\n * Recent versions of Perl started warning against \"! A =~ /pattern/\"\n   which does not negate the result of the matching.  As it turns out\n   that the problematic function is not even called, it was removed.\n   (merge 67cae845d2 op/cvsserver-perl-warning later to maint).\n\n * \"git apply --index/--cached\" when applying a deletion patch in\n   reverse failed to give the mode bits of the path \"removed\" by the\n   patch to the file it creates, which has been corrected.\n\n * \"git verify-refs\" (and hence \"git fsck --reference\") started\n   erroring out in a repository in which secondary worktrees were\n   prepared with Git 2.43 or lower.\n   (merge d5b3c38b8a sj/ref-contents-check-fix later to maint).\n\n * Update total_ram() functrion on BSD variants.\n\n * Update online_cpus() functrion on BSD variants.\n\n * Other code cleanup, docfix, build fix, etc.\n   (merge 227c4f33a0 ja/doc-block-delimiter-markup-fix later to maint).\n   (merge 2bfd3b3685 ab/decorate-code-cleanup later to maint).\n   (merge 5337daddc7 am/dir-dedup-decl-of-repository later to maint).\n   (merge 554051d691 en/diff-rename-follow-fix later to maint).\n   (merge a18c18b470 en/random-cleanups later to maint).\n   (merge 5af21c9acb hj/doc-rev-list-ancestry-fix later to maint).\n   (merge 26d76ca284 aj/doc-restore-p-update later to maint).\n   (merge 2c0dcb9754 cc/lop-remote later to maint).\n   (merge 7b399322a2 ja/doc-branch-markup later to maint).\n   (merge ee434e1807 pw/doc-pack-refs-markup-fix later to maint).\n   (merge c000918eb7 tb/bitamp-typofix later to maint).\n   (merge fa8cd29676 js/imap-send-peer-cert-verify later to maint).\n   (merge 98b423bc1c rs/clear-commit-marks-simplify later to maint).\n   (merge 133d065dd6 ta/bulk-checkin-signed-compare-false-warning-fix later to maint).\n   (merge d2827dc31e es/meson-build-skip-coccinelle later to maint).\n   (merge ee8edb7156 dk/vimdiff-doc-fix later to maint).\n   (merge 107d889303 md/t1403-path-is-file later to maint).\n   (merge abd4192b07 js/comma-semicolon-confusion later to maint).\n   (merge 27b7264206 ab/environment-clean-header later to maint).\n   (merge ff4a749354 as/typofix-in-env-h-header later to maint).\n   (merge 86eef3541e az/tighten-string-array-constness later to maint).\n   (merge 25292c301d lo/remove-log-reencode-from-rev-info later to maint).\n   (merge 1aa50636fd jk/p5332-testfix later to maint).\n   (merge 42cf4ac552 ps/ci-resurrect-p4-on-github later to maint).\n   (merge 104add8368 js/diff-codeql-false-positive-workaround later to maint).\n   (merge f62977b93c en/get-tree-entry-doc later to maint).\n   (merge e5dd0a05ed ly/am-split-stgit-leakfix later to maint).\n   (merge bac220e154 rc/t1001-test-path-is-file later to maint).\n   (merge 91db6c735d ly/reftable-writer-leakfix later to maint).\n   (merge 20e4e9ad0b jc/doc-synopsis-option-markup later to maint).\n   (merge cddcee7f64 es/meson-configure-build-options-fix later to maint).\n   (merge cea9f55f00 wk/sparse-checkout-doc-fix later to maint).\n\n----------------------------------------------------------------\n\nChanges since v2.49.0 are as follows:\n\nAbhijeet Sonar (1):\n      environment: fix typo: 'setup_git_directory_gently'\n\nAbhijeetsingh Meena (1):\n      dir.h: remove duplicate forward declaration of struct repository\n\nAdam Johnson (1):\n      doc: restore: remove note on --patch w/ pathspecs\n\nAditya Garg (6):\n      send-email: retrieve Message-ID from outlook SMTP server\n      send-email: add --[no-]outlook-id-fix option\n      send-mail: improve checks for valid_fqdn\n      docs: improve send-email documentation\n      docs: add credential helper for outlook and gmail in OAuth list of helpers\n      send-email: try to get fqdn by running hostname -f on Linux and macOS\n\nAhelenia Ziemiańska (1):\n      global: mark usage strings and string tables const\n\nAlex Mironov (1):\n      name-hash: don't add sparse directories in threaded lazy init\n\nAlexander Ogorodov (1):\n      gitk: do not hard-code color of search results in commit list\n\nAnthony Wang (1):\n      t9811: be more precise to check importing of tags\n\nArnav Bhate (4):\n      decorate: fix sign comparison warnings\n      rm: fix sign comparison warnings\n      pathspec: fix sign comparison warnings\n      environment.h: remove unused variables\n\nBrad Smith (4):\n      thread-utils.c: detect online CPU count on OpenBSD / NetBSD\n      builtin/gc: correct physical memory detection for OpenBSD / NetBSD\n      config.mak.uname: update settings for OpenBSD\n      compat: fixes for header handling with OpenBSD / NetBSD\n\nCarlo Marcelo Arenas Belón (1):\n      reftable: make REFTABLE_UNUSED C99 compatible\n\nChristian Couder (5):\n      fast-export: fix missing whitespace after switch\n      t5710: arrange to delete the client before cloning\n      promisor-remote: fix segfault when remote URL is missing\n      promisor-remote: fix possible issue when no URL is advertised\n      promisor-remote: compare remote names case sensitively\n\nChristian Fredrik Johnsen (1):\n      refs: fix duplicated word in comment\n\nCollin Funk (2):\n      wrapper: NetBSD gives EFTYPE and FreeBSD gives EMFILE where POSIX uses ELOOP\n      completion: make sed command that generates config-list.h portable.\n\nD. Ben Knoble (1):\n      vimdiff: clarify the sigil used for marking the buffer to save\n\nDavid Mandelberg (2):\n      completion: add helper to count path components\n      completion: fix bugs with slashes in remote names\n\nDennis Ameling (2):\n      bswap.h: add support for built-in bswap functions\n      config.mak.uname: add support for clangarm64\n\nDerrick Stolee (15):\n      maintenance: force progress/no-quiet to children\n      maintenance: add loose-objects.batchSize config\n      docs: document core.hooksPath=/dev/null\n      test-tool: add pack-deltas helper\n      t5309: create failing test for 'git index-pack'\n      index-pack: allow revisiting REF_DELTA chains\n      scalar: customize register_dir()'s behavior\n      scalar register: add --no-maintenance option\n      scalar clone: add --no-maintenance option\n      scalar reconfigure: add --maintenance=<mode> option\n      scalar reconfigure: improve --maintenance docs\n      apply: integrate with the sparse index\n      git add: make -p/-i aware of sparse index\n      reset: integrate sparse index with --patch\n      p2000: add performance test for patch-mode commands\n\nDmitry Goncharov (1):\n      t6423: add a testcase causing a failed assertion in process_renames\n\nEli Schwartz (9):\n      meson: fix perl detection when docs are enabled, but perl bindings aren't\n      meson: disable coccinelle configuration when building from a tarball\n      meson: simplify and parameterize various standard function checks\n      meson: check for getpagesize before using it\n      meson: do a full usage-based compile check for sysinfo\n      meson: add a couple missing networking dependencies\n      meson: fix typo in function check that prevented checking for hstrerror\n      meson: only check for missing networking syms on non-Windows; add compat impls\n      meson: reformat default options to workaround bug in `meson configure`\n\nElijah Newren (29):\n      merge-ort: fix slightly overzealous assertion for rename-to-self\n      diffcore-rename: fix BUG when break detection and --follow used together\n      stash: remove merge-recursive.h include\n      t6423: fix a comment that accidentally reversed two commits\n      t7615: be more explicit about diff algorithm used\n      merge-ort: fix accidental strset<->strintmap\n      merge-ort: remove extraneous word in comment\n      merge-ort: add new merge_ort_generic() function\n      merge-ort: allow rename detection to be disabled\n      merge-ort: support having merge verbosity be set to 0\n      merge-ort: fix merge.directoryRenames=false\n      am: switch from merge_recursive_generic() to merge_ort_generic()\n      git-compat-util: introduce ASSERT() macro\n      ci: add build checking for side-effects in assert() calls\n      treewide: replace assert() with ASSERT() in special cases\n      checkout: replace merge_trees() with merge_ort_nonrecursive()\n      builtin/merge-recursive: switch to using merge_ort_generic()\n      merge-ort: enable diff-algorithms other than histogram\n      sequencer: switch non-recursive merges over to ort\n      merge, sequencer: switch recursive merges over to ort\n      merge-recursive.[ch]: thoroughly debug these\n      tests: remove GIT_TEST_MERGE_ALGORITHM and test_expect_merge_algorithm\n      builtin/{merge,rebase,revert}: remove GIT_TEST_MERGE_ALGORITHM\n      hashmap: ensure hashmaps are reusable after hashmap_clear()\n      tree-walk.h: fix incorrect API comment\n      replay: replace the_repository with repo parameter passed to cmd_replay ()\n      sequencer: make it clearer that commit descriptions are just comments\n      merge-ort: add a new mergeability_only option\n      merge-tree: add a new --quiet flag\n\nFernando Ramos (2):\n      mergetools: vimdiff: fix layout where REMOTE is the target\n      mergetools: vimdiff: add tests for layout with REMOTE as the target\n\nHan Jiang (1):\n      doc: add missing commit C to the graph for --ancestry-path=H D..M\n\nJean-Noël Avila (20):\n      doc: add a blank line around block delimiters\n      completion: take into account the formatting backticks for options\n      doc: apply new format to git-branch man page\n      doc: convert git-reset to new documentation format\n      doc: fix synopsis analysis logic\n      doc: convert git-rm to new documentation format\n      doc: move synopsis git-mv commands in the synopsis section\n      doc: convert git-mv to new documentation format\n      doc: fix asciidoctor synopsis processing of triple-dots\n      doc: add markup for characters in Guidelines\n      git-var doc: fix usage of $ENV_VAR vs ENV_VAR\n      doc: convert git-checkout manpage to new style\n      doc: convert git-merge manpage to new style\n      doc: convert merge options to new synopsis format\n      doc: merge-options.adoc remove a misleading double negation\n      doc: convert merge strategies to synopsis format\n      doc: switch merge config description to new synopsis format\n      doc: convert git-mergetool manpage to new synopsis style\n      doc: convert git-mergetool options to new synopsis style\n      doc: convert git-switch manpage to new synopsis style\n\nJeff King (44):\n      loose_object_info(): BUG() on inflating content with unknown type\n      unpack_loose_header(): simplify next_out assignment\n      unpack_loose_header(): report headers without NUL as \"bad\"\n      unpack_loose_header(): fix infinite loop on broken zlib input\n      git_inflate(): skip zlib_post_call() sanity check on Z_NEED_DICT\n      unpack_loose_header(): avoid numeric comparison of zlib status\n      unpack_loose_rest(): avoid numeric comparison of zlib status\n      unpack_loose_rest(): never clean up zstream\n      unpack_loose_rest(): simplify error handling\n      unpack_loose_rest(): rewrite return handling for clarity\n      t5702: fix typo in test name\n      t5516: prefer \"oid\" to \"sha1\" in some test titles\n      t5516: drop NEEDSWORK about v2 reachability behavior\n      t5516: beef up exact-oid ref prefixes test\n      refspec_ref_prefixes(): clean up refspec_item logic\n      fetch: ask server to advertise HEAD for config-less fetch\n      fetch: stop protecting additions to ref-prefix list\n      fetch: avoid ls-refs only to ask for HEAD symref update\n      fetch: use ref prefix list to skip ls-refs\n      run-command: use errno to check for sigfillset() error\n      config.mak.dev: enable -Wunreachable-code\n      fetch: only respect followRemoteHEAD with configured refspecs\n      fetch: don't ask for remote HEAD if followRemoteHEAD is \"never\"\n      fetch: make set_head() call easier to read\n      p5332: drop \"+\" from --stdin-packs input\n      oidmap: rename oidmap_free() to oidmap_clear()\n      oidmap: add size function\n      raw_object_store: drop extra pointer to replace_map\n      object-file.h: fix typo in variable declaration\n      cat-file: make --allow-unknown-type a noop\n      object-file: drop OBJECT_INFO_ALLOW_UNKNOWN_TYPE flag\n      cat-file: use type enum instead of buffer for -t option\n      oid_object_info_convert(): stop using string for object type\n      fsck: stop using object_info->type_name strbuf\n      oid_object_info(): drop type_name strbuf\n      t/helper: add zlib test-tool\n      t: add lib-loose.sh\n      hash-object: stop allowing unknown types\n      hash-object: merge HASH_* and INDEX_* flags\n      hash-object: handle --literally with OPT_NEGBIT\n      object-file: drop support for writing objects with unknown types\n      curl: fix integer constant typechecks with curl_easy_setopt()\n      curl: fix integer variable typechecks with curl_easy_setopt()\n      curl: fix symbolic constant typechecks with curl_easy_setopt()\n\nJensen Huang (1):\n      index-pack, unpack-objects: restore missing ->init_fn\n\nJohannes Schindelin (40):\n      t3650: document bug when directory renames are turned off\n      mingw: special-case administrators even more\n      test-tool path-utils: support debugging \"dubious ownership\" issues\n      imap-send: explicitly verify the peer certificate\n      remote-curl: avoid using the comma operator unnecessarily\n      rebase: avoid using the comma operator unnecessarily\n      kwset: avoid using the comma operator unnecessarily\n      clar: avoid using the comma operator unnecessarily\n      xdiff: avoid using the comma operator unnecessarily\n      diff-delta: avoid using the comma operator\n      wildmatch: avoid using of the comma operator\n      compat/regex: explicitly mark intentional use of the comma operator\n      clang: warn when the comma operator is used\n      detect-compiler: detect clang even if it found CUDA\n      read-cache: check range before dereferencing an array element\n      ci: upgrade `sparse` to supported build agents\n      ci(pedantic): ensure that awk is installed\n      perf: do allow `GIT_PERF_*` to be overridden again\n      mingw: do not use nedmalloc on Windows/ARM64\n      msvc: do handle builds on Windows/ARM64\n      mingw(arm64): do move the `/etc/git*` location\n      max_tree_depth: lower it for clangarm64 on Windows\n      diff: check range before dereferencing an array element\n      ci(win+Meson): build in Release mode\n      ci: stop linking the `prove` cache\n      contrib/buildsystems: drop support for building . vcproj/.vcxproj files\n      config.mak.uname: drop the `vcxproj` target\n      commit: simplify code\n      fetch: carefully clear local variable's address after use\n      commit-graph: avoid malloc'ing a local variable\n      upload-pack: rename `enum` to reflect the operation\n      has_dir_name(): make code more obvious\n      fetch: avoid unnecessary work when there is no current branch\n      Avoid redundant conditions\n      trace2: avoid \"futile conditional\"\n      commit-graph: avoid using stale stack addresses\n      bundle-uri: avoid using undefined output of `sscanf()`\n      sequencer: stop pretending that an assignment is a condition\n      t5410: avoid hangs in CI runs in the win+Meson test jobs\n      curl: pass `long` values where expected\n\nJohannes Sixt (5):\n      git-gui: po/README: update repository location and maintainer\n      gitk: adjust indentation to match the style used in this script\n      git-gui: treat the message template file as a built file\n      gitk: place file name arguments after options in msgfmt call\n      git-gui: don't delete source files when auto_mkindex fails\n\nJosh Heinrichs (1):\n      maintenance: fix launchctl calendar intervals\n\nJunio C Hamano (41):\n      t: document test_lazy_prereq\n      t: extend test_lazy_prereq\n      t: introduce WITH_BREAKING_CHANGES prerequisite\n      t6120: avoid hiding \"git\" exit status\n      t6120: further modernize\n      name-rev: remove \"--stdin\" support\n      git-compat-util: add NOT_CONSTANT macro and use it in atfork_prepare()\n      Start 2.50 cycle (batch #1)\n      The second batch\n      The third batch\n      The fourth batch\n      The fifth batch\n      The sixth batch\n      The seventh batch\n      t9811: fix misconversion of tests\n      The eighth batch\n      ci: skip unavailable external software\n      CI updates\n      The ninth batch\n      ci: update the message for unavailble third-party software\n      ci: download JGit from maven, not eclipse.org\n      The tenth batch\n      The eleventh batch\n      t6011: fix misconversion from perl to sed\n      The twelfth batch\n      git-daemon doc: update mark-up of synopsis option descriptions\n      git-{var,write-tree} docs: update mark-up of synopsis option descriptions\n      git-verify-* doc: update mark-up of synopsis option descriptions\n      The thirteenth batch\n      The fourteenth batch\n      The fifteenth batch\n      The sixteenth batch\n      The seventeenth batch\n      The eighteenth batch\n      Git 2.50-rc0\n      fast-export: --signed-commits is experimental\n      A bit more topics for -rc1\n      A bit more before -rc1\n      Git 2.50-rc1\n      A bit more before -rc2\n      Git 2.50-rc2\n\nJustin Tobler (17):\n      diff: return diff_filepair from diff queue helpers\n      diff: add option to skip resolving diff statuses\n      builtin: introduce diff-pairs command\n      builtin/diff-pairs: allow explicit diff queue flush\n      rev-list: inline `show_object_with_name()` in `show_object()`\n      rev-list: refactor early option parsing\n      rev-list: support delimiting objects with NUL bytes\n      rev-list: support NUL-delimited --boundary option\n      rev-list: support NUL-delimited --missing option\n      builtin/fetch: avoid aborting closed reference transaction\n      remote: allow `guess_remote_head()` to suppress advice\n      builtin/clone: suppress unexpected default branch advice\n      advice: allow disabling default branch name advice\n      help: include SHA implementation in version info\n      help: include unsafe SHA-1 build info in version\n      t5410: test receive-pack connectivity check\n      builtin/receive-pack: add option to skip connectivity check\n\nK Jayatheerth (4):\n      dir.c: literal match with wildcard in pathspec should still glob\n      docs: remove unused mentoring mailing list reference\n      docs: clarify cmd_psuh signature and explain UNUSED macro\n      docs: replace git_config to repo_config\n\nKarthik Nayak (21):\n      reflog: improve error for when reflog is not found\n      reflog: implement subcommand to drop reflogs\n      ci/github: add missing 'CI_JOB_IMAGE' env variable\n      blame: print unblamable and ignored commits in porcelain mode\n      refs/files: remove redundant check in split_symref_update()\n      refs: move duplicate refname update check to generic layer\n      refs/files: remove duplicate duplicates check\n      refs/reftable: extract code from the transaction preparation\n      refs: introduce enum-based transaction error types\n      refs: implement batch reference update support\n      refs: support rejection in batch updates during F/D checks\n      update-ref: add --batch-updates flag for stdin mode\n      t6020: test for duplicate refnames in bundle creation\n      bundle: fix non-linear performance scaling with refs\n      ci/github: install git before checking out the repository\n      coccinelle: meson: rename variables to be more specific\n      meson: move headers definition from 'contrib/coccinelle'\n      meson: rename 'third_party_sources' to 'third_party_excludes'\n      meson: add support for 'hdr-check'\n      makefile/meson: add 'check-headers' as alias for 'hdr-check'\n      t: remove unexpected SANITIZE_LEAK variables\n\nKristoffer Haugsbakk (12):\n      doc: reflog: fix `drop` subheading\n      doc: branch: fix inline-verbatim\n      doc: stripspace: mention where the default comes from\n      doc: config: mention core.commentChar on commit.cleanup\n      doc: notes: split out options with negated forms\n      doc: notes: rework --[no-]stripspace\n      doc: notes: remove stripspace discussion from other options\n      doc: notes: clearly state that --stripspace is the default\n      doc: notes: point out copy --stdin use with argv\n      doc: notes: treat --stdin equally between copy/remove\n      doc: notes: use stuck form throughout\n      doc: column: fix blank lines around block delimiters\n\nLidong Yan (7):\n      reftable/writer: fix memory leak when `padded_write()` fails\n      reftable/writer: fix memory leak when `writer_index_hash()` fails\n      builtin/am: fix memory leak in `split_mail_stgit_series`\n      pack-bitmap: fix memory leak if `load_bitmap_entries_v1` failed\n      mailinfo: fix pointential memory leak if `decode_header` failed\n      sequencer: fix memory leak if `todo_list_rearrange_squash()` failed\n      commit-graph: fix memory leak when `fill_oids_from_packs()` fails\n\nLucas Seiki Oshiro (4):\n      userdiff: add builtin driver for INI files\n      revision: remove log_reencode field from rev_info\n      json-writer: add docstrings to jw_* functions\n      json-writer: describe the usage of jw_* functions\n\nLuke Shumaker (5):\n      git-fast-import.adoc: add missing LF in the BNF\n      fast-export: rename --signed-tags='warn' to 'warn-verbatim'\n      git-fast-export.adoc: clarify why 'verbatim' may not be a good idea\n      fast-export: do not modify memory from get_commit_buffer\n      fast-export, fast-import: add support for signed-commits\n\nMahendra Dani (1):\n      t1403: verify that path exists and is a file\n\nMark Levedahl (3):\n      gitk: override $PATH search only on Windows\n      gitk: _search_exe is no longer needed\n      gitk: limit PATH search to bare executable names\n\nMark Mentovai (3):\n      t4129: test that git apply warns for unexpected mode changes\n      apply: set file mode when --reverse creates a deleted file\n      t: run tests from a normalized working directory\n\nMatt Hunter (1):\n      revision: fix --left/right-only use with unrelated histories\n\nMeet Soni (3):\n      reftable: propagate specific error codes in block_writer_add()\n      reftable: adapt writer_add_record() to propagate block_writer_add() errors\n      reftable: adapt write_object_record() to propagate block_writer_add() errors\n\nMoumita Dhar (1):\n      userdiff: extend Bash pattern to cover more shell function forms\n\nNiels Glodny (1):\n      xdiff: disable cleanup_records heuristic with --minimal\n\nOndřej Pohořelský (1):\n      cvsserver: remove unused escapeRefName function\n\nOswald Buddenhagen (1):\n      git-gui: heed core.commentChar/commentString\n\nPatrick Steinhardt (172):\n      reftable/stack: stop using `read_in_full()`\n      reftable/stack: stop using `write_in_full()`\n      reftable/blocksource: stop using `xmmap()`\n      reftable/record: stop using `COPY_ARRAY()`\n      reftable/record: stop using `BUG()` in `reftable_record_init()`\n      reftable/record: don't `BUG()` in `reftable_record_cmp()`\n      reftable: stop using `BUG()` in trivial cases\n      reftable/basics: stop using `st_mult()` in array allocators\n      reftable/basics: provide wrappers for big endian conversion\n      reftable/reader: stop using `ARRAY_SIZE()` macro\n      reftable/system: introduce `reftable_rand()`\n      reftable/stack: stop using `sleep_millisec()`\n      reftable/basics: stop using `SWAP()` macro\n      reftable/basics: introduce `REFTABLE_UNUSED` annotation\n      compat/mingw: split out POSIX-related bits\n      git-compat-util.h: split out POSIX-emulating bits\n      reftable: decouple from Git codebase by pulling in \"compat/posix.h\"\n      Makefile: skip reftable library for Coccinelle\n      reftable: ignore file-in-use errors when unlink(3p) fails on Windows\n      csum-file: stop depending on `the_repository`\n      object: stop depending on `the_repository`\n      pack-write: stop depending on `the_repository` and `the_hash_algo`\n      environment: move access to \"core.bigFileThreshold\" into repo settings\n      pack-check: stop depending on `the_repository`\n      pack-revindex: stop depending on `the_repository`\n      pack-bitmap-write: stop depending on `the_repository`\n      object-file-convert: stop depending on `the_repository`\n      delta-islands: stop depending on `the_repository`\n      object-file: split out logic regarding hash algorithms\n      hash: fix \"-Wsign-compare\" warnings\n      hash: stop depending on `the_repository` in `null_oid()`\n      meson: define WITH_BREAKING_CHANGES when enabling breaking changes\n      meson: don't compile git-pack-redundant(1) with breaking changes\n      meson: don't install git-pack-redundant(1) docs with breaking changes\n      ci: perform build and smoke tests for Meson docs\n      object-name: introduce `repo_get_oid_with_flags()`\n      object-name: allow skipping ambiguity checks in `get_oid()` family\n      builtin/update-ref: skip ambiguity checks when parsing object IDs\n      refs: introduce function to batch refname availability checks\n      refs/reftable: batch refname availability checks\n      refs/files: batch refname availability checks for normal transactions\n      refs/files: batch refname availability checks for initial transactions\n      refs: stop re-verifying common prefixes for availability\n      refs/iterator: separate lifecycle from iteration\n      refs/iterator: provide infrastructure to re-seek iterators\n      refs/iterator: implement seeking for merged iterators\n      refs/iterator: implement seeking for reftable iterators\n      refs/iterator: implement seeking for ref-cache iterators\n      refs/iterator: implement seeking for packed-ref iterators\n      refs/iterator: implement seeking for files iterators\n      refs: reuse iterators when determining refname availability\n      meson: fix compat sources when compiling with MSVC\n      compat/mingw: fix EACCESS when opening files with `O_CREAT | O_EXCL`\n      meson: fix handling of '-Dcurl=auto'\n      gitweb: fix generation of \"gitweb.js\"\n      meson: respect 'tests' build option in contrib\n      meson: distinguish build and target host binaries\n      ci: use Visual Studio for win+meson job on GitHub Workflows\n      builtin/cat-file: rename variable that tracks usage\n      builtin/cat-file: introduce function to report object status\n      builtin/cat-file: wire up an option to filter objects\n      builtin/cat-file: support \"blob:none\" objects filter\n      builtin/cat-file: support \"blob:limit=\" objects filter\n      builtin/cat-file: support \"object:type=\" objects filter\n      pack-bitmap: allow passing payloads to `show_reachable_fn()`\n      pack-bitmap: add function to iterate over filtered bitmapped objects\n      pack-bitmap: introduce function to check whether a pack is bitmapped\n      builtin/cat-file: deduplicate logic to iterate over all objects\n      builtin/cat-file: use bitmaps to efficiently filter by object type\n      t: skip chain lint when PERL_PATH is unset\n      t: refactor environment sanitization to not use Perl\n      t: adapt character translation helpers to not use Perl\n      t: adapt `test_copy_bytes()` to not use Perl\n      t: adapt `test_readlink()` to not use Perl\n      t: introduce PERL_TEST_HELPERS prerequisite\n      t: adapt existing PERL prerequisites\n      meson: stop requiring Perl when tests are enabled\n      Makefile: stop requiring Perl when running tests\n      t: refactor tests depending on Perl transliteration operator\n      t: refactor tests depending on Perl substitution operator\n      t: refactor tests depending on Perl to print data\n      t: refactor tests depending on Perl for textconv scripts\n      t/lib-gpg: refactor `sanitize_pgp()` to not depend on Perl\n      t/lib-t6000: refactor `name_from_description()` to not depend on Perl\n      t/lib-httpd: refactor \"one-time-perl\" CGI script to not depend on Perl\n      t0021: refactor `generate_random_characters()` to not depend on Perl\n      t0210: refactor trace2 scrubbing to not use Perl\n      t5316: refactor `max_chain()` to not depend on Perl\n      t5703: refactor test to not depend on Perl\n      reftable: fix formatting of the license header\n      reftable/reader: rename data structure to \"table\"\n      reftable/blocksource: consolidate code into a single file\n      reftable/block: simplify how we track restart points\n      reftable/table: move reading block into block reader\n      reftable/block: rename `block` to `block_data`\n      reftable/block: rename `block_reader` to `reftable_block`\n      git-zlib: use `struct z_stream_s` instead of typedef\n      reftable/block: create public interface for reading blocks\n      reftable/block: store block pointer in the block iterator\n      reftable/block: make block iterators reseekable\n      reftable/block: expose a generic iterator over reftable records\n      reftable/table: add `reftable_table` to the public interface\n      reftable/table: introduce iterator for table blocks\n      reftable/constants: make block types part of the public interface\n      reftable/table: move printing logic into test helper\n      reflog: rename `cmd_reflog_expire_cb` to `reflog_expire_options`\n      builtin/reflog: stop storing default reflog expiry dates globally\n      builtin/reflog: stop storing per-reflog expiry dates globally\n      builtin/reflog: make functions regarding `reflog_expire_options` public\n      builtin/gc: split out function to expire reflog entries\n      builtin/maintenance: introduce \"reflog-expire\" task\n      refs/packed: fix BUG when seeking refs with UTF-8 characters\n      object-file: move `mkdir_in_gitdir()` into \"path.c\"\n      object-file: move `safe_create_leading_directories()` into \"path.c\"\n      object-file: move `git_open_cloexec()` to \"compat/open.c\"\n      object-file: move `xmmap()` into \"wrapper.c\"\n      object-file: split out functions relating to object store subsystem\n      object-file: split up concerns of `HASH_*` flags\n      object-file: drop `index_blob_stream()`\n      object: split out functions relating to object store subsystem\n      object-store: remove global array of cached objects\n      object-store: merge \"object-store-ll.h\" and \"object-store.h\"\n      filter-branch: stop depending on Perl\n      request-pull: stop depending on Perl\n      Documentation: stop depending on Perl to massage user manual\n      Documentation: stop depending on Perl to generate command list\n      parse: fix off-by-one for minimum signed values\n      global: use designated initializers for options\n      parse-options: support unit factors in `OPT_INTEGER()`\n      parse-options: rename `OPT_MAGNITUDE()` to `OPT_UNSIGNED()`\n      parse-options: introduce precision handling for `OPTION_INTEGER`\n      parse-options: introduce precision handling for `OPTION_UNSIGNED`\n      parse-options: detect mismatches in integer signedness\n      ci: fix p4d executable not being found on GitHub Actions\n      contrib/completion: install Bash completion\n      meson: report detected runtime executable paths\n      meson: prefer shell at \"/bin/sh\"\n      t/perf: fix benchmarks with alternate repo formats\n      t/perf: use configured PERL_PATH\n      t/perf: fix benchmarks with out-of-tree builds\n      meson: wire up benchmarks\n      meson: wire up benchmarking options\n      object-store: move `struct packed_git` into \"packfile.h\"\n      object-store: drop `loose_object_path()`\n      object-store: move and rename `odb_pack_keep()`\n      object-store: move function declarations to their respective subsystems\n      object-store: allow fetching objects via `has_object()`\n      treewide: convert users of `repo_has_object_file()` to `has_object()`\n      object-store: drop `repo_has_object_file()`\n      builtin/mv: bail out when trying to move child and its parent\n      builtin/mv: convert assert(3p) into `BUG()`\n      ci: fix aggregation of test results with Meson\n      builtin/gc: fix indentation of `cmd_gc()` parameters\n      builtin/gc: remove global variables where it is trivial to do\n      builtin/gc: move pruning of worktrees into a separate function\n      builtin/maintenance: introduce \"worktree-prune\" task\n      builtin/gc: move rerere garbage collection into separate function\n      builtin/maintenance: introduce \"rerere-gc\" task\n      reftable: fix perf regression when reading blocks of unwanted type\n      git-gui: replace GIT-GUI-VARS with GIT-GUI-BUILD-OPTIONS\n      git-gui: prepare GIT-VERSION-GEN for out-of-tree builds\n      git-gui: make output of GIT-VERSION-GEN source'able\n      git-gui: drop no-op GITGUI_SCRIPT replacement\n      git-gui: extract script to generate \"git-gui\"\n      git-gui: extract script to generate \"tclIndex\"\n      git-gui: extract script to generate macOS wrapper\n      git-gui: extract script to generate macOS app\n      git-gui: stop including GIT-VERSION-FILE file\n      git-gui: wire up support for the Meson build system\n      gitlab-ci: always run MSVC-based Meson job\n      packfile: explain ordering of how we look up auxiliary pack files\n      midx: stop repeatedly looking up nonexistent packfiles\n\nPhilippe Blain (3):\n      p7821: fix test_perf invocation for prereqs\n      p9210: fix 'scalar clone' when running from a detached HEAD\n      p7821: fix instructions for testing with threads\n\nPhillip Wood (9):\n      pack-refs doc: fix indentation for --exclude\n      docs: add BreakingChanges to TECH_DOCS target\n      merge-file doc: set conflict-marker-size attribute\n      sequencer: move reflog message functions\n      sequencer: rework reflog message handling\n      midx repack: avoid integer overflow on 32 bit systems\n      midx repack: avoid potential integer overflow on 64 bit systems\n      midx: avoid negative array index\n      midx docs: clarify tie breaking\n\nRamsay Jones (18):\n      meson.build: remove -DCURL_DISABLE_TYPECHECK\n      Makefile: only set some BASIC_CFLAGS when RUNTIME_PREFIX is set\n      meson.build: only set build variables for non-default values\n      meson.build: set default help format to html on windows\n      Makefile: remove NEEDS_LIBRT build variable\n      config.mak.uname: add a note about NO_STRLCPY for Linux\n      config.mak.uname: only set NO_REGEX on cygwin for v1.7\n      config.mak.uname: add HAVE_GETDELIM to the cygwin section\n      config.mak.uname: add clock_gettime() to the cygwin build\n      builtin/gc.c: correct RAM calculation when using sysinfo\n      config.mak.uname: add sysinfo() configuration for cygwin\n      config.mak.uname: add arc4random to the cygwin build\n      config.mak.uname: set CSPRNG_METHOD to getrandom on Linux\n      meson.build: quote the GITWEBDIR build configuration\n      meson: correct install location of YAML.pm\n      meson: correct path to system config/attribute files\n      meson.build: correct setting of GIT_EXEC_PATH\n      configure.ac: upgrade to a compilation check for sysinfo\n\nRené Scharfe (2):\n      xdiff: avoid arithmetic overflow in xdl_get_hunk()\n      commit: move clear_commit_marks_many() loop body to clear_commit_marks()\n\nRodrigo Carvalho (1):\n      t1001: replace 'test -f' with 'test_path_is_file'\n\nScott Chacon (2):\n      bundle-uri: copy all bundle references ino the refs/bundle space\n      bundle-uri: add test for bundle-uri clones with tags\n\nSeyi Kuforiji (2):\n      t/unit-tests: convert trailer test to use clar\n      t/unit-tests: convert urlmatch-normalization test to clar\n\nTaylor Blau (31):\n      refs.c: remove empty '--exclude' patterns\n      refs.c: stop matching non-directory prefixes in exclude patterns\n      builtin/pack-objects.c: freshen objects from existing cruft packs\n      http.c: remove unnecessary casts to long\n      http.c: introduce `set_long_from_env()` for convenience\n      http.c: inline `set_curl_keepalive()`\n      http.c: allow custom TCP keepalive behavior via config\n      refspec: treat 'fetch' as a Boolean value\n      refspec: replace `refspec_init()` with fetch/push variants\n      refspec: remove refspec_item_init_or_die()\n      refspec: replace `refspec_item_init()` with fetch/push variants\n      pseudo-merge.h: fix a typo\n      t/t5329-pack-objects-cruft.sh: evict 'repack'-related tests\n      t/t7704-repack-cruft.sh: clarify wording in --max-cruft-size tests\n      t/t7704-repack-cruft.sh: consolidate `write_blob()`\n      repack: avoid combining cruft packs with `--max-cruft-size`\n      repack: begin combining cruft packs with `--combine-cruft-below-size`\n      Documentation: remove a \"future work\" item from the MIDX docs\n      Documentation: describe incremental MIDX bitmaps\n      pack-revindex: prepare for incremental MIDX bitmaps\n      pack-bitmap.c: open and store incremental bitmap layers\n      pack-bitmap.c: teach `bitmap_for_commit()` about incremental MIDXs\n      pack-bitmap.c: teach `show_objects_for_type()` about incremental MIDXs\n      pack-bitmap.c: support bitmap pack-reuse with incremental MIDXs\n      pack-bitmap.c: teach `rev-list --test-bitmap` about incremental MIDXs\n      pack-bitmap.c: compute disk-usage with incremental MIDXs\n      pack-bitmap.c: apply pseudo-merge commits with incremental MIDXs\n      ewah: implement `struct ewah_or_iterator`\n      pack-bitmap.c: keep track of each layer's type bitmaps\n      pack-bitmap.c: use `ewah_or_iterator` for type bitmap iterators\n      midx: implement writing incremental MIDX bitmaps\n\nTorsten Bögershausen (1):\n      intialize false_but_the_compiler_does_not_know_it_\n\nTuomas Ahola (1):\n      bulk-checkin: fix sign compare warnings\n\nUsman Akinyemi (11):\n      config: teach repo_config to allow `repo` to be NULL\n      builtin/verify-tag: stop using `the_repository`\n      builtin/verify-commit: stop using `the_repository`\n      builtin/send-pack: stop using `the_repository`\n      builtin/pack-refs: stop using `the_repository`\n      builtin/ls-files: stop using `the_repository`\n      builtin/for-each-ref: stop using `the_repository`\n      builtin/checkout-index: stop using `the_repository`\n      builtin/update-server-info: remove unnecessary if statement\n      builtin/add: remove unnecessary if statement\n      builtin/difftool: remove unnecessary if statement\n\nWonuk Kim (1):\n      doc: sparse-checkout: use consistent inline list style\n\nYOKOTA Hiroshi (1):\n      gitk: Legacy widgets doesn't have combobox\n\nZheng Yuting (2):\n      send-email: capture errors in an eval {} block\n      send-email: finer-grained SMTP error handling\n\nbrian m. carlson (2):\n      t5605: fix test for cloning from a different user\n      Makefile: avoid constant rebuilds with compilation database\n\nshejialuo (13):\n      t0602: use subshell to ensure working directory unchanged\n      builtin/refs: get worktrees without reading head information\n      packed-backend: check whether the \"packed-refs\" is regular file\n      packed-backend: check if header starts with \"# pack-refs with: \"\n      packed-backend: add \"packed-refs\" header consistency check\n      packed-backend: check whether the refname contains NUL characters\n      packed-backend: add \"packed-refs\" entry consistency check\n      packed-backend: check whether the \"packed-refs\" is sorted\n      builtin/fsck: add `git refs verify` child process\n      packed-backend: fsck should warn when \"packed-refs\" file is empty\n      packed-backend: extract snapshot allocation in `load_contents`\n      packed-backend: mmap large \"packed-refs\" file during fsck\n      fsck: ignore missing \"refs\" directory for linked worktrees\n\nĐoàn Trần Công Danh (2):\n      sparse: ignore warning from new glibc headers\n      meson: allow customize perl installation path\n\nதமிழ் நேரம் (1):\n      gitk: add Tamil translation\n\n"},{"id":"520043","messageId":"008801dbda18$828e5d80$87ab1880$@nexbridge.com","threadId":"63610","inReplyTo":"xmqqfrg8surr.fsf@gitster.g","subject":"RE: [ANNOUNCE] Git v2.50.0-rc2","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2025-06-10T15:01:08Z","receivedAt":"2025-06-10T15:01:24Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On June 9, 2025 1:13 PM, Junio C Hamano wrote:\n>A release candidate Git v2.50.0-rc2 is now available for testing at\n>the usual places.  It is comprised of 604 non-merge commits since\n>v2.49.0, contributed by 85 people, 33 of which are new faces [*].\n>\n>The tarballs are found at:\n>\n>    https://www.kernel.org/pub/software/scm/git/testing/\n>\n>The following public repositories all have a copy of the\n>'v2.50.0-rc2' tag and the 'master' branch that the tag points at:\n\nRC2 passed on NonStop without TCL. Thanks to everyone who helped.\n--Randall\n\n"}]}