| Git v2.14.2 Release Notes | 
 | ========================= | 
 |  | 
 | Fixes since v2.14.1 | 
 | ------------------- | 
 |  | 
 |  * Because recent Git for Windows do come with a real msgfmt, the | 
 |    build procedure for git-gui has been updated to use it instead of a | 
 |    hand-rolled substitute. | 
 |  | 
 |  * "%C(color name)" in the pretty print format always produced ANSI | 
 |    color escape codes, which was an early design mistake.  They now | 
 |    honor the configuration (e.g. "color.ui = never") and also tty-ness | 
 |    of the output medium. | 
 |  | 
 |  * The http.{sslkey,sslCert} configuration variables are to be | 
 |    interpreted as a pathname that honors "~[username]/" prefix, but | 
 |    weren't, which has been fixed. | 
 |  | 
 |  * Numerous bugs in walking of reflogs via "log -g" and friends have | 
 |    been fixed. | 
 |  | 
 |  * "git commit" when seeing an totally empty message said "you did not | 
 |    edit the message", which is clearly wrong.  The message has been | 
 |    corrected. | 
 |  | 
 |  * When a directory is not readable, "gitweb" fails to build the | 
 |    project list.  Work this around by skipping such a directory. | 
 |  | 
 |  * A recently added test for the "credential-cache" helper revealed | 
 |    that EOF detection done around the time the connection to the cache | 
 |    daemon is torn down were flaky.  This was fixed by reacting to | 
 |    ECONNRESET and behaving as if we got an EOF. | 
 |  | 
 |  * Some versions of GnuPG fail to kill gpg-agent it auto-spawned | 
 |    and such a left-over agent can interfere with a test.  Work it | 
 |    around by attempting to kill one before starting a new test. | 
 |  | 
 |  * "git log --tag=no-such-tag" showed log starting from HEAD, which | 
 |    has been fixed---it now shows nothing. | 
 |  | 
 |  * The "tag.pager" configuration variable was useless for those who | 
 |    actually create tag objects, as it interfered with the use of an | 
 |    editor.  A new mechanism has been introduced for commands to enable | 
 |    pager depending on what operation is being carried out to fix this, | 
 |    and then "git tag -l" is made to run pager by default. | 
 |  | 
 |  * "git push --recurse-submodules $there HEAD:$target" was not | 
 |    propagated down to the submodules, but now it is. | 
 |  | 
 |  * Commands like "git rebase" accepted the --rerere-autoupdate option | 
 |    from the command line, but did not always use it.  This has been | 
 |    fixed. | 
 |  | 
 |  * "git clone --recurse-submodules --quiet" did not pass the quiet | 
 |    option down to submodules. | 
 |  | 
 |  * "git am -s" has been taught that some input may end with a trailer | 
 |    block that is not Signed-off-by: and it should refrain from adding | 
 |    an extra blank line before adding a new sign-off in such a case. | 
 |  | 
 |  * "git svn" used with "--localtime" option did not compute the tz | 
 |    offset for the timestamp in question and instead always used the | 
 |    current time, which has been corrected. | 
 |  | 
 |  * Memory leaks in a few error codepaths have been plugged. | 
 |  | 
 |  * bash 4.4 or newer gave a warning on NUL byte in command | 
 |    substitution done in "git stash"; this has been squelched. | 
 |  | 
 |  * "git grep -L" and "git grep --quiet -L" reported different exit | 
 |    codes; this has been corrected. | 
 |  | 
 |  * When handshake with a subprocess filter notices that the process | 
 |    asked for an unknown capability, Git did not report what program | 
 |    the offending subprocess was running.  This has been corrected. | 
 |  | 
 |  * "git apply" that is used as a better "patch -p1" failed to apply a | 
 |    taken from a file with CRLF line endings to a file with CRLF line | 
 |    endings.  The root cause was because it misused convert_to_git() | 
 |    that tried to do "safe-crlf" processing by looking at the index | 
 |    entry at the same path, which is a nonsense---in that mode, "apply" | 
 |    is not working on the data in (or derived from) the index at all. | 
 |    This has been fixed. | 
 |  | 
 |  * Killing "git merge --edit" before the editor returns control left | 
 |    the repository in a state with MERGE_MSG but without MERGE_HEAD, | 
 |    which incorrectly tells the subsequent "git commit" that there was | 
 |    a squash merge in progress.  This has been fixed. | 
 |  | 
 |  * "git archive" did not work well with pathspecs and the | 
 |    export-ignore attribute. | 
 |  | 
 |  * "git cvsserver" no longer is invoked by "git daemon" by default, | 
 |    as it is old and largely unmaintained. | 
 |  | 
 |  * Various Perl scripts did not use safe_pipe_capture() instead of | 
 |    backticks, leaving them susceptible to end-user input.  They have | 
 |    been corrected. | 
 |  | 
 | Also contains various documentation updates and code clean-ups. | 
 |  | 
 | Credits go to joernchen <joernchen@phenoelit.de> for finding the | 
 | unsafe constructs in "git cvsserver", and to Jeff King at GitHub for | 
 | finding and fixing instances of the same issue in other scripts. |