| 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. |