| 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. |