Documentation / RelNotes / 2.14.2.txton commit graph: add commit graph design document (ae30d7b)
   1Git v2.14.2 Release Notes
   2=========================
   3
   4Fixes since v2.14.1
   5-------------------
   6
   7 * Because recent Git for Windows do come with a real msgfmt, the
   8   build procedure for git-gui has been updated to use it instead of a
   9   hand-rolled substitute.
  10
  11 * "%C(color name)" in the pretty print format always produced ANSI
  12   color escape codes, which was an early design mistake.  They now
  13   honor the configuration (e.g. "color.ui = never") and also tty-ness
  14   of the output medium.
  15
  16 * The http.{sslkey,sslCert} configuration variables are to be
  17   interpreted as a pathname that honors "~[username]/" prefix, but
  18   weren't, which has been fixed.
  19
  20 * Numerous bugs in walking of reflogs via "log -g" and friends have
  21   been fixed.
  22
  23 * "git commit" when seeing an totally empty message said "you did not
  24   edit the message", which is clearly wrong.  The message has been
  25   corrected.
  26
  27 * When a directory is not readable, "gitweb" fails to build the
  28   project list.  Work this around by skipping such a directory.
  29
  30 * A recently added test for the "credential-cache" helper revealed
  31   that EOF detection done around the time the connection to the cache
  32   daemon is torn down were flaky.  This was fixed by reacting to
  33   ECONNRESET and behaving as if we got an EOF.
  34
  35 * Some versions of GnuPG fail to kill gpg-agent it auto-spawned
  36   and such a left-over agent can interfere with a test.  Work it
  37   around by attempting to kill one before starting a new test.
  38
  39 * "git log --tag=no-such-tag" showed log starting from HEAD, which
  40   has been fixed---it now shows nothing.
  41
  42 * The "tag.pager" configuration variable was useless for those who
  43   actually create tag objects, as it interfered with the use of an
  44   editor.  A new mechanism has been introduced for commands to enable
  45   pager depending on what operation is being carried out to fix this,
  46   and then "git tag -l" is made to run pager by default.
  47
  48 * "git push --recurse-submodules $there HEAD:$target" was not
  49   propagated down to the submodules, but now it is.
  50
  51 * Commands like "git rebase" accepted the --rerere-autoupdate option
  52   from the command line, but did not always use it.  This has been
  53   fixed.
  54
  55 * "git clone --recurse-submodules --quiet" did not pass the quiet
  56   option down to submodules.
  57
  58 * "git am -s" has been taught that some input may end with a trailer
  59   block that is not Signed-off-by: and it should refrain from adding
  60   an extra blank line before adding a new sign-off in such a case.
  61
  62 * "git svn" used with "--localtime" option did not compute the tz
  63   offset for the timestamp in question and instead always used the
  64   current time, which has been corrected.
  65
  66 * Memory leaks in a few error codepaths have been plugged.
  67
  68 * bash 4.4 or newer gave a warning on NUL byte in command
  69   substitution done in "git stash"; this has been squelched.
  70
  71 * "git grep -L" and "git grep --quiet -L" reported different exit
  72   codes; this has been corrected.
  73
  74 * When handshake with a subprocess filter notices that the process
  75   asked for an unknown capability, Git did not report what program
  76   the offending subprocess was running.  This has been corrected.
  77
  78 * "git apply" that is used as a better "patch -p1" failed to apply a
  79   taken from a file with CRLF line endings to a file with CRLF line
  80   endings.  The root cause was because it misused convert_to_git()
  81   that tried to do "safe-crlf" processing by looking at the index
  82   entry at the same path, which is a nonsense---in that mode, "apply"
  83   is not working on the data in (or derived from) the index at all.
  84   This has been fixed.
  85
  86 * Killing "git merge --edit" before the editor returns control left
  87   the repository in a state with MERGE_MSG but without MERGE_HEAD,
  88   which incorrectly tells the subsequent "git commit" that there was
  89   a squash merge in progress.  This has been fixed.
  90
  91 * "git archive" did not work well with pathspecs and the
  92   export-ignore attribute.
  93
  94 * "git cvsserver" no longer is invoked by "git daemon" by default,
  95   as it is old and largely unmaintained.
  96
  97 * Various Perl scripts did not use safe_pipe_capture() instead of
  98   backticks, leaving them susceptible to end-user input.  They have
  99   been corrected.
 100
 101Also contains various documentation updates and code clean-ups.
 102
 103Credits go to joernchen <joernchen@phenoelit.de> for finding the
 104unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
 105finding and fixing instances of the same issue in other scripts.