aboutsummaryrefslogtreecommitdiff
path: root/Documentation/RelNotes
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/RelNotes')
-rw-r--r--Documentation/RelNotes/2.53.0.adoc336
-rw-r--r--Documentation/RelNotes/2.54.0.adoc565
2 files changed, 901 insertions, 0 deletions
diff --git a/Documentation/RelNotes/2.53.0.adoc b/Documentation/RelNotes/2.53.0.adoc
new file mode 100644
index 0000000000..2668c2e996
--- /dev/null
+++ b/Documentation/RelNotes/2.53.0.adoc
@@ -0,0 +1,336 @@
+Git v2.53 Release Notes
+=======================
+
+UI, Workflows & Features
+------------------------
+
+ * "git maintenance" command learned "is-needed" subcommand to tell if
+ it is necessary to perform various maintenance tasks.
+
+ * "git replay" (experimental) learned to perform ref updates itself
+ in a transaction by default, instead of emitting where each refs
+ should point at and leaving the actual update to another command.
+
+ * "git blame" learns "--diff-algorithm=<algo>" option.
+
+ * "git repo info" learned "--all" option.
+
+ * Both "git apply" and "git diff" learn a new whitespace error class,
+ "incomplete-line".
+
+ * Add a new manual that describes the data model.
+
+ * "git fast-import" learns "--signed-commits=strip-if-invalid" option
+ to drop invalid cryptographic signature from objects.
+
+ * The use of "revision" (a connected set of commits) has been
+ clarified in the "git replay" documentation.
+
+ * A help message from "git branch" now mentions "git help" instead of
+ "man" when suggesting to read some documentation.
+
+ * "git repo struct" learned to take "-z" as a synonym to "--format=nul".
+
+ * More object database related information are shown in "git repo
+ structure" output.
+
+ * Improve the error message when a bad argument is given to the
+ `--onto` option of "git replay". Test coverage of "git replay" has
+ been improved.
+
+ * The iconv library on macOS fails to correctly handle stateful
+ ISO/IEC 2022:1994 encoded strings. Work it around instead of
+ replacing it wholesale from homebrew.
+
+ * Upstream symbolic link support on Windows from Git-for-Windows.
+
+
+Performance, Internal Implementation, Development Support etc.
+--------------------------------------------------------------
+
+ * The list of packfiles used in a running Git process is moved from
+ the packed_git structure into the packfile store.
+
+ * Some ref backend storage can hold not just the object name of an
+ annotated tag, but the object name of the object the tag points at.
+ The code to handle this information has been streamlined.
+
+ * As "git diff --quiet" only cares about the existence of any
+ changes, disable rename/copy detection to skip more expensive
+ processing whose result will be discarded anyway.
+
+ * A part of code paths that deals with loose objects has been cleaned
+ up.
+
+ * "make strip" has been taught to strip "scalar" as well as "git".
+
+ * Dockerized jobs at the GitHub Actions CI have been taught to show
+ more details of failed tests.
+
+ * Code refactoring around object database sources.
+
+ * Halve the memory consumed by artificial filepairs created during
+ "git diff --find-copies-harder", also making the operation run
+ faster.
+
+ * The "git_istream" abstraction has been revamped to make it easier
+ to interface with pluggable object database design.
+
+ * Rewrite the only use of "mktemp()" that is subject to TOCTOU race
+ and Stop using the insecure "mktemp()" function.
+ (merge 10bba537c4 rs/ban-mktemp later to maint).
+
+ * In-code comment update to clarify that single-letter options are
+ outside of the scope of command line completion script.
+ (merge dc8a00fafe jc/completion-no-single-letter-options later to maint).
+
+ * MEMZERO_ARRAY() helper is introduced to avoid clearing only the
+ first N bytes of an N-element array whose elements are larger than
+ a byte.
+
+ * "git diff-files -R --find-copies-harder" has been taught to use
+ the potential copy sources from the index correctly.
+
+ * Require C99 style flexible array member support from all platforms.
+
+ * The code path that enumerates promisor objects have been optimized
+ to skip pointlessly parsing blob objects.
+
+ * Prepare test suite for Git for Windows that supports symbolic
+ links.
+
+ * Import newer version of "clar", unit testing framework.
+ (merge 84071a6dea ps/clar-integers later to maint).
+
+ * The packfile_store data structure is moved from object store to odb
+ source.
+
+ * The object-info API has been cleaned up.
+
+ * Further preparation to upstream symbolic link support on Windows.
+
+ * Remove implicit reliance on the_repository global in the APIs
+ around tree objects and make it explicit which repository to work
+ in.
+
+ * "git bugreport" and "git version --build-options" learned to
+ include use of 'gettext' feature, to make it easier to diagnose
+ problems around l10n.
+
+ * Dscho observed that SVN tests are taking too much time in CI leak
+ checking tasks, but most time is spent not in our code but in libsvn
+ code (which happen to be written in Perl), whose leaks have little
+ value to discover for us. Skip SVN, P4, and CVS tests in the leak
+ checking tasks.
+ (merge 047bd7dfe3 js/ci-leak-skip-svn later to maint).
+
+
+Fixes since v2.52
+-----------------
+
+ * Ever since we added whitespace rules for this project, we misspelt
+ an entry, which has been corrected.
+ (merge 358e94dc70 jc/gitattributes-whitespace-no-indent-fix later to maint).
+
+ * The code to expand attribute macros has been rewritten to avoid
+ recursion to avoid running out of stack space in an uncontrolled
+ way.
+ (merge 42ed046866 jk/attr-macroexpand-wo-recursion later to maint).
+
+ * Adding a repository that uses a different hash function is a no-no,
+ but "git submodule add" did not prevent it, which has been corrected.
+ (merge 6fe288bfbc bc/submodule-force-same-hash later to maint).
+
+ * An earlier check added to osx keychain credential helper to avoid
+ storing the credential itself supplied was overeager and rejected
+ credential material supplied by other helper backends that it would
+ have wanted to store, which has been corrected.
+ (merge 4580bcd235 kn/osxkeychain-idempotent-store-fix later to maint).
+
+ * The "git repo structure" subcommand tried to align its output but
+ mixed up byte count and display column width, which has been
+ corrected.
+ (merge 7a03a10a3a jx/repo-struct-utf8width-fix later to maint).
+
+ * Yet another corner case fix around renames in the "ort" merge
+ strategy.
+ (merge a562d90a35 en/ort-rename-another-fix later to maint).
+
+ * Test leakfix.
+ (merge 14b561e768 jk/test-mktemp-leakfix later to maint).
+
+ * Update a version of action used at the GitHub Actions CI.
+ (merge cd99203f86 js/ci-github-setup-go-update later to maint).
+
+ * The "return errno = EFOO, -1" construct, which is heavily used in
+ compat/mingw.c and triggers warnings under "-Wcomma", has been
+ rewritten to avoid the warnings.
+ (merge af3919816f js/mingw-assign-comma-fix later to maint).
+
+ * Makefile based build have recently been updated to build a
+ libgit.a that also has reftable and xdiff objects; CMake based
+ build procedure has been updated to match.
+ (merge b0d5c88cca js/cmake-libgit-fix later to maint).
+
+ * Under-allocation fix.
+ (merge d22a488482 js/wincred-get-credential-alloc-fix later to maint).
+
+ * "git worktree list" attempts to show paths to worktrees while
+ aligning them, but miscounted display columns for the paths when
+ non-ASCII characters were involved, which has been corrected.
+ (merge 08dfa59835 pw/worktree-list-display-width-fix later to maint).
+
+ * "Windows+meson" job at the GitHub Actions CI was hard to debug, as
+ it did not show and save failed test artifacts, which has been
+ corrected.
+ (merge 17bd1108ea jk/ci-windows-meson-test-fix later to maint).
+
+ * Emulation code clean-up.
+ (merge 2367c6bcd6 gf/win32-pthread-cond-wait-err later to maint).
+
+ * Various issues detected by Asan have been corrected.
+ (merge a031b6181a jk/asan-bonanza later to maint).
+
+ * "git config get --path" segfaulted on an ":(optional)path" that
+ does not exist, which has been corrected.
+ (merge 0bd16856ff jc/optional-path later to maint).
+
+ * The "--committer-date-is-author-date" option of "git am/rebase" is
+ a misguided one. The documentation is updated to discourage its
+ use.
+ (merge fbf3d0669f kh/doc-committer-date-is-author-date later to maint).
+
+ * The option help text given by "git config unset -h" described
+ the "--all" option to "replace", not "unset", multiple variables,
+ which has been corrected.
+ (merge 18bf67b753 rs/config-unset-opthelp-fix later to maint).
+
+ * The error message given by "git config set", when the variable
+ being updated has more than one values defined, used old style "git
+ config" syntax with an incorrect option in its hint, both of which
+ have been corrected.
+ (merge df963f0df4 rs/config-set-multi-error-message-fix later to maint).
+
+ * "git replay" forgot to omit the "gpgsig-sha256" extended header
+ from the resulting commit the same way it omits "gpgsig", which has
+ been corrected.
+ (merge 9f3a115087 pw/replay-exclude-gpgsig-fix later to maint).
+
+ * A few tests have been updated to work under the shell compatible
+ mode of zsh.
+ (merge a92f243a94 bc/zsh-testsuite later to maint).
+
+ * The way patience diff finds LCS has been optimized.
+ (merge c7e3b8085b yc/xdiff-patience-optim later to maint).
+
+ * Recent optimization to "last-modified" command introduced use of
+ uninitialized block of memory, which has been corrected.
+ (merge fe4e60759b tc/last-modified-active-paths-optimization later to maint).
+
+ * "git last-modified" used to mishandle "--" to mark the beginning of
+ pathspec, which has been corrected.
+ (merge 05491b90ce js/last-modified-with-sparse-checkouts later to maint).
+
+ * Emulation code clean-up.
+ (merge 42aa7603aa gf/win32-pthread-cond-init later to maint).
+
+ * "git submodule add" to add a submodule under <name> segfaulted,
+ when a submodule.<name>.something is already in .gitmodules file
+ without defining where its submodule.<name>.path is, which has been
+ corrected.
+ (merge dd8e8c786e jc/submodule-add later to maint).
+
+ * "git fetch" that involves fetching tags, when a tag being fetched
+ needs to overwrite existing one, failed to fetch other tags, which
+ has been corrected.
+ (merge b7b17ec8a6 kn/fix-fetch-backfill-tag-with-batched-ref-updates later to maint).
+
+ * Document "rev-list --filter-provided-objects" better.
+ (merge 6d8dc99478 jt/doc-rev-list-filter-provided-objects later to maint).
+
+ * Even when there is no changes in the packfile and no need to
+ recompute bitmaps, "git repack" recomputed and updated the MIDX
+ file, which has been corrected.
+ (merge 6ce9d558ce ps/repack-avoid-noop-midx-rewrite later to maint).
+
+ * Update HTTP tests to adjust for changes in curl 8.18.0
+ (merge 17f4b01da7 jk/test-curl-updates later to maint).
+
+ * Workaround the "iconv" shipped as part of macOS, which is broken
+ handling stateful ISO/IEC 2022 encoded strings.
+ (merge cee341e9dd rs/macos-iconv-workaround later to maint).
+
+ * Running "git diff" with "--name-only" and other options that allows
+ us not to look at the blob contents, while objects that are lazily
+ fetched from a promisor remote, caused use-after-free, which has
+ been corrected.
+
+ * The ort merge machinery hit an assertion failure in a history with
+ criss-cross merges renamed a directory and a non-directory, which
+ has been corrected.
+ (merge 979ee83e8a en/ort-recursive-d-f-conflict-fix later to maint).
+
+ * Diagnose invalid bundle-URI that lack the URI entry, instead of
+ crashing.
+ (merge 7796c14a1a sb/bundle-uri-without-uri later to maint).
+
+ * Mailmap update for Karsten
+ (merge e97678c4ef js/mailmap-karsten-blees later to maint).
+
+ * Perf-test fixes.
+ (merge 79d301c767 jk/t-perf-fixes later to maint).
+
+ * Fix for a performance regression in "git cat-file".
+ (merge 9e8b448dd8 jk/cat-file-avoid-bitmap-when-unneeded later to maint).
+
+ * Update a FAQ entry on synching two separate repositories using the
+ "git stash export/import" recently introduced.
+ (merge 02fc44a989 bc/doc-stash-import-export later to maint).
+
+ * "git fsck" used inconsistent set of refs to show a confused
+ warning, which has been corrected.
+
+ * Some error messages from the http transport layer lacked the
+ terminating newline, which has been corrected.
+ (merge a8227ae8d5 kt/http-backend-errors later to maint).
+
+ * "git repack --geometric" did not work with promisor packs, which
+ has been corrected.
+
+ * The logic that avoids reusing MIDX files with a wrong checksum was
+ broken, which has been corrected.
+
+ * Other code cleanup, docfix, build fix, etc.
+ (merge 46207a54cc qj/doc-http-bad-want-response later to maint).
+ (merge df90eccd93 kh/doc-commit-extra-references later to maint).
+ (merge f18aa68861 rs/xmkstemp-simplify later to maint).
+ (merge fddba8f737 ja/doc-synopsis-style later to maint).
+ (merge 22ce0cb639 en/xdiff-cleanup-2 later to maint).
+ (merge 8ef7355a8f je/doc-pull later to maint).
+ (merge 48176f953f jc/capability-leak later to maint).
+ (merge 8cbbdc92f7 kh/doc-pre-commit-fix later to maint).
+ (merge d4bc39a4d9 mh/doc-config-gui-gcwarning later to maint).
+ (merge 41d425008a kh/doc-send-email-paragraph-fix later to maint).
+ (merge d4b732899e jc/macports-darwinports later to maint).
+ (merge bab391761d kj/pull-options-decl-cleanup later to maint).
+ (merge 007b8994d4 rs/t4014-git-version-string-fix later to maint).
+ (merge 4ce170c522 ds/doc-scalar-config later to maint).
+ (merge a0c813951a jc/doc-commit-signoff-config later to maint).
+ (merge 8ee262985a ja/doc-misc-fixes later to maint).
+ (merge 1722c2244b mh/doc-core-attributesfile later to maint).
+ (merge c469ca26c5 dk/ci-rust-fix later to maint).
+ (merge 12f0be0857 gf/clear-path-cache-cleanup later to maint).
+ (merge 949df6ed6b js/test-func-comment-fix later to maint).
+ (merge 93f894c001 bc/checkout-error-message-fix later to maint).
+ (merge abf05d856f rs/show-branch-prio-queue later to maint).
+ (merge 06188ea5f3 rs/parse-config-expiry-simplify later to maint).
+ (merge 861dbb1586 dd/t5403-modernise later to maint).
+ (merge acffc5e9e5 ja/doc-synopsis-style-more later to maint).
+ (merge 6c5c7e7071 ac/t1420-use-more-direct-check later to maint).
+ (merge 2ac93bfcbc ds/builtin-doc-update later to maint).
+ (merge 3f051fc9c9 kh/doc-patch-id later to maint).
+ (merge 555c8464e5 je/doc-reset later to maint).
+ (merge 220f888d7e ps/t1410-cleanup later to maint).
+ (merge 5814b04c02 ps/config-doc-get-urlmatch-fix later to maint).
+ (merge 5ae594f30b sb/doc-update-ref-markup-fix later to maint).
+ (merge bc8556d066 ty/t1005-test-path-is-helpers later to maint).
diff --git a/Documentation/RelNotes/2.54.0.adoc b/Documentation/RelNotes/2.54.0.adoc
new file mode 100644
index 0000000000..27dbfdc6a5
--- /dev/null
+++ b/Documentation/RelNotes/2.54.0.adoc
@@ -0,0 +1,565 @@
+Git v2.54 Release Notes
+=======================
+
+UI, Workflows & Features
+------------------------
+
+ * "git add -p" and friends note what the current status of the hunk
+ being shown is.
+
+ * "git history" history rewriting (experimental) command has been
+ added.
+
+ * "git replay" is taught to drop commits that become empty (not the
+ ones that are empty in the original).
+
+ * The help text and the documentation for the "--expire" option of
+ "git worktree [list|prune]" have been improved.
+
+ * When "git show-index" is run outside a repository, it silently
+ defaults to SHA-1; the tool now warns when this happens.
+
+ * "git merge-file" can be run outside a repository, but it ignored
+ all configuration, even the per-user ones. The command now uses
+ available configuration files to find its customization.
+
+ * "auto filter" logic for large-object promisor remote.
+
+ * "git rev-list" and friends learn "--maximal-only" to show only the
+ commits that are not reachable by other commits.
+
+ * Command line completion (in contrib/) update for
+ "stash import/export".
+
+ * "git repo info" learns "--keys" action to list known keys.
+
+ * Extend the alias configuration syntax to allow aliases using
+ characters outside ASCII alphanumeric (plus '-').
+
+ * A signature on a commit that was GPG signed long time ago ought to
+ be still valid after the key that was used to sign it has expired,
+ but we showed them in alarming red.
+
+ * "git subtree split --prefix=P <commit>" now checks the prefix P
+ against the tree of the (potentially quite different from the
+ current working tree) given commit.
+
+ * "git add -p" learned a new mode that allows the user to revisit a
+ file that was already dealt with.
+
+ * Allow the directory in which reference backends store their data to
+ be specified.
+
+ * "gitweb" has been taught to be mobile friendly.
+
+ * "git apply --directory=./un/../normalized/path" now normalizes the
+ given path before using it.
+
+ * "git maintenance" starts using the "geometric" strategy by default.
+
+ * "git config list" is taught to show the values interpreted for
+ specific type with "--type=<X>" option.
+
+ * "git add <submodule>" has been taught to honor
+ submodule.<name>.ignore that is set to "all" (and requires "git add
+ -f" to override it).
+
+ * Hook commands are now allowed to be defined (possibly centrally)
+ in the configuration files, and run multiple of them for the same
+ hook event.
+
+ * The way end-users can add their own "git <cmd>" subcommand by
+ storing "git-<cmd>" in a directory on their $PATH has not been
+ documented clearly, which has been corrected.
+
+ * "git send-email" learns to pass hostname/port to Authen::SASL
+ module.
+
+ * "git send-email" learns to support use of client-side certificates.
+
+ * "git send-email" has learned to be a bit more careful when it
+ accepts charset to use from the end-user, to avoid 'y' (mistaken
+ 'yes' when expecting a charset like 'UTF-8') and other nonsense.
+
+ * "git status" learned to show comparison between the current branch
+ and various other branches listed on status.compareBranches
+ configuration.
+
+ * "git repo structure" command learns to report maximum values on
+ various aspects of objects it inspects.
+
+ * "git rebase" learns "--trailer" command to drive the
+ interpret-trailers machinery.
+
+ * "git fast-import" learned to optionally replace signature on
+ commits whose signatures get invalidated due to replaying by
+ signing afresh.
+
+ * "git history" learned the "split" subcommand.
+
+ * The reference-transaction hook was taught to be triggered before
+ taking locks on references in the "preparing" phase.
+
+ * "git apply" now reports the name of the input file along with the
+ line number when it encounters a corrupt patch, and correctly
+ resets the line counter when processing multiple patch files.
+
+ * The HTTP transport learned to react to "429 Too Many Requests".
+
+ * "git repo info -h" and "git repo structure -h" limit their help output
+ to the part that is specific to the subcommand.
+
+ * "git format-patch --cover-letter" learns to use a simpler format
+ instead of the traditional shortlog format to list its commits with
+ a new --commit-list-format option and format.commitListFormat
+ configuration variable.
+
+ * `git backfill` learned to accept revision and pathspec arguments.
+
+ * "git replay" (experimental) learns, in addition to "pick" and
+ "replay", a new operating mode "revert".
+
+ * git replay now supports replaying down to the root commit.
+
+ * Handling of signed commits and tags in fast-import has been made more
+ configurable.
+
+
+Performance, Internal Implementation, Development Support etc.
+--------------------------------------------------------------
+
+ * Avoid local submodule repository directory paths overlapping with
+ each other by encoding submodule names before using them as path
+ components.
+
+ * The string_list API gains a new helper, string_list_sort_u(), and
+ new unit tests to extend coverage.
+
+ * Improve set-up time of a perf test.
+
+ * ISO C23 redefines strchr and friends that traditionally took
+ a const pointer and returned a non-const pointer derived from it to
+ preserve constness (i.e., if you ask for a substring in a const
+ string, you get a const pointer to the substring). Update code
+ paths that used non-const pointer to receive their results that did
+ not have to be non-const to adjust.
+
+ * Rename three functions around the commit_list data structure.
+
+ * Transaction to create objects (or not) is currently tied to the
+ repository, but in the future a repository can have multiple object
+ sources, which may have different transaction mechanisms. Make the
+ odb transaction API per object source.
+
+ * "git merge-ours" is taught to work better in a sparse checkout.
+
+ * Allow recording process ID of the process that holds the lock next
+ to a lockfile for diagnosis.
+
+ * Reduce dependency on the_repository of xdiff-interface layer.
+
+ * Code clean-up to use the commit_stack API.
+
+ * "git diff --anchored=<text>" has been optimized.
+
+ * A CodingGuidelines update.
+
+ * Add process ancestry data to trace2 on macOS to match what we
+ already do on Linux and Windows. Also adjust the way Windows
+ implementation reports this information to match the other two.
+
+ * A handful of places used refs_for_each_ref_in() API incorrectly,
+ which has been corrected.
+
+ * Some tests assumed "iconv" is available without honoring ICONV
+ prerequisite, which has been corrected.
+
+ * Revamp object enumeration API around odb.
+
+ * Additional tests were introduced to see the interaction with netrc
+ auth with auth failure on the http transport.
+
+ * A couple of bugs in use of flag bits around odb API has been
+ corrected, and the flag bits reordered.
+
+ * Plumb gitk/git-gui build and install procedure in meson based
+ builds.
+
+ * The code to accept shallow "git push" has been optimized.
+
+ * Simplify build procedure for oxskeychain (in contrib/).
+
+ * Fix dependency screw-up in meson-based builds.
+
+ * Wean the mailmap code off of the_repository dependency.
+
+ * API clean-up for the worktree subsystem.
+
+ * The last uses of the_repository in "tree-diff.c" have been
+ eradicated.
+
+ * Clean-up the code around "git repo info" command.
+
+ * Mark the merge-ort codebase to prevent more uses of the_repository
+ from getting added.
+
+ * The core.attributesfile is intended to be set per repository, but
+ were kept track of by a single global variable in-core, which has
+ been corrected by moving it to per-repository data structure.
+
+ * Use the hook API to replace ad-hoc invocation of hook scripts via
+ the run_command() API.
+
+ * Code refactoring around refs-for-each-* API functions.
+
+ * The parse-options API learned to notice an options[] array with
+ duplicated long options.
+ (merge 237e520d81 rs/parse-options-duplicated-long-options later to maint).
+
+ * The code to maintain mapping between object names in multiple hash
+ functions is being added, written in Rust.
+
+ * A bit of OIDmap API enhancement and cleanup.
+
+ * Move gitlab CI from macOS 14 images that are being deprecated.
+
+ * The object source API is getting restructured to allow plugging new
+ backends.
+
+ * Reduce dependence on the global the_hash_algo and the_repository
+ variables of wt-status code path.
+
+ * The way combined list-object filter options are parsed has been
+ revamped.
+
+ * Editorconfig filename patterns were specified incorrectly, making
+ many source files inside subdirectories unaffected, which has been
+ corrected.
+
+ * The run_command() API lost its implicit dependency on the singleton
+ `the_repository` instance.
+
+ * The unit test helper function was taught to use backslash +
+ mnemonic notation for certain control characters like "\t", instead
+ of octal notation like "\011".
+
+ * Adjust test-lint to allow "sed -E" to use ERE in the patterns.
+
+ * Clar (unit testing framework) update from the upstream.
+
+ * Reduce system overhead "git upload-pack" spends on relaying "git
+ pack-objects" output to the "git fetch" running on the other end of
+ the connection.
+
+ * Add a coccinelle rule to break the build when "struct strbuf" gets
+ passed by value.
+
+ * Further work on incremental repacking using MIDX/bitmap
+
+ * The logic to count objects has been cleaned up.
+
+ * Tweak the build infrastructure by moving tools around.
+
+ * Uses of prio_queue as a LIFO stack of commits have been written
+ with commit_stack.
+
+ * The cleanup of remaining bitmaps in "ahead_behind()" has been
+ simplified.
+
+ * split-index.c has been updated to not use the global the_repository
+ and the_hash_algo variables.
+
+ * The unsigned integer that is used as an bitset to specify the kind
+ of branches interpret_branch_name() function has been changed to
+ use a dedicated enum type.
+
+ * Various updates to contrib/diff-highlight, including documentation
+ updates, test improvements, and color configuration handling.
+
+ * Code paths that loop over another array to push each element into a
+ strvec have been rewritten to use strvec_pushv() instead.
+
+ * In case homebrew breaks REG_ENHANCED again, leave a in-code comment
+ to suggest use of our replacement regex as a workaround.
+
+ * MinGW build updates.
+
+ * The way dash 0.5.13 handles non-ASCII contents in here-doc
+ is buggy and breaks our existing tests, which unfortunately
+ have been rewritten to avoid triggering the bug.
+
+ * Object name handling (disambiguation and abbreviation) has been
+ refactored to be backend-generic, moving logic into the respective
+ object database backends.
+
+ * pack-objects's --stdin-packs=follow mode learns to handle
+ excluded-but-open packs.
+
+ * A few code paths that spawned child processes for network
+ connection weren't wait(2)ing for their children and letting "init"
+ reap them instead; they have been tightened.
+
+ * Adjust the codebase for C23 that changes functions like strchr()
+ that discarded constness when they return a pointer into a const
+ string to preserve constness.
+
+ * A handful of inappropriate uses of the_repository have been
+ rewritten to use the right repository structure instance in the
+ read-cache.c codepath.
+
+ * Internals of "git fsck" have been refactored to not depend on the
+ global `the_repository` variable.
+
+ * Reduce dependency on `the_repository` in add-patch.c file.
+
+ * The way the "git log -L<range>:<file>" feature is bolted onto the
+ log/diff machinery is being reworked a bit to make the feature
+ compatible with more diff options, like -S/G.
+
+
+Fixes since v2.53
+-----------------
+
+ * HTTP transport failed to authenticate in some code paths, which has
+ been corrected.
+ (merge ed0f7a62f7 ap/http-probe-rpc-use-auth later to maint).
+
+ * The computation of column width made by "git diff --stat" was
+ confused when pathnames contain non-ASCII characters.
+ (merge 04f5d95ef7 lp/diff-stat-utf8-display-width-fix later to maint).
+
+ * The "-z" and "--max-depth" documentation (and implementation of
+ "-z") in the "git last-modified" command have been updated.
+ (merge 9dcc09bed1 tc/last-modified-options-cleanup later to maint).
+
+ * A handful of code paths that started using batched ref update API
+ (after Git 2.51 or so) lost detailed error output, which have been
+ corrected.
+ (merge eff9299eac kn/ref-batch-output-error-reporting-fix later to maint).
+
+ * "git blame --ignore-revs=... --color-lines" did not account for
+ ignored revisions passing blame to the same commit an adjacent line
+ gets blamed for.
+ (merge d519082d4e rs/blame-ignore-colors-fix later to maint).
+
+ * Coccinelle rules update.
+ (merge 60614838a4 tc/memzero-array later to maint).
+
+ * Giving "git last-modified" a tree (not a commit-ish) died an
+ uncontrolled death, which has been corrected.
+ (merge 525ef52301 tc/last-modified-not-a-tree later to maint).
+
+ * Test contrib/ things in CI to catch breakages before they enter the
+ "next" branch.
+ (merge c591c3ceff jc/ci-test-contrib-too later to maint).
+
+ * A handful of documentation pages have been modernized to use the
+ "synopsis" style.
+ (merge a34d1d53a6 ja/doc-synopsis-style-even-more later to maint).
+
+ * Small clean-up of xdiff library to remove unnecessary data
+ duplication.
+ (merge 5086213bd2 pw/xdiff-cleanups later to maint).
+
+ * Update sample commit-msg hook to complain when a log message has
+ material mailinfo considers the end of log message in the middle.
+ (merge 83804c361b pw/commit-msg-sample-hook later to maint).
+
+ * "git pack-objects --stdin-packs" with "--exclude-promisor-objects"
+ fetched objects that are promised, which was not wanted. This has
+ been fixed.
+ (merge f4eff7116d ps/pack-concat-wo-backfill later to maint).
+
+ * "git switch <name>", in an attempt to create a local branch <name>
+ after a remote tracking branch of the same name gave an advise
+ message to disambiguate using "git checkout", which has been
+ updated to use "git switch".
+ (merge 12fee11f21 jc/checkout-switch-restore later to maint).
+
+ * It does not make much sense to apply the "incomplete-line"
+ whitespace rule to symbolic links, whose contents almost always
+ lack the final newline. "git apply" and "git diff" are now taught
+ to exclude them for a change to symbolic links.
+ (merge 6a41481c6d jc/whitespace-incomplete-line later to maint).
+
+ * "git format-patch --from=<me>" did not honor the command line
+ option when writing out the cover letter, which has been corrected.
+
+ * Update build precedure for mergetool documentation in meson-based builds.
+ (merge 58e4eeeeb5 pw/meson-doc-mergetool later to maint).
+
+ * An earlier attempt to optimize "git subtree" discarded too much
+ relevant histories, which has been corrected.
+
+ * A prefetch call can be triggered to access a stale diff_queue entry
+ after diffcore-break breaks a filepair into two and freed the
+ original entry that is no longer used, leading to a segfault, which
+ has been corrected.
+ (merge 2d88ab078d hy/diff-lazy-fetch-with-break-fix later to maint).
+
+ * "git fetch --deepen" that tries to go beyond merged branch used to
+ get confused where the updated shallow points are, which has been
+ corrected.
+ (merge 3ef68ff40e sp/shallow-deepen-relative-fix later to maint).
+
+ * "fsck" iterates over packfiles and its access to pack data caused
+ the list to be permuted, which caused it to loop forever; the code
+ to access pack data by "fsck" has been updated to avoid this.
+ (merge 13eb65d366 ps/fsck-stream-from-the-right-object-instance later to maint).
+
+ * "git log --graph --stat" did not count the display width of colored
+ graph part of its own output correctly, which has been corrected.
+ (merge 064b869efc lp/diff-stat-utf8-display-width-fix later to maint).
+
+ * The configuration variable format.noprefix did not behave as a
+ proper boolean variable, which has now been fixed and documented.
+ (merge ea3a62c40e kh/format-patch-noprefix-is-boolean later to maint).
+
+ * CI fix.
+ (merge eb35167dd4 ps/ci-reduce-gitlab-envsize later to maint).
+
+ * "git diff --no-index --find-object=<object-name>" outside a
+ repository of course wouldn't be able to find the object and died
+ while parsing the command line. The command is made to die in a
+ bit more user-friendly way.
+ (merge b0ddc7947c mm/diff-no-index-find-object later to maint).
+
+ * Fix typo-induced breakages in fsmonitor-watchman sample hook.
+ (merge 41366e4677 pt/fsmonitor-watchman-sample-fix later to maint).
+
+ * "git for-each-repo" started from a secondary worktree did not work
+ as expected, which has been corrected.
+ (merge e87493b9b4 ds/for-each-repo-w-worktree later to maint).
+
+ * The construct 'test "$(command)" = expectation' loses the exit
+ status from the command, which has been fixed by breaking up the
+ statement into pieces.
+ (merge d3edca979a fp/t3310-unhide-git-failures later to maint).
+
+ * While discovering a ".git" directory, the code treats any stat()
+ failure as a sign that a filesystem entity .git does not exist
+ there, and ignores ".git" that is not a "gitdir" file or a
+ directory. The code has been tightened to notice and report
+ filesystem corruption better.
+ (merge 1dd27bfbfd ty/setup-error-tightening later to maint).
+
+ * Plug a few leaks where mmap'ed memory regions are not unmapped.
+ (merge a8a69bbb64 jk/unleak-mmap later to maint).
+
+ * A test now uses the symbolic constant $ZERO_OID instead of 40 "0" to
+ work better with SHA-256 as well as SHA-1.
+ (merge 30310f3cc4 ss/t3200-test-zero-oid later to maint).
+
+ * Instead of hardcoded 'origin', use the configured default remote
+ when fetching from submodules.
+ (merge 3b5fb32da8 ng/submodule-default-remote later to maint).
+
+ * The code in "git help" that shows configuration items in sorted
+ order was awkwardly organized and prone to bugs.
+
+ * "imap-send" used to use functions whose use is going to be removed
+ with OpenSSL 4.0; rewrite them using public API that has been
+ available since OpenSSL 1.1 since 2016 or so.
+ (merge 6392a0b75d bb/imap-send-openssl-4.0-prep later to maint).
+
+ * Fix an example in the user-manual.
+ (merge 5514f14617 gj/user-manual-fix-grep-example later to maint).
+
+ * The final clean-up phase of the diff output could turn the result of
+ histogram diff algorithm suboptimal, which has been corrected.
+ (merge e417277ae9 yc/histogram-hunk-shift-fix later to maint).
+
+ * "git diff -U<num>" was too lenient in its command line parsing and
+ took an empty string as a valid <num>.
+ (merge 4f6a803aba ty/doc-diff-u-wo-number later to maint).
+
+ * The handling of the incomplete lines at the end by "git
+ diff-highlight" has been fixed.
+
+ * merge-file --object-id used to trigger a BUG when run in a linked
+ worktree, which has been fixed.
+ (merge 57246b7c62 mr/merge-file-object-id-worktree-fix later to maint).
+
+ * "git apply -p<n>" parses <n> more carefully now.
+ (merge d05d84c5f5 mf/apply-p-no-atoi later to maint).
+
+ * A test to run a .bat file with whitespaces in the name with arguments
+ with whitespaces in them was flaky in that sometimes it got killed
+ before it produced expected side effects, which has been rewritten to
+ make it more robust.
+ (merge 3ad4921838 jk/t0061-bat-test-update later to maint).
+
+ * "git ls-remote '+refs/tags/*:refs/tags/*' https://..." run outside a
+ repository would dereference a NULL while trying to see if the given
+ refspec is a single-object refspec, which has been corrected.
+ (merge 4e5dc601dd kj/refspec-parsing-outside-repository later to maint).
+
+ * Fix a regression in writing the commit-graph where commits with dates
+ exceeding 34 bits (beyond year 2514) could cause an underflow and
+ crash Git during the generation data overflow chunk writing.
+
+ * The value of a wrong pointer variable was referenced in an error
+ message that reported that it shouldn't be NULL.
+ (merge 753ecf4205 yc/path-walk-fix-error-reporting later to maint).
+
+ * The check in "receive-pack" to prevent a checked out branch from
+ getting updated via updateInstead mechanism has been corrected.
+
+ * "git backfill" is capable of auto-detecting a sparsely checked out
+ working tree, which was broken.
+ (merge 339eba65a7 th/backfill-auto-detect-sparseness-fix later to maint).
+
+ * Other code cleanup, docfix, build fix, etc.
+ (merge d79fff4a11 jk/remote-tracking-ref-leakfix later to maint).
+ (merge 7a747f972d dd/t5403-modernise later to maint).
+ (merge 81021871ea sp/myfirstcontribution-include-update later to maint).
+ (merge 49223593fd ac/sparse-checkout-string-list-cleanup later to maint).
+ (merge a824421d36 sp/t5500-cleanup later to maint).
+ (merge df1c5d7ed7 kh/doc-shortlog-fix later to maint).
+ (merge 2d45507f15 am/doc-github-contributiong-link-to-submittingpatches later to maint).
+ (merge 68060b9262 hs/t9160-test-paths later to maint).
+ (merge 486386c687 cs/subtree-reftable-testfix later to maint).
+ (merge 0728012c53 jc/diff-highlight-main-master-testfix later to maint).
+ (merge 831989ef38 mc/doc-send-email-signed-off-by-cc later to maint).
+ (merge c44b3f3203 sd/doc-my1c-api-config-reference-fix later to maint).
+ (merge 6c21e53bad rs/version-wo-the-repository later to maint).
+ (merge 10c68d2577 rs/clean-includes later to maint).
+ (merge 168d575719 bk/t2003-modernise later to maint).
+ (merge 6bfef81c9a kh/doc-rerere-options-xref later to maint).
+ (merge aaf3cc3d8d sd/t7003-test-path-is-helpers later to maint).
+ (merge 2668b6bdc4 jc/doc-rerere-update later to maint).
+ (merge 2f99f50f2d jc/doc-cg-c-comment later to maint).
+ (merge a454cdca42 kh/doc-am-format-sendmail later to maint).
+ (merge 8b0061b5c5 jk/ref-filter-lrstrip-optim later to maint).
+ (merge 5133837392 ps/ci-gitlab-msvc-updates later to maint).
+ (merge 143e84958c db/doc-fetch-jobs-auto later to maint).
+ (merge 0678e01f02 ap/use-test-seq-f-more later to maint).
+ (merge 96286f14b0 ty/symlinks-use-unsigned-for-bitset later to maint).
+ (merge b10e0cb1f3 kh/doc-am-xref later to maint).
+ (merge ed84bc1c0d kh/doc-patch-id-4 later to maint).
+ (merge 7451864bfa sc/pack-redundant-leakfix later to maint).
+ (merge f87593ab1a cx/fetch-display-ubfix later to maint).
+ (merge a66c8c7f91 jk/repo-structure-cleanup later to maint).
+ (merge 5ee8782f87 ss/test-that-that-typofix later to maint).
+ (merge f31b322008 fp/t3310-test-path-is-helpers later to maint).
+ (merge b22ed4c4f9 kj/path-micro-code-cleanup later to maint).
+ (merge a56fa1ca05 lp/doc-gitprotocol-pack-fixes later to maint).
+ (merge 0d6bb8b541 ss/t3700-modernize later to maint).
+ (merge 63c00a677b ss/t9123-setup-inside-test-expect-success later to maint).
+ (merge beca0ca4be os/doc-git-custom-commands later to maint).
+ (merge 4c223571be ty/patch-ids-document-lazy-eval later to maint).
+ (merge 476365ac85 jc/doc-wholesale-replace-before-next later to maint).
+ (merge 35f220b639 ss/submodule--helper-use-xmalloc later to maint).
+ (merge 02cbae61df cf/constness-fixes later to maint).
+ (merge 69efd53c81 ms/t7605-test-path-is-helpers later to maint).
+ (merge d39cef3a1a ss/t0410-delete-object-cleanup later to maint).
+ (merge 2f05039717 rj/pack-refs-tests-path-is-helpers later to maint).
+ (merge 2594747ad1 jk/transport-color-leakfix later to maint).
+ (merge 48430e44ac mf/t0008-cleanup later to maint).
+ (merge fc8a4f15e7 gi/doc-boolean-config-typofix later to maint).
+ (merge 37182267a0 kh/doc-interpret-trailers-1 later to maint).
+ (merge f64c50e768 jc/rerere-modern-strbuf-handling later to maint).
+ (merge 699248d89e th/t8003-unhide-git-failures later to maint).
+ (merge d8e34f971b za/t2000-modernise later to maint).
+ (merge 849988bc74 th/t6101-unhide-git-failures later to maint).
+ (merge 0f0ce07625 sp/doc-gitignore-oowt later to maint).