1Git v2.10.1 Release Notes 2========================= 3 4Fixes since v2.10 5----------------- 6 7 * Clarify various ways to specify the "revision ranges" in the 8 documentation. 9 10 * "diff-highlight" script (in contrib/) learned to work better with 11 "git log -p --graph" output. 12 13 * The test framework left the number of tests and success/failure 14 count in the t/test-results directory, keyed by the name of the 15 test script plus the process ID. The latter however turned out not 16 to serve any useful purpose. The process ID part of the filename 17 has been removed. 18 19 * Having a submodule whose ".git" repository is somehow corrupt 20 caused a few commands that recurse into submodules loop forever. 21 22 * "git symbolic-ref -d HEAD" happily removes the symbolic ref, but 23 the resulting repository becomes an invalid one. Teach the command 24 to forbid removal of HEAD. 25 26 * A test spawned a short-lived background process, which sometimes 27 prevented the test directory from getting removed at the end of the 28 script on some platforms. 29 30 * Update a few tests that used to use GIT_CURL_VERBOSE to use the 31 newer GIT_TRACE_CURL. 32 33 * Update Japanese translation for "git-gui". 34 35 * "git fetch http::/site/path" did not die correctly and segfaulted 36 instead. 37 38 * "git commit-tree" stopped reading commit.gpgsign configuration 39 variable that was meant for Porcelain "git commit" in Git 2.9; we 40 forgot to update "git gui" to look at the configuration to match 41 this change. 42 43 * "git log --cherry-pick" used to include merge commits as candidates 44 to be matched up with other commits, resulting a lot of wasted time. 45 The patch-id generation logic has been updated to ignore merges to 46 avoid the wastage. 47 48 * The http transport (with curl-multi option, which is the default 49 these days) failed to remove curl-easy handle from a curlm session, 50 which led to unnecessary API failures. 51 52 * "git diff -W" output needs to extend the context backward to 53 include the header line of the current function and also forward to 54 include the body of the entire current function up to the header 55 line of the next one. This process may have to merge to adjacent 56 hunks, but the code forgot to do so in some cases. 57 58 * Performance tests done via "t/perf" did not use the same set of 59 build configuration if the user relied on autoconf generated 60 configuration. 61 62 * "git format-patch --base=..." feature that was recently added 63 showed the base commit information after "-- " e-mail signature 64 line, which turned out to be inconvenient. The base information 65 has been moved above the signature line. 66 67 * Even when "git pull --rebase=preserve" (and the underlying "git 68 rebase --preserve") can complete without creating any new commit 69 (i.e. fast-forwards), it still insisted on having a usable ident 70 information (read: user.email is set correctly), which was less 71 than nice. As the underlying commands used inside "git rebase" 72 would fail with a more meaningful error message and advice text 73 when the bogus ident matters, this extra check was removed. 74 75 * "git gc --aggressive" used to limit the delta-chain length to 250, 76 which is way too deep for gaining additional space savings and is 77 detrimental for runtime performance. The limit has been reduced to 78 50. 79 80 * Documentation for individual configuration variables to control use 81 of color (like `color.grep`) said that their default value is 82 'false', instead of saying their default is taken from `color.ui`. 83 When we updated the default value for color.ui from 'false' to 84 'auto' quite a while ago, all of them broke. This has been 85 corrected. 86 87 * A shell script example in check-ref-format documentation has been 88 fixed. 89 90 * "git checkout <word>" does not follow the usual disambiguation 91 rules when the <word> can be both a rev and a path, to allow 92 checking out a branch 'foo' in a project that happens to have a 93 file 'foo' in the working tree without having to disambiguate. 94 This was poorly documented and the check was incorrect when the 95 command was run from a subdirectory. 96 97 * Some codepaths in "git diff" used regexec(3) on a buffer that was 98 mmap(2)ed, which may not have a terminating NUL, leading to a read 99 beyond the end of the mapped region. This was fixed by introducing 100 a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND 101 extension. 102 103 * The procedure to build Git on Mac OS X for Travis CI hardcoded the 104 internal directory structure we assumed HomeBrew uses, which was a 105 no-no. The procedure has been updated to ask HomeBrew things we 106 need to know to fix this. 107 108 * When "git rebase -i" is given a broken instruction, it told the 109 user to fix it with "--edit-todo", but didn't say what the step 110 after that was (i.e. "--continue"). 111 112 * "git add --chmod=+x" added recently lacked documentation, which has 113 been corrected. 114 115 * "git add --chmod=+x <pathspec>" added recently only toggled the 116 executable bit for paths that are either new or modified. This has 117 been corrected to flip the executable bit for all paths that match 118 the given pathspec. 119 120 * "git pack-objects --include-tag" was taught that when we know that 121 we are sending an object C, we want a tag B that directly points at 122 C but also a tag A that points at the tag B. We used to miss the 123 intermediate tag B in some cases. 124 125 * Documentation around tools to import from CVS was fairly outdated. 126 127 * In the codepath that comes up with the hostname to be used in an 128 e-mail when the user didn't tell us, we looked at ai_canonname 129 field in struct addrinfo without making sure it is not NULL first. 130 131Also contains minor documentation updates and code clean-ups.