2016-07-29 02:28:32 +08:00
|
|
|
Git v2.9.3 Release Notes
|
|
|
|
========================
|
|
|
|
|
|
|
|
Fixes since v2.9.2
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* A helper function that takes the contents of a commit object and
|
|
|
|
finds its subject line did not ignore leading blank lines, as is
|
|
|
|
commonly done by other codepaths. Make it ignore leading blank
|
|
|
|
lines to match.
|
|
|
|
|
|
|
|
* Git does not know what the contents in the index should be for a
|
|
|
|
path added with "git add -N" yet, so "git grep --cached" should not
|
|
|
|
show hits (or show lack of hits, with -L) in such a path, but that
|
|
|
|
logic does not apply to "git grep", i.e. searching in the working
|
|
|
|
tree files. But we did so by mistake, which has been corrected.
|
|
|
|
|
|
|
|
* "git rebase -i --autostash" did not restore the auto-stashed change
|
|
|
|
when the operation was aborted.
|
|
|
|
|
|
|
|
* "git commit --amend --allow-empty-message -S" for a commit without
|
|
|
|
any message body could have misidentified where the header of the
|
|
|
|
commit object ends.
|
|
|
|
|
|
|
|
* More mark-up updates to typeset strings that are expected to
|
|
|
|
literally typed by the end user in fixed-width font.
|
|
|
|
|
|
|
|
* For a long time, we carried an in-code comment that said our
|
|
|
|
colored output would work only when we use fprintf/fputs on
|
|
|
|
Windows, which no longer is the case for the past few years.
|
|
|
|
|
|
|
|
* "gc.autoPackLimit" when set to 1 should not trigger a repacking
|
|
|
|
when there is only one pack, but the code counted poorly and did
|
|
|
|
so.
|
|
|
|
|
|
|
|
* One part of "git am" had an oddball helper function that called
|
|
|
|
stuff from outside "his" as opposed to calling what we have "ours",
|
|
|
|
which was not gender-neutral and also inconsistent with the rest of
|
|
|
|
the system where outside stuff is usuall called "theirs" in
|
|
|
|
contrast to "ours".
|
|
|
|
|
|
|
|
* The test framework learned a new helper test_match_signal to
|
|
|
|
check an exit code from getting killed by an expected signal.
|
|
|
|
|
|
|
|
* "git blame -M" missed a single line that was moved within the file.
|
|
|
|
|
|
|
|
* Fix recently introduced codepaths that are involved in parallel
|
|
|
|
submodule operations, which gave up on reading too early, and
|
|
|
|
could have wasted CPU while attempting to write under a corner
|
|
|
|
case condition.
|
|
|
|
|
|
|
|
* "git grep -i" has been taught to fold case in non-ascii locales
|
|
|
|
correctly.
|
|
|
|
|
|
|
|
* A test that unconditionally used "mktemp" learned that the command
|
|
|
|
is not necessarily available everywhere.
|
|
|
|
|
2016-08-09 05:22:36 +08:00
|
|
|
* "git blame file" allowed the lineage of lines in the uncommitted,
|
|
|
|
unadded contents of "file" to be inspected, but it refused when
|
|
|
|
"file" did not appear in the current commit. When "file" was
|
|
|
|
created by renaming an existing file (but the change has not been
|
|
|
|
committed), this restriction was unnecessarily tight.
|
|
|
|
|
|
|
|
* "git add -N dir/file && git write-tree" produced an incorrect tree
|
|
|
|
when there are other paths in the same directory that sorts after
|
|
|
|
"file".
|
|
|
|
|
|
|
|
* "git fetch http://user:pass@host/repo..." scrubbed the userinfo
|
|
|
|
part, but "git push" didn't.
|
|
|
|
|
|
|
|
* An age old bug that caused "git diff --ignore-space-at-eol"
|
|
|
|
misbehave has been fixed.
|
|
|
|
|
|
|
|
* "git notes merge" had a code to see if a path exists (and fails if
|
|
|
|
it does) and then open the path for writing (when it doesn't).
|
|
|
|
Replace it with open with O_EXCL.
|
|
|
|
|
|
|
|
* "git pack-objects" and "git index-pack" mostly operate with off_t
|
|
|
|
when talking about the offset of objects in a packfile, but there
|
|
|
|
were a handful of places that used "unsigned long" to hold that
|
|
|
|
value, leading to an unintended truncation.
|
|
|
|
|
|
|
|
* Recent update to "git daemon" tries to enable the socket-level
|
|
|
|
KEEPALIVE, but when it is spawned via inetd, the standard input
|
|
|
|
file descriptor may not necessarily be connected to a socket.
|
|
|
|
Suppress an ENOTSOCK error from setsockopt().
|
|
|
|
|
|
|
|
* Recent FreeBSD stopped making perl available at /usr/bin/perl;
|
|
|
|
switch the default the built-in path to /usr/local/bin/perl on not
|
|
|
|
too ancient FreeBSD releases.
|
|
|
|
|
2016-08-11 02:56:56 +08:00
|
|
|
* "git status" learned to suggest "merge --abort" during a conflicted
|
|
|
|
merge, just like it already suggests "rebase --abort" during a
|
|
|
|
conflicted rebase.
|
|
|
|
|
|
|
|
* The .c/.h sources are marked as such in our .gitattributes file so
|
|
|
|
that "git diff -W" and friends would work better.
|
|
|
|
|
|
|
|
* Existing autoconf generated test for the need to link with pthread
|
|
|
|
library did not check all the functions from pthread libraries;
|
|
|
|
recent FreeBSD has some functions in libc but not others, and we
|
|
|
|
mistakenly thought linking with libc is enough when it is not.
|
|
|
|
|
|
|
|
* Allow http daemon tests in Travis CI tests.
|
|
|
|
|
|
|
|
* Users of the parse_options_concat() API function need to allocate
|
|
|
|
extra slots in advance and fill them with OPT_END() when they want
|
|
|
|
to decide the set of supported options dynamically, which makes the
|
|
|
|
code error-prone and hard to read. This has been corrected by tweaking
|
|
|
|
the API to allocate and return a new copy of "struct option" array.
|
|
|
|
|
|
|
|
* The use of strbuf in "git rm" to build filename to remove was a bit
|
|
|
|
suboptimal, which has been fixed.
|
|
|
|
|
|
|
|
* "git commit --help" said "--no-verify" is only about skipping the
|
|
|
|
pre-commit hook, and failed to say that it also skipped the
|
|
|
|
commit-msg hook.
|
|
|
|
|
|
|
|
* "git merge" in Git v2.9 was taught to forbid merging an unrelated
|
|
|
|
lines of history by default, but that is exactly the kind of thing
|
|
|
|
the "--rejoin" mode of "git subtree" (in contrib/) wants to do.
|
|
|
|
"git subtree" has been taught to use the "--allow-unrelated-histories"
|
|
|
|
option to override the default.
|
|
|
|
|
|
|
|
* The build procedure for "git persistent-https" helper (in contrib/)
|
|
|
|
has been updated so that it can be built with more recent versions
|
|
|
|
of Go.
|
|
|
|
|
|
|
|
* There is an optimization used in "git diff $treeA $treeB" to borrow
|
|
|
|
an already checked-out copy in the working tree when it is known to
|
|
|
|
be the same as the blob being compared, expecting that open/mmap of
|
|
|
|
such a file is faster than reading it from the object store, which
|
|
|
|
involves inflating and applying delta. This however kicked in even
|
|
|
|
when the checked-out copy needs to go through the convert-to-git
|
|
|
|
conversion (including the clean filter), which defeats the whole
|
|
|
|
point of the optimization. The optimization has been disabled when
|
|
|
|
the conversion is necessary.
|
|
|
|
|
|
|
|
* "git -c grep.patternType=extended log --basic-regexp" misbehaved
|
|
|
|
because the internal API to access the grep machinery was not
|
|
|
|
designed well.
|
|
|
|
|
|
|
|
* Windows port was failing some tests in t4130, due to the lack of
|
|
|
|
inum in the returned values by its lstat(2) emulation.
|
|
|
|
|
|
|
|
* The characters in the label shown for tags/refs for commits in
|
|
|
|
"gitweb" output are now properly escaped for proper HTML output.
|
|
|
|
|
|
|
|
* FreeBSD can lie when asked mtime of a directory, which made the
|
|
|
|
untracked cache code to fall back to a slow-path, which in turn
|
|
|
|
caused tests in t7063 to fail because it wanted to verify the
|
|
|
|
behaviour of the fast-path.
|
|
|
|
|
|
|
|
* Squelch compiler warnings for netmalloc (in compat/) library.
|
|
|
|
|
|
|
|
* The API documentation for hashmap was unclear if hashmap_entry
|
|
|
|
can be safely discarded without any other consideration. State
|
|
|
|
that it is safe to do so.
|
|
|
|
|
2016-08-13 00:17:51 +08:00
|
|
|
* Not-so-recent rewrite of "git am" that started making internal
|
|
|
|
calls into the commit machinery had an unintended regression, in
|
|
|
|
that no matter how many seconds it took to apply many patches, the
|
|
|
|
resulting committer timestamp for the resulting commits were all
|
|
|
|
the same.
|
|
|
|
|
|
|
|
* "git difftool <paths>..." started in a subdirectory failed to
|
|
|
|
interpret the paths relative to that directory, which has been
|
|
|
|
fixed.
|
|
|
|
|
2016-07-29 02:28:32 +08:00
|
|
|
Also contains minor documentation updates and code clean-ups.
|