1 Git v2.11.1 Release Notes
2 =========================
7 * The default Travis-CI configuration specifies newer P4 and GitLFS.
9 * The character width table has been updated to match Unicode 9.0
11 * Update the isatty() emulation for Windows by updating the previous
12 hack that depended on internals of (older) MSVC runtime.
14 * "git rev-parse --symbolic" failed with a more recent notation like
15 "HEAD^-1" and "HEAD^!".
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..
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
27 * "git push --dry-run --recurse-submodule=on-demand" wasn't
28 "--dry-run" in the submodules.
30 * The output from "git worktree list" was made in readdir() order,
33 * mergetool.<tool>.trustExitCode configuration variable did not apply
34 to built-in tools, but now it does.
36 * "git p4" LFS support was broken when LFS stores an empty blob.
38 * Fix a corner case in merge-recursive regression that crept in
39 during 2.10 development cycle.
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.
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.
51 * "git diff --no-index" did not take "--no-abbrev" option.
53 * "git difftool --dir-diff" had a minor regression when started from
54 a subdirectory, which has been fixed.
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
61 * A pathname that begins with "//" or "\\" on Windows is special but
62 path normalization logic was unaware of it.
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.
68 * The way to specify hotkeys to "xxdiff" that is used by "git
69 mergetool" has been modernized to match recent versions of xxdiff.
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
77 * Code cleanup in shallow boundary computation.
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.
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.
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.
95 * Fix for NDEBUG builds.
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.
101 * "git p4" misbehaved when swapping a directory and a symbolic link.
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
107 * "git p4" that tracks multiple 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.
111 * A potential but unlikely buffer overflow in Windows port has been
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.
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.
123 * Update the procedure to generate "tags" for developer support.
125 * Update the definition of the MacOSX test environment used by
128 * A few git-svn updates.
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.
135 * "git fast-import" sometimes mishandled while rebalancing notes
136 tree, which has been fixed.
138 * Recent update to the default abbreviation length that auto-scales
139 lacked documentation update, which has been corrected.
141 * Leakage of lockfiles in the config subsystem has been fixed.
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".
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.
152 * "git blame --porcelain" misidentified the "previous" <commit, path>
153 pair (aka "source") when contents came from two or more files.
155 * "git rebase -i" with a recent update started showing an incorrect
156 count when squashing more than 10 commits.
158 * "git <cmd> @{push}" on a detached HEAD used to segfault; it has
159 been corrected to error out with a message.
161 * Tighten a test to avoid mistaking an extended ERE regexp engine as
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.
168 Also contains various documentation updates and code clean-ups.