Documentation / RelNotes / 2.24.0.txton commit Merge branch 'jh/trace2-pretty-output' (93fc876)
   1Git 2.24 Release Notes
   2======================
   3
   4Updates since v2.23
   5-------------------
   6
   7Backward compatibility note
   8
   9 * (no entry yet so far)
  10
  11
  12UI, Workflows & Features
  13
  14 * We now have an active interim maintainer for the Git-Gui part of
  15   the system.  Praise and thank Pratyush Yadav for volunteering.
  16
  17 * The command line parser learned "--end-of-options" notation; the
  18   standard convention for scripters to have hardcoded set of options
  19   first on the command line, and force the command to treat end-user
  20   input as non-options, has been to use "--" as the delimiter, but
  21   that would not work for commands that use "--" as a delimiter
  22   between revs and pathspec.
  23
  24 * A mechanism to affect the default setting for a (related) group of
  25   configuration variables is introduced.
  26
  27 * "git fetch" learned "--set-upstream" option to help those who first
  28   clone from their private fork they intend to push to, add the true
  29   upstream via "git remote add" and then "git fetch" from it.
  30
  31 * Device-tree files learned their own userdiff patterns.
  32   (merge 3c81760bc6 sb/userdiff-dts later to maint).
  33
  34 * "git rebase --rebase-merges" learned to drive different merge
  35   strategies and pass strategy specific options to them.
  36
  37 * A new "pre-merge-commit" hook has been introduced.
  38
  39 * Command line completion updates for "git -c var.name=val" have been
  40   added.
  41
  42 * The lazy clone machinery has been taught that there can be more
  43   than one promisor remote and consult them in order when downloading
  44   missing objects on demand.
  45
  46 * The list-objects-filter API (used to create a sparse/lazy clone)
  47   learned to take a combined filter specification.
  48
  49
  50Performance, Internal Implementation, Development Support etc.
  51
  52 * The code to write commit-graph over given commit object names has
  53   been made a bit more robust.
  54
  55 * The first line of verbose output from each test piece now carries
  56   the test name and number to help scanning with eyeballs.
  57
  58 * Further clean-up of the initialization code.
  59
  60 * xmalloc() used to have a mechanism to ditch memory and address
  61   space resources as the last resort upon seeing an allocation
  62   failure from the underlying malloc(), which made the code complex
  63   and thread-unsafe with dubious benefit, as major memory resource
  64   users already do limit their uses with various other mechanisms.
  65   It has been simplified away.
  66
  67 * Unnecessary full-tree diff in "git log -L" machinery has been
  68   optimized away.
  69
  70 * The http transport lacked some optimization the native transports
  71   learned to avoid unnecessary ref advertisement, which has been
  72   corrected.
  73
  74
  75Fixes since v2.23
  76-----------------
  77
  78 * "git grep --recurse-submodules" that looks at the working tree
  79   files looked at the contents in the index in submodules, instead of
  80   files in the working tree.
  81   (merge 6a289d45c0 mt/grep-submodules-working-tree later to maint).
  82
  83 * Codepaths to walk tree objects have been audited for integer
  84   overflows and hardened.
  85   (merge 5aa02f9868 jk/tree-walk-overflow later to maint).
  86
  87 * "git pack-refs" can lose refs that are created while running, which
  88   is getting corrected.
  89   (merge a613d4f817 sc/pack-refs-deletion-racefix later to maint).
  90
  91 * "git checkout" and "git restore" to re-populate the index from a
  92   tree-ish (typically HEAD) did not work correctly for a path that
  93   was removed and then added again with the intent-to-add bit, when
  94   the corresponding working tree file was empty.  This has been
  95   corrected.
  96
  97 * Compilation fix.
  98   (merge 70597e8386 rs/nedalloc-fixlets later to maint).
  99
 100 * "git gui" learned to call the clean-up procedure before exiting.
 101   (merge 0d88f3d2c5 py/git-gui-do-quit later to maint).
 102
 103 * We promoted the "indent heuristics" that decides where to split
 104   diff hunks from experimental to the default a few years ago, but
 105   some stale documentation still marked it as experimental, which has
 106   been corrected.
 107   (merge 64e5e1fba1 sg/diff-indent-heuristic-non-experimental later to maint).
 108
 109 * Fix a mismerge that happened in 2.22 timeframe.
 110   (merge acb7da05ac en/checkout-mismerge-fix later to maint).
 111
 112 * "git archive" recorded incorrect length in extended pax header in
 113   some corner cases, which has been corrected.
 114   (merge 71d41ff651 rs/pax-extended-header-length-fix later to maint).
 115
 116 * On-demand object fetching in lazy clone incorrectly tried to fetch
 117   commits from submodule projects, while still working in the
 118   superproject, which has been corrected.
 119   (merge a63694f523 jt/diff-lazy-fetch-submodule-fix later to maint).
 120
 121 * Prepare get_short_oid() codepath to be thread-safe.
 122   (merge 7cfcb16b0e rs/sort-oid-array-thread-safe later to maint).
 123
 124 * "for-each-ref" and friends that show refs did not protect themselves
 125   against ancient tags that did not record tagger names when asked to
 126   show "%(taggername)", which have been corrected.
 127   (merge 8b3f33ef11 mp/for-each-ref-missing-name-or-email later to maint).
 128
 129 * The "git am" based backend of "git rebase" ignored the result of
 130   updating ".gitattributes" done in one step when replaying
 131   subsequent steps.
 132   (merge 2c65d90f75 bc/reread-attributes-during-rebase later to maint).
 133
 134 * Tell cURL library to use the same malloc() implementation, with the
 135   xmalloc() wrapper, as the rest of the system, for consistency.
 136   (merge 93b980e58f cb/curl-use-xmalloc later to maint).
 137
 138 * Other code cleanup, docfix, build fix, etc.
 139   (merge d1387d3895 en/fast-import-merge-doc later to maint).
 140   (merge 1c24a54ea4 bm/repository-layout-typofix later to maint).
 141   (merge 415b770b88 ds/midx-expire-repack later to maint).
 142   (merge 19800bdc3f nd/diff-parseopt later to maint).
 143   (merge 58166c2e9d tg/t0021-racefix later to maint).