| 1 | Git v2.7.1 Release Notes |
| 2 | ======================== |
| 3 | |
| 4 | Fixes since v2.7 |
| 5 | ---------------- |
| 6 | |
| 7 | * An earlier change in 2.5.x-era broke users' hooks and aliases by |
| 8 | exporting GIT_WORK_TREE to point at the root of the working tree, |
| 9 | interfering when they tried to use a different working tree without |
| 10 | setting GIT_WORK_TREE environment themselves. |
| 11 | |
| 12 | * The "exclude_list" structure has the usual "alloc, nr" pair of |
| 13 | fields to be used by ALLOC_GROW(), but clear_pattern_list() forgot |
| 14 | to reset 'alloc' to 0 when it cleared 'nr' to discard the managed |
| 15 | array. |
| 16 | |
| 17 | * "git send-email" was confused by escaped quotes stored in the alias |
| 18 | files saved by "mutt", which has been corrected. |
| 19 | |
| 20 | * A few unportable C construct have been spotted by clang compiler |
| 21 | and have been fixed. |
| 22 | |
| 23 | * The documentation has been updated to hint the connection between |
| 24 | the '--signoff' option and DCO. |
| 25 | |
| 26 | * "git reflog" incorrectly assumed that all objects that used to be |
| 27 | at the tip of a ref must be commits, which caused it to segfault. |
| 28 | |
| 29 | * The ignore mechanism saw a few regressions around untracked file |
| 30 | listing and sparse checkout selection areas in 2.7.0; the change |
| 31 | that is responsible for the regression has been reverted. |
| 32 | |
| 33 | * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR |
| 34 | (e.g. COMMIT_EDITMSG) that is meant to be left after the command is |
| 35 | done. This however did not work well if the repository is set to |
| 36 | be shared with core.sharedRepository and the umask of the previous |
| 37 | user is tighter. They have been made to work better by calling |
| 38 | unlink(2) and retrying after fopen(3) fails with EPERM. |
| 39 | |
| 40 | * Asking gitweb for a nonexistent commit left a warning in the server |
| 41 | log. |
| 42 | |
| 43 | * "git rebase", unlike all other callers of "gc --auto", did not |
| 44 | ignore the exit code from "gc --auto". |
| 45 | |
| 46 | * Many codepaths that run "gc --auto" before exiting kept packfiles |
| 47 | mapped and left the file descriptors to them open, which was not |
| 48 | friendly to systems that cannot remove files that are open. They |
| 49 | now close the packs before doing so. |
| 50 | |
| 51 | * A recent optimization to filter-branch in v2.7.0 introduced a |
| 52 | regression when --prune-empty filter is used, which has been |
| 53 | corrected. |
| 54 | |
| 55 | * The description for SANITY prerequisite the test suite uses has |
| 56 | been clarified both in the comment and in the implementation. |
| 57 | |
| 58 | * "git tag" started listing a tag "foo" as "tags/foo" when a branch |
| 59 | named "foo" exists in the same repository; remove this unnecessary |
| 60 | disambiguation, which is a regression introduced in v2.7.0. |
| 61 | |
| 62 | * The way "git svn" uses auth parameter was broken by Subversion |
| 63 | 1.9.0 and later. |
| 64 | |
| 65 | * The "split" subcommand of "git subtree" (in contrib/) incorrectly |
| 66 | skipped merges when it shouldn't, which was corrected. |
| 67 | |
| 68 | * A few options of "git diff" did not work well when the command was |
| 69 | run from a subdirectory. |
| 70 | |
| 71 | * dirname() emulation has been added, as Msys2 lacks it. |
| 72 | |
| 73 | * The underlying machinery used by "ls-files -o" and other commands |
| 74 | have been taught not to create empty submodule ref cache for a |
| 75 | directory that is not a submodule. This removes a ton of wasted |
| 76 | CPU cycles. |
| 77 | |
| 78 | * Drop a few old "todo" items by deciding that the change one of them |
| 79 | suggests is not such a good idea, and doing the change the other |
| 80 | one suggested to do. |
| 81 | |
| 82 | * Documentation for "git fetch --depth" has been updated for clarity. |
| 83 | |
| 84 | * The command line completion learned a handful of additional options |
| 85 | and command specific syntax. |
| 86 | |
| 87 | Also includes a handful of documentation and test updates. |