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