RelNoteson commit merge-recursive: avoid wrapper function when unnecessary and wasteful (75f3fa7)
   1Git Release Notes
   2=================
   3
   4Backward Compatibility Notes
   5----------------------------
   6
   7 * "git branch -l <foo>" used to be a way to ask a reflog to be
   8   created while creating a new branch, but that is no longer the
   9   case.  It is a short-hand for "git branch --list <foo>" now.
  10
  11 * "git push" into refs/tags/* hierarchy is rejected without getting
  12   forced, but "git fetch" (misguidedly) used the "fast forwarding"
  13   rule used for the refs/heads/* hierarchy; this has been corrected,
  14   which means some fetches of tags that did not fail with older
  15   version of Git will fail without "--force" with this version.
  16
  17
  18Updates since v2.19
  19-------------------
  20
  21UI, Workflows & Features
  22
  23 * Running "git clone" against a project that contain two files with
  24   pathnames that differ only in cases on a case insensitive
  25   filesystem would result in one of the files lost because the
  26   underlying filesystem is incapable of holding both at the same
  27   time.  An attempt is made to detect such a case and warn.
  28
  29 * "git checkout -b newbranch [HEAD]" should not have to do as much as
  30   checking out a commit different from HEAD.  An attempt is made to
  31   optimize this special case.
  32
  33 * "git rev-list --stdin </dev/null" used to be an error; it now shows
  34   no output without an error.  "git rev-list --stdin --default HEAD"
  35   still falls back to the given default when nothing is given on the
  36   standard input.
  37
  38 * Lift code from GitHub to restrict delta computation so that an
  39   object that exists in one fork is not made into a delta against
  40   another object that does not appear in the same forked repository.
  41
  42 * "git format-patch" learned new "--interdiff" and "--range-diff"
  43   options to explain the difference between this version and the
  44   previous attempt in the cover letter (or after the tree-dashes as
  45   a comment).
  46
  47 * "git mailinfo" used in "git am" learned to make a best-effort
  48   recovery of a patch corrupted by MUA that sends text/plain with
  49   format=flawed option.
  50   (merge 3aa4d81f88 rs/mailinfo-format-flowed later to maint).
  51
  52 * The rules used by "git push" and "git fetch" to determine if a ref
  53   can or cannot be updated were inconsistent; specifically, fetching
  54   to update existing tags were allowed even though tags are supposed
  55   to be unmoving anchoring points.  "git fetch" was taught to forbid
  56   updates to existing tags without the "--force" option.
  57
  58
  59Performance, Internal Implementation, Development Support etc.
  60
  61 * When there are too many packfiles in a repository (which is not
  62   recommended), looking up an object in these would require
  63   consulting many pack .idx files; a new mechanism to have a single
  64   file that consolidates all of these .idx files is introduced.
  65
  66 * "git submodule update" is getting rewritten piece-by-piece into C.
  67
  68 * The code for computing history reachability has been shuffled,
  69   obtained a bunch of new tests to cover them, and then being
  70   improved.
  71
  72 * The unpack_trees() API used in checking out a branch and merging
  73   walks one or more trees along with the index.  When the cache-tree
  74   in the index tells us that we are walking a tree whose flattened
  75   contents is known (i.e. matches a span in the index), as linearly
  76   scanning a span in the index is much more efficient than having to
  77   open tree objects recursively and listing their entries, the walk
  78   can be optimized, which has been done.
  79
  80 * When creating a thin pack, which allows objects to be made into a
  81   delta against another object that is not in the resulting pack but
  82   is known to be present on the receiving end, the code learned to
  83   take advantage of the reachability bitmap; this allows the server
  84   to send a delta against a base beyond the "boundary" commit.
  85
  86 * spatch transformation to replace boolean uses of !hashcmp() to
  87   newly introduced oideq() is added, and applied, to regain
  88   performance lost due to support of multiple hash algorithms.
  89
  90 * Fix a bug in which the same path could be registered under multiple
  91   worktree entries if the path was missing (for instance, was removed
  92   manually).  Also, as a convenience, expand the number of cases in
  93   which --force is applicable.
  94
  95
  96Fixes since v2.19
  97-----------------
  98
  99 * "git interpret-trailers" and its underlying machinery had a buggy
 100   code that attempted to ignore patch text after commit log message,
 101   which triggered in various codepaths that will always get the log
 102   message alone and never get such an input.
 103   (merge 66e83d9b41 jk/trailer-fixes later to maint).
 104
 105 * Malformed or crafted data in packstream can make our code attempt
 106   to read or write past the allocated buffer and abort, instead of
 107   reporting an error, which has been fixed.
 108
 109 * Code cleanup, docfix, build fix, etc.
 110   (merge 96a7501aad ts/doc-build-manpage-xsl-quietly later to maint).
 111   (merge b9b07efdb2 tg/conflict-marker-size later to maint).
 112   (merge fa0aeea770 sg/doc-trace-appends later to maint).