Merge branch 'ab/gc-reflog'
[git] / Documentation / RelNotes / 2.11.1.txt
1 Git v2.11.1 Release Notes
2 =========================
3
4 Fixes 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
168 Also contains various documentation updates and code clean-ups.