| 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. |
| |
| * "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. |
| |
| * "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. |
| |
| * 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. |
| |
| Also contains minor documentation updates and code clean-ups. |