| Git v2.12.2 Release Notes |
| ========================= |
| |
| Fixes since v2.12.1 |
| ------------------- |
| |
| * "git status --porcelain" is supposed to give a stable output, but a |
| few strings were left as translatable by mistake. |
| |
| * "Dumb http" transport used to misparse a nonsense http-alternates |
| response, which has been fixed. |
| |
| * "git diff --quiet" relies on the size field in diff_filespec to be |
| correctly populated, but diff_populate_filespec() helper function |
| made an incorrect short-cut when asked only to populate the size |
| field for paths that need to go through convert_to_git() (e.g. CRLF |
| conversion). |
| |
| * There is no need for Python only to give a few messages to the |
| standard error stream, but we somehow did. |
| |
| * A leak in a codepath to read from a packed object in (rare) cases |
| has been plugged. |
| |
| * "git upload-pack", which is a counter-part of "git fetch", did not |
| report a request for a ref that was not advertised as invalid. |
| This is generally not a problem (because "git fetch" will stop |
| before making such a request), but is the right thing to do. |
| |
| * A "gc.log" file left by a backgrounded "gc --auto" disables further |
| automatic gc; it has been taught to run at least once a day (by |
| default) by ignoring a stale "gc.log" file that is too old. |
| |
| * "git remote rm X", when a branch has remote X configured as the |
| value of its branch.*.remote, tried to remove branch.*.remote and |
| branch.*.merge and failed if either is unset. |
| |
| * A caller of tempfile API that uses stdio interface to write to |
| files may ignore errors while writing, which is detected when |
| tempfile is closed (with a call to ferror()). By that time, the |
| original errno that may have told us what went wrong is likely to |
| be long gone and was overwritten by an irrelevant value. |
| close_tempfile() now resets errno to EIO to make errno at least |
| predictable. |
| |
| * "git show-branch" expected there were only very short branch names |
| in the repository and used a fixed-length buffer to hold them |
| without checking for overflow. |
| |
| * The code that parses header fields in the commit object has been |
| updated for (micro)performance and code hygiene. |
| |
| * A test that creates a confusing branch whose name is HEAD has been |
| corrected not to do so. |
| |
| * "Cc:" on the trailer part does not have to conform to RFC strictly, |
| unlike in the e-mail header. "git send-email" has been updated to |
| ignore anything after '>' when picking addresses, to allow non-address |
| cruft like " # stable 4.4" after the address. |
| |
| * "git push" had a handful of codepaths that could lead to a deadlock |
| when unexpected error happened, which has been fixed. |
| |
| * Code to read submodule.<name>.ignore config did not state the |
| variable name correctly when giving an error message diagnosing |
| misconfiguration. |
| |
| * "git ls-remote" and "git archive --remote" are designed to work |
| without being in a directory under Git's control. However, recent |
| updates revealed that we randomly look into a directory called |
| .git/ without actually doing necessary set-up when working in a |
| repository. Stop doing so. |
| |
| * The code to parse the command line "git grep <patterns>... <rev> |
| [[--] <pathspec>...]" has been cleaned up, and a handful of bugs |
| have been fixed (e.g. we used to check "--" if it is a rev). |
| |
| * The code to parse "git -c VAR=VAL cmd" and set configuration |
| variable for the duration of cmd had two small bugs, which have |
| been fixed. |
| This supersedes jc/config-case-cmdline topic that has been discarded. |
| |
| Also contains various documentation updates and code clean-ups. |