131 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Git v2.10.1 Release Notes
 | |
| =========================
 | |
| 
 | |
| Fixes since v2.10
 | |
| -----------------
 | |
| 
 | |
|  * Clarify various ways to specify the "revision ranges" in the
 | |
|    documentation.
 | |
| 
 | |
|  * "diff-highlight" script (in contrib/) learned to work better with
 | |
|    "git log -p --graph" output.
 | |
| 
 | |
|  * The test framework left the number of tests and success/failure
 | |
|    count in the t/test-results directory, keyed by the name of the
 | |
|    test script plus the process ID.  The latter however turned out not
 | |
|    to serve any useful purpose.  The process ID part of the filename
 | |
|    has been removed.
 | |
| 
 | |
|  * Having a submodule whose ".git" repository is somehow corrupt
 | |
|    caused a few commands that recurse into submodules loop forever.
 | |
| 
 | |
|  * "git symbolic-ref -d HEAD" happily removes the symbolic ref, but
 | |
|    the resulting repository becomes an invalid one.  Teach the command
 | |
|    to forbid removal of HEAD.
 | |
| 
 | |
|  * A test spawned a short-lived background process, which sometimes
 | |
|    prevented the test directory from getting removed at the end of the
 | |
|    script on some platforms.
 | |
| 
 | |
|  * Update a few tests that used to use GIT_CURL_VERBOSE to use the
 | |
|    newer GIT_TRACE_CURL.
 | |
| 
 | |
|  * Update Japanese translation for "git-gui".
 | |
| 
 | |
|  * "git fetch http::/site/path" did not die correctly and segfaulted
 | |
|    instead.
 | |
| 
 | |
|  * "git commit-tree" stopped reading commit.gpgsign configuration
 | |
|    variable that was meant for Porcelain "git commit" in Git 2.9; we
 | |
|    forgot to update "git gui" to look at the configuration to match
 | |
|    this change.
 | |
| 
 | |
|  * "git log --cherry-pick" used to include merge commits as candidates
 | |
|    to be matched up with other commits, resulting a lot of wasted time.
 | |
|    The patch-id generation logic has been updated to ignore merges to
 | |
|    avoid the wastage.
 | |
| 
 | |
|  * The http transport (with curl-multi option, which is the default
 | |
|    these days) failed to remove curl-easy handle from a curlm session,
 | |
|    which led to unnecessary API failures.
 | |
| 
 | |
|  * "git diff -W" output needs to extend the context backward to
 | |
|    include the header line of the current function and also forward to
 | |
|    include the body of the entire current function up to the header
 | |
|    line of the next one.  This process may have to merge to adjacent
 | |
|    hunks, but the code forgot to do so in some cases.
 | |
| 
 | |
|  * Performance tests done via "t/perf" did not use the same set of
 | |
|    build configuration if the user relied on autoconf generated
 | |
|    configuration.
 | |
| 
 | |
|  * "git format-patch --base=..." feature that was recently added
 | |
|    showed the base commit information after "-- " e-mail signature
 | |
|    line, which turned out to be inconvenient.  The base information
 | |
|    has been moved above the signature line.
 | |
| 
 | |
|  * Even when "git pull --rebase=preserve" (and the underlying "git
 | |
|    rebase --preserve") can complete without creating any new commit
 | |
|    (i.e. fast-forwards), it still insisted on having a usable ident
 | |
|    information (read: user.email is set correctly), which was less
 | |
|    than nice.  As the underlying commands used inside "git rebase"
 | |
|    would fail with a more meaningful error message and advice text
 | |
|    when the bogus ident matters, this extra check was removed.
 | |
| 
 | |
|  * "git gc --aggressive" used to limit the delta-chain length to 250,
 | |
|    which is way too deep for gaining additional space savings and is
 | |
|    detrimental for runtime performance.  The limit has been reduced to
 | |
|    50.
 | |
| 
 | |
|  * Documentation for individual configuration variables to control use
 | |
|    of color (like `color.grep`) said that their default value is
 | |
|    'false', instead of saying their default is taken from `color.ui`.
 | |
|    When we updated the default value for color.ui from 'false' to
 | |
|    'auto' quite a while ago, all of them broke.  This has been
 | |
|    corrected.
 | |
| 
 | |
|  * A shell script example in check-ref-format documentation has been
 | |
|    fixed.
 | |
| 
 | |
|  * "git checkout <word>" does not follow the usual disambiguation
 | |
|    rules when the <word> can be both a rev and a path, to allow
 | |
|    checking out a branch 'foo' in a project that happens to have a
 | |
|    file 'foo' in the working tree without having to disambiguate.
 | |
|    This was poorly documented and the check was incorrect when the
 | |
|    command was run from a subdirectory.
 | |
| 
 | |
|  * Some codepaths in "git diff" used regexec(3) on a buffer that was
 | |
|    mmap(2)ed, which may not have a terminating NUL, leading to a read
 | |
|    beyond the end of the mapped region.  This was fixed by introducing
 | |
|    a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
 | |
|    extension.
 | |
| 
 | |
|  * The procedure to build Git on Mac OS X for Travis CI hardcoded the
 | |
|    internal directory structure we assumed HomeBrew uses, which was a
 | |
|    no-no.  The procedure has been updated to ask HomeBrew things we
 | |
|    need to know to fix this.
 | |
| 
 | |
|  * When "git rebase -i" is given a broken instruction, it told the
 | |
|    user to fix it with "--edit-todo", but didn't say what the step
 | |
|    after that was (i.e. "--continue").
 | |
| 
 | |
|  * "git add --chmod=+x" added recently lacked documentation, which has
 | |
|    been corrected.
 | |
| 
 | |
|  * "git add --chmod=+x <pathspec>" added recently only toggled the
 | |
|    executable bit for paths that are either new or modified. This has
 | |
|    been corrected to flip the executable bit for all paths that match
 | |
|    the given pathspec.
 | |
| 
 | |
|  * "git pack-objects --include-tag" was taught that when we know that
 | |
|    we are sending an object C, we want a tag B that directly points at
 | |
|    C but also a tag A that points at the tag B.  We used to miss the
 | |
|    intermediate tag B in some cases.
 | |
| 
 | |
|  * Documentation around tools to import from CVS was fairly outdated.
 | |
| 
 | |
|  * In the codepath that comes up with the hostname to be used in an
 | |
|    e-mail when the user didn't tell us, we looked at ai_canonname
 | |
|    field in struct addrinfo without making sure it is not NULL first.
 | |
| 
 | |
| Also contains minor documentation updates and code clean-ups.
 |