"Fossies" - the Fresh Open Source Software Archive

Member "RelNotes/2.19.0.txt" (15 Dec 2018, 28137 Bytes) of package /linux/misc/git-htmldocs-2.20.1.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 Git 2.19 Release Notes
    2 ======================
    3 
    4 Updates since v2.18
    5 -------------------
    6 
    7 UI, Workflows & Features
    8 
    9  * "git diff" compares the index and the working tree.  For paths
   10    added with intent-to-add bit, the command shows the full contents
   11    of them as added, but the paths themselves were not marked as new
   12    files.  They are now shown as new by default.
   13 
   14    "git apply" learned the "--intent-to-add" option so that an
   15    otherwise working-tree-only application of a patch will add new
   16    paths to the index marked with the "intent-to-add" bit.
   17 
   18  * "git grep" learned the "--column" option that gives not just the
   19    line number but the column number of the hit.
   20 
   21  * The "-l" option in "git branch -l" is an unfortunate short-hand for
   22    "--create-reflog", but many users, both old and new, somehow expect
   23    it to be something else, perhaps "--list".  This step warns when "-l"
   24    is used as a short-hand for "--create-reflog" and warns about the
   25    future repurposing of the it when it is used.
   26 
   27  * The userdiff pattern for .php has been updated.
   28 
   29  * The content-transfer-encoding of the message "git send-email" sends
   30    out by default was 8bit, which can cause trouble when there is an
   31    overlong line to bust RFC 5322/2822 limit.  A new option 'auto' to
   32    automatically switch to quoted-printable when there is such a line
   33    in the payload has been introduced and is made the default.
   34 
   35  * "git checkout" and "git worktree add" learned to honor
   36    checkout.defaultRemote when auto-vivifying a local branch out of a
   37    remote tracking branch in a repository with multiple remotes that
   38    have tracking branches that share the same names.
   39    (merge 8d7b558bae ab/checkout-default-remote later to maint).
   40 
   41  * "git grep" learned the "--only-matching" option.
   42 
   43  * "git rebase --rebase-merges" mode now handles octopus merges as
   44    well.
   45 
   46  * Add a server-side knob to skip commits in exponential/fibbonacci
   47    stride in an attempt to cover wider swath of history with a smaller
   48    number of iterations, potentially accepting a larger packfile
   49    transfer, instead of going back one commit a time during common
   50    ancestor discovery during the "git fetch" transaction.
   51    (merge 42cc7485a2 jt/fetch-negotiator-skipping later to maint).
   52 
   53  * A new configuration variable core.usereplacerefs has been added,
   54    primarily to help server installations that want to ignore the
   55    replace mechanism altogether.
   56 
   57  * Teach "git tag -s" etc. a few configuration variables (gpg.format
   58    that can be set to "openpgp" or "x509", and gpg.<format>.program
   59    that is used to specify what program to use to deal with the format)
   60    to allow x.509 certs with CMS via "gpgsm" to be used instead of
   61    openpgp via "gnupg".
   62 
   63  * Many more strings are prepared for l10n.
   64 
   65  * "git p4 submit" learns to ask its own pre-submit hook if it should
   66    continue with submitting.
   67 
   68  * The test performed at the receiving end of "git push" to prevent
   69    bad objects from entering repository can be customized via
   70    receive.fsck.* configuration variables; we now have gained a
   71    counterpart to do the same on the "git fetch" side, with
   72    fetch.fsck.* configuration variables.
   73 
   74  * "git pull --rebase=interactive" learned "i" as a short-hand for
   75    "interactive".
   76 
   77  * "git instaweb" has been adjusted to run better with newer Apache on
   78    RedHat based distros.
   79 
   80  * "git range-diff" is a reimplementation of "git tbdiff" that lets us
   81    compare individual patches in two iterations of a topic.
   82 
   83  * The sideband code learned to optionally paint selected keywords at
   84    the beginning of incoming lines on the receiving end.
   85 
   86  * "git branch --list" learned to take the default sort order from the
   87    'branch.sort' configuration variable, just like "git tag --list"
   88    pays attention to 'tag.sort'.
   89 
   90  * "git worktree" command learned "--quiet" option to make it less
   91    verbose.
   92 
   93 
   94 Performance, Internal Implementation, Development Support etc.
   95 
   96  * The bulk of "git submodule foreach" has been rewritten in C.
   97 
   98  * The in-core "commit" object had an all-purpose "void *util" field,
   99    which was tricky to use especially in library-ish part of the
  100    code.  All of the existing uses of the field has been migrated to a
  101    more dedicated "commit-slab" mechanism and the field is eliminated.
  102 
  103  * A less often used command "git show-index" has been modernized.
  104    (merge fb3010c31f jk/show-index later to maint).
  105 
  106  * The conversion to pass "the_repository" and then "a_repository"
  107    throughout the object access API continues.
  108 
  109  * Continuing with the idea to programatically enumerate various
  110    pieces of data required for command line completion, teach the
  111    codebase to report the list of configuration variables
  112    subcommands care about to help complete them.
  113 
  114  * Separate "rebase -p" codepath out of "rebase -i" implementation to
  115    slim down the latter and make it easier to manage.
  116 
  117  * Make refspec parsing codepath more robust.
  118 
  119  * Some flaky tests have been fixed.
  120 
  121  * Continuing with the idea to programmatically enumerate various
  122    pieces of data required for command line completion, the codebase
  123    has been taught to enumerate options prefixed with "--no-" to
  124    negate them.
  125 
  126  * Build and test procedure for netrc credential helper (in contrib/)
  127    has been updated.
  128 
  129  * Remove unused function definitions and declarations from ewah
  130    bitmap subsystem.
  131 
  132  * Code preparation to make "git p4" closer to be usable with Python 3.
  133 
  134  * Tighten the API to make it harder to misuse in-tree .gitmodules
  135    file, even though it shares the same syntax with configuration
  136    files, to read random configuration items from it.
  137 
  138  * "git fast-import" has been updated to avoid attempting to create
  139    delta against a zero-byte-long string, which is pointless.
  140 
  141  * The codebase has been updated to compile cleanly with -pedantic
  142    option.
  143    (merge 2b647a05d7 bb/pedantic later to maint).
  144 
  145  * The character display width table has been updated to match the
  146    latest Unicode standard.
  147    (merge 570951eea2 bb/unicode-11-width later to maint).
  148 
  149  * test-lint now looks for broken use of "VAR=VAL shell_func" in test
  150    scripts.
  151 
  152  * Conversion from uchar[40] to struct object_id continues.
  153 
  154  * Recent "security fix" to pay attention to contents of ".gitmodules"
  155    while accepting "git push" was a bit overly strict than necessary,
  156    which has been adjusted.
  157 
  158  * "git fsck" learns to make sure the optional commit-graph file is in
  159    a sane state.
  160 
  161  * "git diff --color-moved" feature has further been tweaked.
  162 
  163  * Code restructuring and a small fix to transport protocol v2 during
  164    fetching.
  165 
  166  * Parsing of -L[<N>][,[<M>]] parameters "git blame" and "git log"
  167    take has been tweaked.
  168 
  169  * lookup_commit_reference() and friends have been updated to find
  170    in-core object for a specific in-core repository instance.
  171 
  172  * Various glitches in the heuristics of merge-recursive strategy have
  173    been documented in new tests.
  174 
  175  * "git fetch" learned a new option "--negotiation-tip" to limit the
  176    set of commits it tells the other end as "have", to reduce wasted
  177    bandwidth and cycles, which would be helpful when the receiving
  178    repository has a lot of refs that have little to do with the
  179    history at the remote it is fetching from.
  180 
  181  * For a large tree, the index needs to hold many cache entries
  182    allocated on heap.  These cache entries are now allocated out of a
  183    dedicated memory pool to amortize malloc(3) overhead.
  184 
  185  * Tests to cover various conflicting cases have been added for
  186    merge-recursive.
  187 
  188  * Tests to cover conflict cases that involve submodules have been
  189    added for merge-recursive.
  190 
  191  * Look for broken "&&" chains that are hidden in subshell, many of
  192    which have been found and corrected.
  193 
  194  * The singleton commit-graph in-core instance is made per in-core
  195    repository instance.
  196 
  197  * "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile
  198    with -pedantic option, which may catch more problematic program
  199    constructs and potential bugs.
  200 
  201  * Preparatory code to later add json output for telemetry data has
  202    been added.
  203 
  204  * Update the way we use Coccinelle to find out-of-style code that
  205    need to be modernised.
  206 
  207  * It is too easy to misuse system API functions such as strcat();
  208    these selected functions are now forbidden in this codebase and
  209    will cause a compilation failure.
  210 
  211  * Add a script (in contrib/) to help users of VSCode work better with
  212    our codebase.
  213 
  214  * The Travis CI scripts were taught to ship back the test data from
  215    failed tests.
  216    (merge aea8879a6a sg/travis-retrieve-trash-upon-failure later to maint).
  217 
  218  * The parse-options machinery learned to refrain from enclosing
  219    placeholder string inside a "<bra" and "ket>" pair automatically
  220    without PARSE_OPT_LITERAL_ARGHELP.  Existing help text for option
  221    arguments that are not formatted correctly have been identified and
  222    fixed.
  223    (merge 5f0df44cd7 rs/parse-opt-lithelp later to maint).
  224 
  225  * Noiseword "extern" has been removed from function decls in the
  226    header files.
  227 
  228  * A few atoms like %(objecttype) and %(objectsize) in the format
  229    specifier of "for-each-ref --format=<format>" can be filled without
  230    getting the full contents of the object, but just with the object
  231    header.  These cases have been optimized by calling
  232    oid_object_info() API (instead of reading and inspecting the data).
  233 
  234  * The end result of documentation update has been made to be
  235    inspected more easily to help developers.
  236 
  237  * The API to iterate over all objects learned to optionally list
  238    objects in the order they appear in packfiles, which helps locality
  239    of access if the caller accesses these objects while as objects are
  240    enumerated.
  241 
  242  * Improve built-in facility to catch broken &&-chain in the tests.
  243 
  244  * The more library-ish parts of the codebase learned to work on the
  245    in-core index-state instance that is passed in by their callers,
  246    instead of always working on the singleton "the_index" instance.
  247 
  248  * A test prerequisite defined by various test scripts with slightly
  249    different semantics has been consolidated into a single copy and
  250    made into a lazily defined one.
  251    (merge 6ec633059a wc/make-funnynames-shared-lazy-prereq later to maint).
  252 
  253  * After a partial clone, repeated fetches from promisor remote would
  254    have accumulated many packfiles marked with .promisor bit without
  255    getting them coalesced into fewer packfiles, hurting performance.
  256    "git repack" now learned to repack them.
  257 
  258  * Partially revert the support for multiple hash functions to regain
  259    hash comparison performance; we'd think of a way to do this better
  260    in the next cycle.
  261 
  262  * "git help --config" (which is used in command line completion)
  263    missed the configuration variables not described in the main
  264    config.txt file but are described in another file that is included
  265    by it, which has been corrected.
  266 
  267  * The test linter code has learned that the end of here-doc mark
  268    "EOF" can be quoted in a double-quote pair, not just in a
  269    single-quote pair.
  270 
  271 
  272 Fixes since v2.18
  273 -----------------
  274 
  275  * "git remote update" can take both a single remote nickname and a
  276    nickname for remote groups, and the completion script (in contrib/)
  277    has been taught about it.
  278    (merge 9cd4382ad5 ls/complete-remote-update-names later to maint).
  279 
  280  * "git fetch --shallow-since=<cutoff>" that specifies the cut-off
  281    point that is newer than the existing history used to end up
  282    grabbing the entire history.  Such a request now errors out.
  283    (merge e34de73c56 nd/reject-empty-shallow-request later to maint).
  284 
  285  * Fix for 2.17-era regression around `core.safecrlf`.
  286    (merge 6cb09125be as/safecrlf-quiet-fix later to maint).
  287 
  288  * The recent addition of "partial clone" experimental feature kicked
  289    in when it shouldn't, namely, when there is no partial-clone filter
  290    defined even if extensions.partialclone is set.
  291    (merge cac1137dc4 jh/partial-clone later to maint).
  292 
  293  * "git send-pack --signed" (hence "git push --signed" over the http
  294    transport) did not read user ident from the config mechanism to
  295    determine whom to sign the push certificate as, which has been
  296    corrected.
  297    (merge d067d98887 ms/send-pack-honor-config later to maint).
  298 
  299  * "git fetch-pack --all" used to unnecessarily fail upon seeing an
  300    annotated tag that points at an object other than a commit.
  301    (merge c12c9df527 jk/fetch-all-peeled-fix later to maint).
  302 
  303  * When user edits the patch in "git add -p" and the user's editor is
  304    set to strip trailing whitespaces indiscriminately, an empty line
  305    that is unchanged in the patch would become completely empty
  306    (instead of a line with a sole SP on it).  The code introduced in
  307    Git 2.17 timeframe failed to parse such a patch, but now it learned
  308    to notice the situation and cope with it.
  309    (merge f4d35a6b49 pw/add-p-recount later to maint).
  310 
  311  * The code to try seeing if a fetch is necessary in a submodule
  312    during a fetch with --recurse-submodules got confused when the path
  313    to the submodule was changed in the range of commits in the
  314    superproject, sometimes showing "(null)".  This has been corrected.
  315 
  316  * Bugfix for "rebase -i" corner case regression.
  317    (merge a9279c6785 pw/rebase-i-keep-reword-after-conflict later to maint).
  318 
  319  * Recently added "--base" option to "git format-patch" command did
  320    not correctly generate prereq patch ids.
  321    (merge 15b76c1fb3 xy/format-patch-prereq-patch-id-fix later to maint).
  322 
  323  * POSIX portability fix in Makefile to fix a glitch introduced a few
  324    releases ago.
  325    (merge 6600054e9b dj/runtime-prefix later to maint).
  326 
  327  * "git filter-branch" when used with the "--state-branch" option
  328    still attempted to rewrite the commits whose filtered result is
  329    known from the previous attempt (which is recorded on the state
  330    branch); the command has been corrected not to waste cycles doing
  331    so.
  332    (merge 709cfe848a mb/filter-branch-optim later to maint).
  333 
  334  * Clarify that setting core.ignoreCase to deviate from reality would
  335    not turn a case-incapable filesystem into a case-capable one.
  336    (merge 48294b512a ms/core-icase-doc later to maint).
  337 
  338  * "fsck.skipList" did not prevent a blob object listed there from
  339    being inspected for is contents (e.g. we recently started to
  340    inspect the contents of ".gitmodules" for certain malicious
  341    patterns), which has been corrected.
  342    (merge fb16287719 rj/submodule-fsck-skip later to maint).
  343 
  344  * "git checkout --recurse-submodules another-branch" did not report
  345    in which submodule it failed to update the working tree, which
  346    resulted in an unhelpful error message.
  347    (merge ba95d4e4bd sb/submodule-move-head-error-msg later to maint).
  348 
  349  * "git rebase" behaved slightly differently depending on which one of
  350    the three backends gets used; this has been documented and an
  351    effort to make them more uniform has begun.
  352    (merge b00bf1c9a8 en/rebase-consistency later to maint).
  353 
  354  * The "--ignore-case" option of "git for-each-ref" (and its friends)
  355    did not work correctly, which has been fixed.
  356    (merge e674eb2528 jk/for-each-ref-icase later to maint).
  357 
  358  * "git fetch" failed to correctly validate the set of objects it
  359    received when making a shallow history deeper, which has been
  360    corrected.
  361    (merge cf1e7c0770 jt/connectivity-check-after-unshallow later to maint).
  362 
  363  * Partial clone support of "git clone" has been updated to correctly
  364    validate the objects it receives from the other side.  The server
  365    side has been corrected to send objects that are directly
  366    requested, even if they may match the filtering criteria (e.g. when
  367    doing a "lazy blob" partial clone).
  368    (merge a7e67c11b8 jt/partial-clone-fsck-connectivity later to maint).
  369 
  370  * Handling of an empty range by "git cherry-pick" was inconsistent
  371    depending on how the range ended up to be empty, which has been
  372    corrected.
  373    (merge c5e358d073 jk/empty-pick-fix later to maint).
  374 
  375  * "git reset --merge" (hence "git merge ---abort") and "git reset --hard"
  376    had trouble working correctly in a sparsely checked out working
  377    tree after a conflict, which has been corrected.
  378    (merge b33fdfc34c mk/merge-in-sparse-checkout later to maint).
  379 
  380  * Correct a broken use of "VAR=VAL shell_func" in a test.
  381    (merge 650161a277 jc/t3404-one-shot-export-fix later to maint).
  382 
  383  * "git rev-parse ':/substring'" did not consider the history leading
  384    only to HEAD when looking for a commit with the given substring,
  385    when the HEAD is detached.  This has been fixed.
  386    (merge 6b3351e799 wc/find-commit-with-pattern-on-detached-head later to maint).
  387 
  388  * Build doc update for Windows.
  389    (merge ede8d89bb1 nd/command-list later to maint).
  390 
  391  * core.commentchar is now honored when preparing the list of commits
  392    to replay in "rebase -i".
  393 
  394  * "git pull --rebase" on a corrupt HEAD caused a segfault.  In
  395    general we substitute an empty tree object when running the in-core
  396    equivalent of the diff-index command, and the codepath has been
  397    corrected to do so as well to fix this issue.
  398    (merge 3506dc9445 jk/has-uncommitted-changes-fix later to maint).
  399 
  400  * httpd tests saw occasional breakage due to the way its access log
  401    gets inspected by the tests, which has been updated to make them
  402    less flaky.
  403    (merge e8b3b2e275 sg/httpd-test-unflake later to maint).
  404 
  405  * Tests to cover more D/F conflict cases have been added for
  406    merge-recursive.
  407 
  408  * "git gc --auto" opens file descriptors for the packfiles before
  409    spawning "git repack/prune", which would upset Windows that does
  410    not want a process to work on a file that is open by another
  411    process.  The issue has been worked around.
  412    (merge 12e73a3ce4 kg/gc-auto-windows-workaround later to maint).
  413 
  414  * The recursive merge strategy did not properly ensure there was no
  415    change between HEAD and the index before performing its operation,
  416    which has been corrected.
  417    (merge 55f39cf755 en/dirty-merge-fixes later to maint).
  418 
  419  * "git rebase" started exporting GIT_DIR environment variable and
  420    exposing it to hook scripts when part of it got rewritten in C.
  421    Instead of matching the old scripted Porcelains' behaviour,
  422    compensate by also exporting GIT_WORK_TREE environment as well to
  423    lessen the damage.  This can harm existing hooks that want to
  424    operate on different repository, but the current behaviour is
  425    already broken for them anyway.
  426    (merge ab5e67d751 bc/sequencer-export-work-tree-as-well later to maint).
  427 
  428  * "git send-email" when using in a batched mode that limits the
  429    number of messages sent in a single SMTP session lost the contents
  430    of the variable used to choose between tls/ssl, unable to send the
  431    second and later batches, which has been fixed.
  432    (merge 636f3d7ac5 jm/send-email-tls-auth-on-batch later to maint).
  433 
  434  * The lazy clone support had a few places where missing but promised
  435    objects were not correctly tolerated, which have been fixed.
  436 
  437  * One of the "diff --color-moved" mode "dimmed_zebra" that was named
  438    in an unusual way has been deprecated and replaced by
  439    "dimmed-zebra".
  440    (merge e3f2f5f9cd es/diff-color-moved-fix later to maint).
  441 
  442  * The wire-protocol v2 relies on the client to send "ref prefixes" to
  443    limit the bandwidth spent on the initial ref advertisement.  "git
  444    clone" when learned to speak v2 forgot to do so, which has been
  445    corrected.
  446    (merge 402c47d939 bw/clone-ref-prefixes later to maint).
  447 
  448  * "git diff --histogram" had a bad memory usage pattern, which has
  449    been rearranged to reduce the peak usage.
  450    (merge 79cb2ebb92 sb/histogram-less-memory later to maint).
  451 
  452  * Code clean-up to use size_t/ssize_t when they are the right type.
  453    (merge 7726d360b5 jk/size-t later to maint).
  454 
  455  * The wire-protocol v2 relies on the client to send "ref prefixes" to
  456    limit the bandwidth spent on the initial ref advertisement.  "git
  457    fetch $remote branch:branch" that asks tags that point into the
  458    history leading to the "branch" automatically followed sent to
  459    narrow prefix and broke the tag following, which has been fixed.
  460    (merge 2b554353a5 jt/tag-following-with-proto-v2-fix later to maint).
  461 
  462  * When the sparse checkout feature is in use, "git cherry-pick" and
  463    other mergy operations lost the skip_worktree bit when a path that
  464    is excluded from checkout requires content level merge, which is
  465    resolved as the same as the HEAD version, without materializing the
  466    merge result in the working tree, which made the path appear as
  467    deleted.  This has been corrected by preserving the skip_worktree
  468    bit (and not materializing the file in the working tree).
  469    (merge 2b75fb601c en/merge-recursive-skip-fix later to maint).
  470 
  471  * The "author-script" file "git rebase -i" creates got broken when
  472    we started to move the command away from shell script, which is
  473    getting fixed now.
  474    (merge 5522bbac20 es/rebase-i-author-script-fix later to maint).
  475 
  476  * The automatic tree-matching in "git merge -s subtree" was broken 5
  477    years ago and nobody has noticed since then, which is now fixed.
  478    (merge 2ec4150713 jk/merge-subtree-heuristics later to maint).
  479 
  480  * "git fetch $there refs/heads/s" ought to fetch the tip of the
  481    branch 's', but when "refs/heads/refs/heads/s", i.e. a branch whose
  482    name is "refs/heads/s" exists at the same time, fetched that one
  483    instead by mistake.  This has been corrected to honor the usual
  484    disambiguation rules for abbreviated refnames.
  485    (merge 60650a48c0 jt/refspec-dwim-precedence-fix later to maint).
  486 
  487  * Futureproofing a helper function that can easily be misused.
  488    (merge 65bb21e77e es/want-color-fd-defensive later to maint).
  489 
  490  * The http-backend (used for smart-http transport) used to slurp the
  491    whole input until EOF, without paying attention to CONTENT_LENGTH
  492    that is supplied in the environment and instead expecting the Web
  493    server to close the input stream.  This has been fixed.
  494    (merge eebfe40962 mk/http-backend-content-length later to maint).
  495 
  496  * "git merge --abort" etc. did not clean things up properly when
  497    there were conflicted entries in the index in certain order that
  498    are involved in D/F conflicts.  This has been corrected.
  499    (merge ad3762042a en/abort-df-conflict-fixes later to maint).
  500 
  501  * "git diff --indent-heuristic" had a bad corner case performance.
  502    (merge 301ef85401 sb/indent-heuristic-optim later to maint).
  503 
  504  * The "--exec" option to "git rebase --rebase-merges" placed the exec
  505    commands at wrong places, which has been corrected.
  506 
  507  * "git verify-tag" and "git verify-commit" have been taught to use
  508    the exit status of underlying "gpg --verify" to signal bad or
  509    untrusted signature they found.
  510    (merge 4e5dc9ca17 jc/gpg-status later to maint).
  511 
  512  * "git mergetool" stopped and gave an extra prompt to continue after
  513    the last path has been handled, which did not make much sense.
  514    (merge d651a54b8a ng/mergetool-lose-final-prompt later to maint).
  515 
  516  * Among the three codepaths we use O_APPEND to open a file for
  517    appending, one used for writing GIT_TRACE output requires O_APPEND
  518    implementation that behaves sensibly when multiple processes are
  519    writing to the same file.  POSIX emulation used in the Windows port
  520    has been updated to improve in this area.
  521    (merge d641097589 js/mingw-o-append later to maint).
  522 
  523  * "git pull --rebase -v" in a repository with a submodule barfed as
  524    an intermediate process did not understand what "-v(erbose)" flag
  525    meant, which has been fixed.
  526    (merge e84c3cf3dc sb/pull-rebase-submodule later to maint).
  527 
  528  * Recent update to "git config" broke updating variable in a
  529    subsection, which has been corrected.
  530    (merge bff7df7a87 sb/config-write-fix later to maint).
  531 
  532  * When "git rebase -i" is told to squash two or more commits into
  533    one, it labeled the log message for each commit with its number.
  534    It correctly called the first one "1st commit", but the next one
  535    was "commit #1", which was off-by-one.  This has been corrected.
  536    (merge dd2e36ebac pw/rebase-i-squash-number-fix later to maint).
  537 
  538  * "git rebase -i", when a 'merge <branch>' insn in its todo list
  539    fails, segfaulted, which has been (minimally) corrected.
  540    (merge bc9238bb09 pw/rebase-i-merge-segv-fix later to maint).
  541 
  542  * "git cherry-pick --quit" failed to remove CHERRY_PICK_HEAD even
  543    though we won't be in a cherry-pick session after it returns, which
  544    has been corrected.
  545    (merge 3e7dd99208 nd/cherry-pick-quit-fix later to maint).
  546 
  547  * In a recent update in 2.18 era, "git pack-objects" started
  548    producing a larger than necessary packfiles by missing
  549    opportunities to use large deltas.  This has been corrected.
  550 
  551  * The meaning of the possible values the "core.checkStat"
  552    configuration variable can take were not adequately documented,
  553    which has been fixed.
  554    (merge 9bf5d4c4e2 nd/config-core-checkstat-doc later to maint).
  555 
  556  * Recent "git rebase -i" update started to write bogusly formatted
  557    author-script, with a matching broken reading code.  These are
  558    fixed.
  559 
  560  * Recent addition of "directory rename" heuristics to the
  561    merge-recursive backend makes the command susceptible to false
  562    positives and false negatives.  In the context of "git am -3",
  563    which does not know about surrounding unmodified paths and thus
  564    cannot inform the merge machinery about the full trees involved,
  565    this risk is particularly severe.  As such, the heuristic is
  566    disabled for "git am -3" to keep the machinery "more stupid but
  567    predictable".
  568 
  569  * "git merge-base" in 2.19-rc1 has performance regression when the
  570    (experimental) commit-graph feature is in use, which has been
  571    mitigated.
  572 
  573  * Code cleanup, docfix, build fix, etc.
  574    (merge aee9be2ebe sg/update-ref-stdin-cleanup later to maint).
  575    (merge 037714252f jc/clean-after-sanity-tests later to maint).
  576    (merge 5b26c3c941 en/merge-recursive-cleanup later to maint).
  577    (merge 0dcbc0392e bw/config-refer-to-gitsubmodules-doc later to maint).
  578    (merge bb4d000e87 bw/protocol-v2 later to maint).
  579    (merge 928f0ab4ba vs/typofixes later to maint).
  580    (merge d7f590be84 en/rebase-i-microfixes later to maint).
  581    (merge 81d395cc85 js/rebase-recreate-merge later to maint).
  582    (merge 51d1863168 tz/exclude-doc-smallfixes later to maint).
  583    (merge a9aa3c0927 ds/commit-graph later to maint).
  584    (merge 5cf8e06474 js/enhanced-version-info later to maint).
  585    (merge 6aaded5509 tb/config-default later to maint).
  586    (merge 022d2ac1f3 sb/blame-color later to maint).
  587    (merge 5a06a20e0c bp/test-drop-caches-for-windows later to maint).
  588    (merge dd61cc1c2e jk/ui-color-always-to-auto later to maint).
  589    (merge 1e83b9bfdd sb/trailers-docfix later to maint).
  590    (merge ab29f1b329 sg/fast-import-dump-refs-on-checkpoint-fix later to maint).
  591    (merge 6a8ad880f0 jn/subtree-test-fixes later to maint).
  592    (merge ffbd51cc60 nd/pack-objects-threading-doc later to maint).
  593    (merge e9dac7be60 es/mw-to-git-chain-fix later to maint).
  594    (merge fe583c6c7a rs/remote-mv-leakfix later to maint).
  595    (merge 69885ab015 en/t3031-title-fix later to maint).
  596    (merge 8578037bed nd/config-blame-sort later to maint).
  597    (merge 8ad169c4ba hn/config-in-code-comment later to maint).
  598    (merge b7446fcfdf ar/t4150-am-scissors-test-fix later to maint).
  599    (merge a8132410ee js/typofixes later to maint).
  600    (merge 388d0ff6e5 en/update-index-doc later to maint).
  601    (merge e05aa688dd jc/update-index-doc later to maint).
  602    (merge 10c600172c sg/t5310-empty-input-fix later to maint).
  603    (merge 5641eb9465 jh/partial-clone-doc later to maint).
  604    (merge 2711b1ad5e ab/submodule-relative-url-tests later to maint).
  605    (merge ce528de023 ab/unconditional-free-and-null later to maint).
  606    (merge bbc072f5d8 rs/opt-updates later to maint).
  607    (merge 69d846f053 jk/use-compat-util-in-test-tool later to maint).
  608    (merge 1820703045 js/larger-timestamps later to maint).
  609    (merge c8b35b95e1 sg/t4051-fix later to maint).
  610    (merge 30612cb670 sg/t0020-conversion-fix later to maint).
  611    (merge 15da753709 sg/t7501-thinkofix later to maint).
  612    (merge 79b04f9b60 sg/t3903-missing-fix later to maint).
  613    (merge 2745817028 sg/t3420-autostash-fix later to maint).
  614    (merge 7afb0d6777 sg/test-rebase-editor-fix later to maint).
  615    (merge 6c6ce21baa es/freebsd-iconv-portability later to maint).