Documentation / RelNotes / 2.22.1.txton commit tree-walk: harden make_traverse_path() length computations (5aa02f9)
   1Git 2.22.1 Release Notes
   2========================
   3
   4Fixes since v2.22
   5-----------------
   6
   7 * A relative pathname given to "git init --template=<path> <repo>"
   8   ought to be relative to the directory "git init" gets invoked in,
   9   but it instead was made relative to the repository, which has been
  10   corrected.
  11
  12 * "git worktree add" used to fail when another worktree connected to
  13   the same repository was corrupt, which has been corrected.
  14
  15 * The ownership rule for the file descriptor to fast-import remote
  16   backend was mixed up, leading to unrelated file descriptor getting
  17   closed, which has been fixed.
  18
  19 * "git update-server-info" used to leave stale packfiles in its
  20   output, which has been corrected.
  21
  22 * The server side support for "git fetch" used to show incorrect
  23   value for the HEAD symbolic ref when the namespace feature is in
  24   use, which has been corrected.
  25
  26 * "git am -i --resolved" segfaulted after trying to see a commit as
  27   if it were a tree, which has been corrected.
  28
  29 * "git bundle verify" needs to see if prerequisite objects exist in
  30   the receiving repository, but the command did not check if we are
  31   in a repository upfront, which has been corrected.
  32
  33 * "git merge --squash" is designed to update the working tree and the
  34   index without creating the commit, and this cannot be countermanded
  35   by adding the "--commit" option; the command now refuses to work
  36   when both options are given.
  37
  38 * The data collected by fsmonitor was not properly written back to
  39   the on-disk index file, breaking t7519 tests occasionally, which
  40   has been corrected.
  41
  42 * Update to Unicode 12.1 width table.
  43
  44 * The command line to invoke a "git cat-file" command from inside
  45   "git p4" was not properly quoted to protect a caret and running a
  46   broken command on Windows, which has been corrected.
  47
  48 * "git request-pull" learned to warn when the ref we ask them to pull
  49   from in the local repository and in the published repository are
  50   different.
  51
  52 * When creating a partial clone, the object filtering criteria is
  53   recorded for the origin of the clone, but this incorrectly used a
  54   hardcoded name "origin" to name that remote; it has been corrected
  55   to honor the "--origin <name>" option.
  56
  57 * "git fetch" into a lazy clone forgot to fetch base objects that are
  58   necessary to complete delta in a thin packfile, which has been
  59   corrected.
  60
  61 * The filter_data used in the list-objects-filter (which manages a
  62   lazily sparse clone repository) did not use the dynamic array API
  63   correctly---'nr' is supposed to point at one past the last element
  64   of the array in use.  This has been corrected.
  65
  66 * The description about slashes in gitignore patterns (used to
  67   indicate things like "anchored to this level only" and "only
  68   matches directories") has been revamped.
  69
  70 * The URL decoding code has been updated to avoid going past the end
  71   of the string while parsing %-<hex>-<hex> sequence.
  72
  73 * The list of for-each like macros used by clang-format has been
  74   updated.
  75
  76 * "git push --atomic" that goes over the transport-helper (namely,
  77   the smart http transport) failed to prevent refs to be pushed when
  78   it can locally tell that one of the ref update will fail without
  79   having to consult the other end, which has been corrected.
  80
  81 * "git clean" silently skipped a path when it cannot lstat() it; now
  82   it gives a warning.
  83
  84 * A codepath that reads from GPG for signed object verification read
  85   past the end of allocated buffer, which has been fixed.
  86
  87 * "git rm" to resolve a conflicted path leaked an internal message
  88   "needs merge" before actually removing the path, which was
  89   confusing.  This has been corrected.
  90
  91 * The "git clone" documentation refers to command line options in its
  92   description in the short form; they have been replaced with long
  93   forms to make them more recognisable.
  94
  95 * The configuration variable rebase.rescheduleFailedExec should be
  96   effective only while running an interactive rebase and should not
  97   affect anything when running an non-interactive one, which was not
  98   the case.  This has been corrected.
  99
 100 * "git submodule foreach" did not protect command line options passed
 101   to the command to be run in each submodule correctly, when the
 102   "--recursive" option was in use.
 103
 104 * Use "Erase in Line" CSI sequence that is already used in the editor
 105   support to clear cruft in the progress output.
 106
 107 * The codepath to compute delta islands used to spew progress output
 108   without giving the callers any way to squelch it, which has been
 109   fixed.
 110
 111 * The code to parse scaled numbers out of configuration files has
 112   been made more robust and also easier to follow.
 113
 114 * An incorrect list of options was cached after command line
 115   completion failed (e.g. trying to complete a command that requires
 116   a repository outside one), which has been corrected.
 117
 118 * "git rebase --abort" used to leave refs/rewritten/ when concluding
 119   "git rebase -r", which has been corrected.
 120
 121 * "git stash show 23" used to work, but no more after getting
 122   rewritten in C; this regression has been corrected.
 123
 124 * "git interpret-trailers" always treated '#' as the comment
 125   character, regardless of core.commentChar setting, which has been
 126   corrected.
 127
 128 * Code clean-up to avoid signed integer overlaps during binary search.
 129
 130 * "git checkout -p" needs to selectively apply a patch in reverse,
 131   which did not work well.
 132
 133 * The commit-graph file is now part of the "files that the runtime
 134   may keep open file descriptors on, all of which would need to be
 135   closed when done with the object store", and the file descriptor to
 136   an existing commit-graph file now is closed before "gc" finalizes a
 137   new instance to replace it.
 138
 139 * Code restructuring during 2.20 period broke fetching tags via
 140   "import" based transports.
 141
 142 * We have been trying out a few language features outside c89; the
 143   coding guidelines document did not talk about them and instead had
 144   a blanket ban against them.
 145
 146
 147Also contains various documentation updates, code clean-ups and minor fixups.