84 lines
3.5 KiB
Text
84 lines
3.5 KiB
Text
|
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.
|