| 1 | Git v2.14.2 Release Notes |
| 2 | ========================= |
| 3 | |
| 4 | Fixes 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 | |
| 101 | Also contains various documentation updates and code clean-ups. |
| 102 | |
| 103 | Credits go to joernchen <joernchen@phenoelit.de> for finding the |
| 104 | unsafe constructs in "git cvsserver", and to Jeff King at GitHub for |
| 105 | finding and fixing instances of the same issue in other scripts. |