Documentation / RelNotes / 2.12.2.txton commit Merge tag 'v2.12.4' into maint (e312af1)
   1Git v2.12.2 Release Notes
   2=========================
   3
   4Fixes since v2.12.1
   5-------------------
   6
   7 * "git status --porcelain" is supposed to give a stable output, but a
   8   few strings were left as translatable by mistake.
   9
  10 * "Dumb http" transport used to misparse a nonsense http-alternates
  11   response, which has been fixed.
  12
  13 * "git diff --quiet" relies on the size field in diff_filespec to be
  14   correctly populated, but diff_populate_filespec() helper function
  15   made an incorrect short-cut when asked only to populate the size
  16   field for paths that need to go through convert_to_git() (e.g. CRLF
  17   conversion).
  18
  19 * There is no need for Python only to give a few messages to the
  20   standard error stream, but we somehow did.
  21
  22 * A leak in a codepath to read from a packed object in (rare) cases
  23   has been plugged.
  24
  25 * "git upload-pack", which is a counter-part of "git fetch", did not
  26   report a request for a ref that was not advertised as invalid.
  27   This is generally not a problem (because "git fetch" will stop
  28   before making such a request), but is the right thing to do.
  29
  30 * A "gc.log" file left by a backgrounded "gc --auto" disables further
  31   automatic gc; it has been taught to run at least once a day (by
  32   default) by ignoring a stale "gc.log" file that is too old.
  33
  34 * "git remote rm X", when a branch has remote X configured as the
  35   value of its branch.*.remote, tried to remove branch.*.remote and
  36   branch.*.merge and failed if either is unset.
  37
  38 * A caller of tempfile API that uses stdio interface to write to
  39   files may ignore errors while writing, which is detected when
  40   tempfile is closed (with a call to ferror()).  By that time, the
  41   original errno that may have told us what went wrong is likely to
  42   be long gone and was overwritten by an irrelevant value.
  43   close_tempfile() now resets errno to EIO to make errno at least
  44   predictable.
  45
  46 * "git show-branch" expected there were only very short branch names
  47   in the repository and used a fixed-length buffer to hold them
  48   without checking for overflow.
  49
  50 * The code that parses header fields in the commit object has been
  51   updated for (micro)performance and code hygiene.
  52
  53 * A test that creates a confusing branch whose name is HEAD has been
  54   corrected not to do so.
  55
  56 * "Cc:" on the trailer part does not have to conform to RFC strictly,
  57   unlike in the e-mail header.  "git send-email" has been updated to
  58   ignore anything after '>' when picking addresses, to allow non-address
  59   cruft like " # stable 4.4" after the address.
  60
  61 * "git push" had a handful of codepaths that could lead to a deadlock
  62   when unexpected error happened, which has been fixed.
  63
  64 * Code to read submodule.<name>.ignore config did not state the
  65   variable name correctly when giving an error message diagnosing
  66   misconfiguration.
  67
  68 * "git ls-remote" and "git archive --remote" are designed to work
  69   without being in a directory under Git's control.  However, recent
  70   updates revealed that we randomly look into a directory called
  71   .git/ without actually doing necessary set-up when working in a
  72   repository.  Stop doing so.
  73
  74 * The code to parse the command line "git grep <patterns>... <rev>
  75   [[--] <pathspec>...]" has been cleaned up, and a handful of bugs
  76   have been fixed (e.g. we used to check "--" if it is a rev).
  77
  78 * The code to parse "git -c VAR=VAL cmd" and set configuration
  79   variable for the duration of cmd had two small bugs, which have
  80   been fixed.
  81   This supersedes jc/config-case-cmdline topic that has been discarded.
  82
  83Also contains various documentation updates and code clean-ups.