112 lines
4.8 KiB
Text
112 lines
4.8 KiB
Text
|
Git v2.6.3 Release Notes
|
||
|
========================
|
||
|
|
||
|
Fixes since v2.6.2
|
||
|
------------------
|
||
|
|
||
|
* The error message from "git blame --contents --reverse" incorrectly
|
||
|
talked about "--contents --children".
|
||
|
|
||
|
* "git merge-file" tried to signal how many conflicts it found, which
|
||
|
obviously would not work well when there are too many of them.
|
||
|
|
||
|
* The name-hash subsystem that is used to cope with case insensitive
|
||
|
filesystems keeps track of directories and their on-filesystem
|
||
|
cases for all the paths in the index by holding a pointer to a
|
||
|
randomly chosen cache entry that is inside the directory (for its
|
||
|
ce->ce_name component). This pointer was not updated even when the
|
||
|
cache entry was removed from the index, leading to use after free.
|
||
|
This was fixed by recording the path for each directory instead of
|
||
|
borrowing cache entries and restructuring the API somewhat.
|
||
|
|
||
|
* When the "git am" command was reimplemented in C, "git am -3" had a
|
||
|
small regression where it is aborted in its error handling codepath
|
||
|
when underlying merge-recursive failed in some ways.
|
||
|
|
||
|
* The synopsis text and the usage string of subcommands that read
|
||
|
list of things from the standard input are often shown as if they
|
||
|
only take input from a file on a filesystem, which was misleading.
|
||
|
|
||
|
* A couple of commands still showed "[options]" in their usage string
|
||
|
to note where options should come on their command line, but we
|
||
|
spell that "[<options>]" in most places these days.
|
||
|
|
||
|
* The submodule code has been taught to work better with separate
|
||
|
work trees created via "git worktree add".
|
||
|
|
||
|
* When "git gc --auto" is backgrounded, its diagnosis message is
|
||
|
lost. It now is saved to a file in $GIT_DIR and is shown next time
|
||
|
the "gc --auto" is run.
|
||
|
|
||
|
* Work around "git p4" failing when the P4 depot records the contents
|
||
|
in UTF-16 without UTF-16 BOM.
|
||
|
|
||
|
* Recent update to "rebase -i" that tries to sanity check the edited
|
||
|
insn sheet before it uses it has become too picky on Windows where
|
||
|
CRLF left by the editor is turned into a trailing CR on the line
|
||
|
read via the "read" built-in command.
|
||
|
|
||
|
* "git clone --dissociate" runs a big "git repack" process at the
|
||
|
end, and it helps to close file descriptors that are open on the
|
||
|
packs and their idx files before doing so on filesystems that
|
||
|
cannot remove a file that is still open.
|
||
|
|
||
|
* Correct "git p4 --detect-labels" so that it does not fail to create
|
||
|
a tag that points at a commit that is also being imported.
|
||
|
|
||
|
* The internal stripspace() function has been moved to where it
|
||
|
logically belongs to, i.e. strbuf API, and the command line parser
|
||
|
of "git stripspace" has been updated to use the parse_options API.
|
||
|
|
||
|
* Prepare for Git on-disk repository representation to undergo
|
||
|
backward incompatible changes by introducing a new repository
|
||
|
format version "1", with an extension mechanism.
|
||
|
|
||
|
* "git gc" used to barf when a symbolic ref has gone dangling
|
||
|
(e.g. the branch that used to be your upstream's default when you
|
||
|
cloned from it is now gone, and you did "fetch --prune").
|
||
|
|
||
|
* The normalize_ceiling_entry() function does not muck with the end
|
||
|
of the path it accepts, and the real world callers do rely on that,
|
||
|
but a test insisted that the function drops a trailing slash.
|
||
|
|
||
|
* "git gc" is safe to run anytime only because it has the built-in
|
||
|
grace period to protect young objects. In order to run with no
|
||
|
grace period, the user must make sure that the repository is
|
||
|
quiescent.
|
||
|
|
||
|
* A recent "filter-branch --msg-filter" broke skipping of the commit
|
||
|
object header, which is fixed.
|
||
|
|
||
|
* "git --literal-pathspecs add -u/-A" without any command line
|
||
|
argument misbehaved ever since Git 2.0.
|
||
|
|
||
|
* Merging a branch that removes a path and another that changes the
|
||
|
mode bits on the same path should have conflicted at the path, but
|
||
|
it didn't and silently favoured the removal.
|
||
|
|
||
|
* "git imap-send" did not compile well with older version of cURL library.
|
||
|
|
||
|
* The linkage order of libraries was wrong in places around libcurl.
|
||
|
|
||
|
* It was not possible to use a repository-lookalike created by "git
|
||
|
worktree add" as a local source of "git clone".
|
||
|
|
||
|
* When "git send-email" wanted to talk over Net::SMTP::SSL,
|
||
|
Net::Cmd::datasend() did not like to be fed too many bytes at the
|
||
|
same time and failed to send messages. Send the payload one line
|
||
|
at a time to work around the problem.
|
||
|
|
||
|
* We peek objects from submodule's object store by linking it to the
|
||
|
list of alternate object databases, but the code to do so forgot to
|
||
|
correctly initialize the list.
|
||
|
|
||
|
* "git status --branch --short" accessed beyond the constant string
|
||
|
"HEAD", which has been corrected.
|
||
|
|
||
|
* "git daemon" uses "run_command()" without "finish_command()", so it
|
||
|
needs to release resources itself, which it forgot to do.
|
||
|
|
||
|
Also contains typofixes, documentation updates and trivial code
|
||
|
clean-ups.
|