Git 2.34 Release Notes
======================

Updates since Git 2.33
----------------------

UI, Workflows & Features

 * Pathname expansion (like "~username/") learned a way to specify a
   location relative to Git installation (e.g. its $sharedir which is
   $(prefix)/share), with "%(prefix)".

 * Use `ort` instead of `recursive` as the default merge strategy.

 * The userdiff pattern for "java" language has been updated.


Performance, Internal Implementation, Development Support etc.

 * "git bisect" spawned "git show-branch" only to pretty-print the
   title of the commit after checking out the next version to be
   tested; this has been rewritten in C.

 * "git add" can work better with the sparse index.

 * Support for ancient versions of cURL library (pre 7.19.4) has been
   dropped.

 * A handful of tests that assumed implementation details of files
   backend for refs have been cleaned up.

 * trace2 logs learned to show parent process name to see in what
   context Git was invoked.

 * Loading of ref tips to prepare for common ancestry negotiation in
   "git fetch-pack" has been optimized by taking advantage of the
   commit graph when available.

 * Remind developers that the userdiff patterns should be kept simple
   and permissive, assuming that the contents they apply are always
   syntactically correct.

 * The current implementation of GIT_TEST_FAIL_PREREQS is broken in
   that checking for the lack of a prerequisite would not work.  Avoid
   the use of "if ! test_have_prereq X" in a test script.


Fixes since v2.33
-----------------

 * Input validation of "git pack-objects --stdin-packs" has been
   corrected.
   (merge 561fa03529 ab/pack-stdin-packs-fix later to maint).

 * Bugfix for common ancestor negotiation recently introduced in "git
   push" code path.
   (merge 82823118b9 jt/push-negotiation-fixes later to maint).

 * "git pull" had various corner cases that were not well thought out
   around its --rebase backend, e.g. "git pull --ff-only" did not stop
   but went ahead and rebased when the history on other side is not a
   descendant of our history.  The series tries to fix them up.
   (merge 6f843a3355 en/pull-conflicting-options later to maint).

 * "git apply" miscounted the bytes and failed to read to the end of
   binary hunks.
   (merge 46d723ce57 jk/apply-binary-hunk-parsing-fix later to maint).

 * "git range-diff" code clean-up.
   (merge c4d5907324 jk/range-diff-fixes later to maint).

 * Other code cleanup, docfix, build fix, etc.
   (merge 1d9c8daef8 ab/bundle-doc later to maint).
   (merge 81483fe613 en/merge-strategy-docs later to maint).
   (merge 626beebdf8 js/log-protocol-version later to maint).
   (merge 00e302da76 cb/builtin-merge-format-string-fix later to maint).
   (merge ad51ae4dc0 cb/ci-freebsd-update later to maint).
