1Git v2.11.1 Release Notes 2========================= 3 4Fixes since v2.11 5----------------- 6 7 * The default Travis-CI configuration specifies newer P4 and GitLFS. 8 9 * The character width table has been updated to match Unicode 9.0 10 11 * Update the isatty() emulation for Windows by updating the previous 12 hack that depended on internals of (older) MSVC runtime. 13 14 * "git rev-parse --symbolic" failed with a more recent notation like 15 "HEAD^-1" and "HEAD^!". 16 17 * An empty directory in a working tree that can simply be nuked used 18 to interfere while merging or cherry-picking a change to create a 19 submodule directory there, which has been fixed.. 20 21 * The code in "git push" to compute if any commit being pushed in the 22 superproject binds a commit in a submodule that hasn't been pushed 23 out was overly inefficient, making it unusable even for a small 24 project that does not have any submodule but have a reasonable 25 number of refs. 26 27 * "git push --dry-run --recurse-submodule=on-demand" wasn't 28 "--dry-run" in the submodules. 29 30 * The output from "git worktree list" was made in readdir() order, 31 and was unstable. 32 33 * mergetool.<tool>.trustExitCode configuration variable did not apply 34 to built-in tools, but now it does. 35 36 * "git p4" LFS support was broken when LFS stores an empty blob. 37 38 * Fix a corner case in merge-recursive regression that crept in 39 during 2.10 development cycle. 40 41 * Update the error messages from the dumb-http client when it fails 42 to obtain loose objects; we used to give sensible error message 43 only upon 404 but we now forbid unexpected redirects that needs to 44 be reported with something sensible. 45 46 * When diff.renames configuration is on (and with Git 2.9 and later, 47 it is enabled by default, which made it worse), "git stash" 48 misbehaved if a file is removed and another file with a very 49 similar content is added. 50 51 * "git diff --no-index" did not take "--no-abbrev" option. 52 53 * "git difftool --dir-diff" had a minor regression when started from 54 a subdirectory, which has been fixed. 55 56 * "git commit --allow-empty --only" (no pathspec) with dirty index 57 ought to be an acceptable way to create a new commit that does not 58 change any paths, but it was forbidden, perhaps because nobody 59 needed it so far. 60 61 * A pathname that begins with "//" or "\\" on Windows is special but 62 path normalization logic was unaware of it. 63 64 * "git pull --rebase", when there is no new commits on our side since 65 we forked from the upstream, should be able to fast-forward without 66 invoking "git rebase", but it didn't. 67 68 * The way to specify hotkeys to "xxdiff" that is used by "git 69 mergetool" has been modernized to match recent versions of xxdiff. 70 71 * Unlike "git am --abort", "git cherry-pick --abort" moved HEAD back 72 to where cherry-pick started while picking multiple changes, when 73 the cherry-pick stopped to ask for help from the user, and the user 74 did "git reset --hard" to a different commit in order to re-attempt 75 the operation. 76 77 * Code cleanup in shallow boundary computation. 78 79 * A recent update to receive-pack to make it easier to drop garbage 80 objects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot 81 have a pathname with a colon in it (no surprise!), and this in turn 82 made it impossible to push into a repository at such a path. This 83 has been fixed by introducing a quoting mechanism used when 84 appending such a path to the colon-separated list. 85 86 * The function usage_msg_opt() has been updated to say "fatal:" 87 before the custom message programs give, when they want to die 88 with a message about wrong command line options followed by the 89 standard usage string. 90 91 * "git index-pack --stdin" needs an access to an existing repository, 92 but "git index-pack file.pack" to generate an .idx file that 93 corresponds to a packfile does not. 94 95 * Fix for NDEBUG builds. 96 97 * A lazy "git push" without refspec did not internally use a fully 98 specified refspec to perform 'current', 'simple', or 'upstream' 99 push, causing unnecessary "ambiguous ref" errors. 100 101 * "git p4" misbehaved when swapping a directory and a symbolic link. 102 103 * Even though an fix was attempted in Git 2.9.3 days, but running 104 "git difftool --dir-diff" from a subdirectory never worked. This 105 has been fixed. 106 107 * "git p4" that tracks multile p4 paths imported a single changelist 108 that touches files in these multiple paths as one commit, followed 109 by many empty commits. This has been fixed. 110 111 * A potential but unlikely buffer overflow in Windows port has been 112 fixed. 113 114 * When the http server gives an incomplete response to a smart-http 115 rpc call, it could lead to client waiting for a full response that 116 will never come. Teach the client side to notice this condition 117 and abort the transfer. 118 119 * Some platforms no longer understand "latin-1" that is still seen in 120 the wild in e-mail headers; replace them with "iso-8859-1" that is 121 more widely known when conversion fails from/to it. 122 123 * Update the procedure to generate "tags" for developer support. 124 125 * Update the definition of the MacOSX test environment used by 126 TravisCI. 127 128 * A few git-svn updates. 129 130 * Compression setting for producing packfiles were spread across 131 three codepaths, one of which did not honor any configuration. 132 Unify these so that all of them honor core.compression and 133 pack.compression variables the same way. 134 135 * "git fast-import" sometimes mishandled while rebalancing notes 136 tree, which has been fixed. 137 138 * Recent update to the default abbreviation length that auto-scales 139 lacked documentation update, which has been corrected. 140 141 * Leakage of lockfiles in the config subsystem has been fixed. 142 143 * It is natural that "git gc --auto" may not attempt to pack 144 everything into a single pack, and there is no point in warning 145 when the user has configured the system to use the pack bitmap, 146 leading to disabling further "gc". 147 148 * "git archive" did not read the standard configuration files, and 149 failed to notice a file that is marked as binary via the userdiff 150 driver configuration. 151 152 * "git blame --porcelain" misidentified the "previous" <commit, path> 153 pair (aka "source") when contents came from two or more files. 154 155 * "git rebase -i" with a recent update started showing an incorrect 156 count when squashing more than 10 commits. 157 158 * "git <cmd> @{push}" on a detached HEAD used to segfault; it has 159 been corrected to error out with a message. 160 161 * Tighten a test to avoid mistaking an extended ERE regexp engine as 162 a PRE regexp engine. 163 164 * Typing ^C to pager, which usually does not kill it, killed Git and 165 took the pager down as a collateral damage in certain process-tree 166 structure. This has been fixed. 167 168Also contains various documentation updates and code clean-ups.