Git v2.51 Release Notes
=======================

UI, Workflows & Features
------------------------

 * Userdiff patterns for the R language have been added.

 * Documentation for "git send-email" has been updated with a bit more
   credential helper and OAuth information.

 * "git cat-file --batch" learns to understand %(objectmode) atom to
   allow the caller to tell missing objects (due to repository
   corruption) and submodules (whose commit objects are OK to be
   missing) apart.

 * "git diff --no-index dirA dirB" can limit the comparison with
   pathspec at the end of the command line, just like normal "git
   diff".

 * "git subtree" (in contrib/) learned to grok GPG signing its commits.

 * "git whatchanged" that is longer to type than "git log --raw"
   which is its modern rough equivalent has outlived its usefulness
   more than 10 years ago.  Plan to deprecate and remove it.

 * An interchange format for stash entries is defined, and subcommand
   of "git stash" to import/export has been added.

 * "git merge/pull" has been taught the "--compact-summary" option to
   use the compact-summary format, intead of diffstat, when showing
   the summary of the incoming changes.

 * "git imap-send" has been broken for a long time, which has been
   resurrected and then taught to talk OAuth2.0 etc.

 * Some error messages from "git imap-send" has been updated.


Performance, Internal Implementation, Development Support etc.
--------------------------------------------------------------

 * "git pack-objects" learned to find delta bases from blobs at the
   same path, using the --path-walk API.

 * CodingGuidelines update.

 * Add settings for Solaris 10 & 11.

 * Meson-based build/test framework now understands TAP output
   generated by our tests.

 * "Do not explicitly initialize to zero" rule has been clarified in
   the CodingGuidelines document.

 * A test helper "test_seq" function learned the "-f <fmt>" option,
   which allowed us to simplify a lot of test scripts.

 * A lot of stale stuff has been removed from the contrib/ hierarchy.


Fixes since v2.50
-----------------

 * A memory-leak in an error code path has been plugged.
   (merge 7082da85cb ly/commit-graph-graph-write-leakfix later to maint).

 * A memory-leak in an error code path has been plugged.
   (merge aedebdb6b9 ly/fetch-pack-leakfix later to maint).

 * Some leftover references to documentation source files that no
   longer exist, due to recent ".txt" -> ".adoc" renaming, have been
   corrected.
   (merge 3717a5775a jw/doc-txt-to-adoc-refs later to maint).

 * "git stash -p <pathspec>" improvements.
   (merge 468817bab2 pw/stash-p-pathspec-fixes later to maint).

 * "git send-email" incremented its internal message counter when a
   message was edited, which made logic that treats the first message
   specially misbehave, which has been corrected.
   (merge 2cc27b3501 ag/send-email-edit-threading-fix later to maint).

 * "git stash" recorded a wrong branch name when submodules are
   present in the current checkout, which has been corrected.
   (merge ffb36c64f2 kj/stash-onbranch-submodule-fix later to maint).

 * When asking to apply mailmap to both author and committer field
   while showing a commit object, the field that appears later was not
   correctly parsed and replaced, which has been corrected.
   (merge abf94a283f sa/multi-mailmap-fix later to maint).

 * "git maintenance" lacked the care "git gc" had to avoid holding
   onto the repository lock for too long during packing refs, which
   has been remedied.
   (merge 1b5074e614 ps/maintenance-ref-lock later to maint).

 * Avoid regexp_constraint and instead use comparison_constraint when
   listing functions to exclude from application of coccinelle rules,
   as spatch can be built with different regexp engine X-<.
   (merge f2ad545813 jc/cocci-avoid-regexp-constraint later to maint).

 * Other code cleanup, docfix, build fix, etc.
   (merge b257adb571 lo/my-first-ow-doc-update later to maint).
   (merge 8b34b6a220 ly/sequencer-update-squash-is-fixup-only later to maint).
   (merge 5dceb8bd05 ly/do-not-localize-bug-messages later to maint).
   (merge 61372dd613 ly/commit-buffer-reencode-leakfix later to maint).
   (merge 81cd1eef7d ly/pack-bitmap-root-leakfix later to maint).
   (merge bfc9f9cc64 ly/submodule-update-failure-leakfix later to maint).
   (merge 65dff89c6b ma/doc-diff-cc-headers later to maint).
   (merge efb61591ee jm/bundle-uri-debug-output-to-fp later to maint).
   (merge a3d278bb64 ly/prepare-show-merge-leakfix later to maint).
   (merge 1fde1c5daf ac/preload-index-wo-the-repository later to maint).
   (merge 855cfc65ae rm/t2400-modernize later to maint).
   (merge 2939494284 ly/run-builtin-use-passed-in-repo later to maint).
   (merge ff73f375bb jg/mailinfo-leakfix later to maint).
