| Git v2.7.1 Release Notes | |
| ======================== | |
| Fixes since v2.7 | |
| ---------------- | |
| * An earlier change in 2.5.x-era broke users' hooks and aliases by | |
| exporting GIT_WORK_TREE to point at the root of the working tree, | |
| interfering when they tried to use a different working tree without | |
| setting GIT_WORK_TREE environment themselves. | |
| * The "exclude_list" structure has the usual "alloc, nr" pair of | |
| fields to be used by ALLOC_GROW(), but clear_pattern_list() forgot | |
| to reset 'alloc' to 0 when it cleared 'nr' to discard the managed | |
| array. | |
| * "git send-email" was confused by escaped quotes stored in the alias | |
| files saved by "mutt", which has been corrected. | |
| * A few unportable C construct have been spotted by clang compiler | |
| and have been fixed. | |
| * The documentation has been updated to hint the connection between | |
| the '--signoff' option and DCO. | |
| * "git reflog" incorrectly assumed that all objects that used to be | |
| at the tip of a ref must be commits, which caused it to segfault. | |
| * The ignore mechanism saw a few regressions around untracked file | |
| listing and sparse checkout selection areas in 2.7.0; the change | |
| that is responsible for the regression has been reverted. | |
| * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR | |
| (e.g. COMMIT_EDITMSG) that is meant to be left after the command is | |
| done. This however did not work well if the repository is set to | |
| be shared with core.sharedRepository and the umask of the previous | |
| user is tighter. They have been made to work better by calling | |
| unlink(2) and retrying after fopen(3) fails with EPERM. | |
| * Asking gitweb for a nonexistent commit left a warning in the server | |
| log. | |
| * "git rebase", unlike all other callers of "gc --auto", did not | |
| ignore the exit code from "gc --auto". | |
| * Many codepaths that run "gc --auto" before exiting kept packfiles | |
| mapped and left the file descriptors to them open, which was not | |
| friendly to systems that cannot remove files that are open. They | |
| now close the packs before doing so. | |
| * A recent optimization to filter-branch in v2.7.0 introduced a | |
| regression when --prune-empty filter is used, which has been | |
| corrected. | |
| * The description for SANITY prerequisite the test suite uses has | |
| been clarified both in the comment and in the implementation. | |
| * "git tag" started listing a tag "foo" as "tags/foo" when a branch | |
| named "foo" exists in the same repository; remove this unnecessary | |
| disambiguation, which is a regression introduced in v2.7.0. | |
| * The way "git svn" uses auth parameter was broken by Subversion | |
| 1.9.0 and later. | |
| * The "split" subcommand of "git subtree" (in contrib/) incorrectly | |
| skipped merges when it shouldn't, which was corrected. | |
| * A few options of "git diff" did not work well when the command was | |
| run from a subdirectory. | |
| * dirname() emulation has been added, as Msys2 lacks it. | |
| * The underlying machinery used by "ls-files -o" and other commands | |
| have been taught not to create empty submodule ref cache for a | |
| directory that is not a submodule. This removes a ton of wasted | |
| CPU cycles. | |
| * Drop a few old "todo" items by deciding that the change one of them | |
| suggests is not such a good idea, and doing the change the other | |
| one suggested to do. | |
| * Documentation for "git fetch --depth" has been updated for clarity. | |
| * The command line completion learned a handful of additional options | |
| and command specific syntax. | |
| Also includes a handful of documentation and test updates. |