170 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
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.
 |