]>
Commit | Line | Data |
---|---|---|
a7d14a44 JH |
1 | Git 2.27 Release Notes |
2 | ====================== | |
3 | ||
4 | Updates since v2.26 | |
5 | ------------------- | |
6 | ||
3bab5d56 JH |
7 | Backward compatibility notes |
8 | ||
9 | * When "git describe C" finds that commit C is pointed by a signed or | |
10 | annotated tag, which records T as its tagname in the object, the | |
11 | command gives T as its answer. Even if the user renames or moves | |
12 | such a tag from its natural location in the "refs/tags/" hierarchy, | |
13 | "git describe C" would still give T as the answer, but in such a | |
14 | case "git show T^0" would no longer work as expected. There may be | |
15 | nothing at "refs/tags/T" or even worse there may be a different tag | |
16 | instead. | |
17 | ||
18 | Starting from this version, "git describe" will always use the | |
19 | "long" version, as if the "--long" option were given, when giving | |
20 | its output based on such a misplaced tag to work around the problem. | |
21 | ||
22 | * "git pull" issues a warning message until the pull.rebase | |
23 | configuration variable is explicitly given, which some existing | |
24 | users may find annoying---those who prefer not to rebase need to | |
25 | set the variable to false to squelch the warning. | |
26 | ||
27 | ||
a7d14a44 JH |
28 | UI, Workflows & Features |
29 | ||
30 | * A handful of options to configure SSL when talking to proxies have | |
31 | been added. | |
32 | ||
3bab5d56 JH |
33 | * Smudge/clean conversion filters are now given more information |
34 | (e.g. the object of the tree-ish in which the blob being converted | |
35 | appears, in addition to its path, which has already been given). | |
36 | ||
37 | * When "git describe C" finds an annotated tag with tagname A to be | |
38 | the best name to explain commit C, and the tag is stored in a | |
39 | "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the | |
40 | command gave a warning message but used A (not B) to describe C. | |
41 | If C is exactly at the tag, the describe output would be "A", but | |
42 | "git rev-parse A^0" would not be equal as "git rev-parse C^0". The | |
43 | behavior of the command has been changed to use the "long" form | |
44 | i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. | |
45 | ||
46 | * "git pull" learned to warn when no pull.rebase configuration | |
47 | exists, and neither --[no-]rebase nor --ff-only is given (which | |
48 | would result a merge). | |
49 | ||
e870325e JH |
50 | * "git p4" learned four new hooks and also "--no-verify" option to |
51 | bypass them (and the existing "p4-pre-submit" hook). | |
52 | ||
53 | * "git pull" shares many options with underlying "git fetch", but | |
54 | some of them were not documented and some of those that would make | |
55 | sense to pass down were not passed down. | |
56 | ||
57 | * "git rebase" learned the "--no-gpg-sign" option to countermand | |
58 | commit.gpgSign the user may have. | |
59 | ||
60 | * The output from "git format-patch" uses RFC 2047 encoding for | |
61 | non-ASCII letters on From: and Subject: headers, so that it can | |
62 | directly be fed to e-mail programs. A new option has been added | |
63 | to produce these headers in raw. | |
64 | ||
65 | * "git log" learned "--show-pulls" that helps pathspec limited | |
66 | history views; a merge commit that takes the whole change from a | |
67 | side branch, which is normally omitted from the output, is shown | |
68 | in addition to the commits that introduce real changes. | |
69 | ||
70 | * The interactive input from various codepaths are consolidated and | |
71 | any prompt possibly issued earlier are fflush()ed before we read. | |
72 | ||
73 | * Allow "git rebase" to reapply all local commits, even if the may be | |
74 | already in the upstream, without checking first. | |
75 | ||
76 | * The 'pack.useSparse' configuration variable now defaults to 'true', | |
77 | enabling an optimization that has been experimental since Git 2.21. | |
78 | ||
86ab15cb JH |
79 | * "git rebase" happens to call some hooks meant for "checkout" and |
80 | "commit" by this was not a designed behaviour than historical | |
81 | accident. This has been documented. | |
82 | ||
a7d14a44 JH |
83 | |
84 | Performance, Internal Implementation, Development Support etc. | |
85 | ||
86 | * The advise API has been revamped to allow more systematic enumeration of | |
87 | advice knobs in the future. | |
88 | ||
3bab5d56 JH |
89 | * SHA-256 transition continues. |
90 | ||
91 | * The code to interface with GnuPG has been refactored. | |
92 | ||
93 | * "git stash" has kept an escape hatch to use the scripted version | |
94 | for a few releases, which got stale. It has been removed. | |
95 | ||
e870325e JH |
96 | * Enable tests that require GnuPG on Windows. |
97 | ||
98 | * Minor test usability improvement. | |
99 | ||
100 | * Trace2 enhancement to allow logging of the environment variables. | |
101 | ||
102 | * Test clean-up continues. | |
103 | ||
104 | * Perf-test update. | |
105 | ||
106 | * A Windows-specific test element has been made more robust against | |
107 | misuse from both user's environment and programmer's errors. | |
108 | ||
86ab15cb JH |
109 | * Various tests have been updated to work around issues found with |
110 | shell utilities that come with busybox etc. | |
111 | ||
112 | * The config API made mixed uses of int and size_t types to represent | |
113 | length of various pieces of text it parsed, which has been updated | |
114 | to use the correct type (i.e. size_t) throughout. | |
115 | ||
116 | * The "--decorate-refs" and "--decorate-refs-exclude" options "git | |
117 | log" takes have learned a companion configuration variable | |
118 | log.excludeDecoration that sits at the lowest priority in the | |
119 | family. | |
120 | ||
a7d14a44 JH |
121 | |
122 | Fixes since v2.26 | |
123 | ----------------- | |
124 | ||
125 | * The real_path() convenience function can easily be misused; with a | |
126 | bit of code refactoring in the callers' side, its use has been | |
127 | eliminated. | |
128 | (merge 49d3c4b481 am/real-path-fix later to maint). | |
129 | ||
130 | * Update "git p4" to work with Python 3. | |
131 | (merge 6bb40ed20a yz/p4-py3 later to maint). | |
132 | ||
133 | * The mechanism to prevent "git commit" from making an empty commit | |
134 | or amending during an interrupted cherry-pick was broken during the | |
135 | rewrite of "git rebase" in C, which has been corrected. | |
136 | (merge 430b75f720 pw/advise-rebase-skip later to maint). | |
137 | ||
3bab5d56 JH |
138 | * Fix "git checkout --recurse-submodules" of a nested submodule |
139 | hierarchy. | |
140 | (merge 846f34d351 pb/recurse-submodules-fix later to maint). | |
141 | ||
142 | * The "--fork-point" mode of "git rebase" regressed when the command | |
143 | was rewritten in C back in 2.20 era, which has been corrected. | |
144 | (merge f08132f889 at/rebase-fork-point-regression-fix later to maint). | |
145 | ||
e870325e JH |
146 | * The import-tars importer (in contrib/fast-import/) used to create |
147 | phony files at the top-level of the repository when the archive | |
148 | contains global PAX headers, which made its own logic to detect and | |
149 | omit the common leading directory ineffective, which has been | |
150 | corrected. | |
151 | (merge c839fcff65 js/import-tars-do-not-make-phony-files-from-pax-headers later to maint). | |
152 | ||
153 | * Simplify the commit ancestry connectedness check in a partial clone | |
154 | repository in which "promised" objects are assumed to be obtainable | |
155 | lazily on-demand from promisor remote repositories. | |
156 | (merge 2b98478c6f jt/connectivity-check-optim-in-partial-clone later to maint). | |
157 | ||
158 | * The server-end of the v2 protocol to serve "git clone" and "git | |
159 | fetch" was not prepared to see a delim packets at unexpected | |
160 | places, which led to a crash. | |
161 | (merge cacae4329f jk/harden-protocol-v2-delim-handling later to maint). | |
162 | ||
163 | * When fed a midx that records no objects, some codepaths tried to | |
164 | loop from 0 through (num_objects-1), which, due to integer | |
165 | arithmetic wrapping around, made it nonsense operation with out of | |
166 | bounds array accesses. The code has been corrected to reject such | |
167 | an midx file. | |
168 | (merge 796d61cdc0 dr/midx-avoid-int-underflow later to maint). | |
169 | ||
170 | * Utitiles run via the run_command() API were not spawned correctly | |
171 | on Cygwin, when the paths to them are given as a full path with | |
172 | backslashes. | |
173 | (merge 05ac8582bc ak/run-command-on-cygwin-fix later to maint). | |
174 | ||
175 | * "git pull --rebase" tried to run a rebase even after noticing that | |
176 | the pull results in a fast-forward and no rebase is needed nor | |
177 | sensible, for the past few years due to a mistake nobody noticed. | |
178 | (merge fbae70ddc6 en/pull-do-not-rebase-after-fast-forwarding later to maint). | |
179 | ||
180 | * "git rebase" with the merge backend did not work well when the | |
181 | rebase.abbreviateCommands configuration was set. | |
182 | (merge de9f1d3ef4 ag/rebase-merge-allow-ff-under-abbrev-command later to maint). | |
183 | ||
184 | * The logic to auto-follow tags by "git clone --single-branch" was | |
185 | not careful to avoid lazy-fetching unnecessary tags, which has been | |
186 | corrected. | |
187 | (merge 167a575e2d jk/use-quick-lookup-in-clone-for-tag-following later to maint). | |
188 | ||
189 | * "git rebase -i" did not leave the reflog entries correctly. | |
190 | (merge 1f6965f994 en/sequencer-reflog-action later to maint). | |
191 | ||
192 | * The more aggressive updates to remote-tracking branches we had for | |
193 | the past 7 years or so were not reflected in the documentation, | |
194 | which has been corrected. | |
195 | (merge a44088435c pb/pull-fetch-doc later to maint). | |
196 | ||
197 | * We've left the command line parsing of "git log :/a/b/" broken for | |
198 | about a full year without anybody noticing, which has been | |
199 | corrected. | |
200 | (merge 0220461071 jc/missing-ref-store-fix later to maint). | |
201 | ||
202 | * Misc fixes for Windows. | |
203 | (merge 3efc128cd5 js/mingw-fixes later to maint). | |
204 | ||
205 | * "git rebase" (again) learns to honor "--no-keep-empty", which lets | |
206 | the user to discard commits that are empty from the beginning (as | |
207 | opposed to the ones that become empty because of rebasing). The | |
208 | interactive rebase also marks commits that are empty in the todo. | |
209 | (merge 50ed76148a en/rebase-no-keep-empty later to maint). | |
210 | ||
211 | * Parsing the host part out of URL for the credential helper has been corrected. | |
212 | (merge 4c5971e18a jk/credential-parsing-end-of-host-in-URL later to maint). | |
213 | ||
86ab15cb JH |
214 | * Document the recommended way to abort a failing test early (e.g. by |
215 | exiting a loop), which is to say "return 1". | |
216 | (merge 7cc112dc95 jc/doc-test-leaving-early later to maint). | |
217 | ||
218 | * The code that refreshes the last access and modified time of | |
219 | on-disk packfiles and loose object files have been updated. | |
220 | (merge 312cd76130 lr/freshen-file-fix later to maint). | |
221 | ||
222 | * Validation of push certificate has been made more robust against | |
223 | timing attacks. | |
224 | (merge 719483e547 bc/constant-memequal later to maint). | |
225 | ||
226 | * The custom hash function used by "git fast-import" has been | |
227 | replaced with the one from hashmap.c, which gave us a nice | |
228 | performance boost. | |
229 | (merge d8410a816b jk/fast-import-use-hashmap later to maint). | |
230 | ||
231 | * The "git submodule" command did not initialize a few variables it | |
232 | internally uses and was affected by variable settings leaked from | |
233 | the environment. | |
234 | (merge 65d100c4dd lx/submodule-clear-variables later to maint). | |
235 | ||
236 | * Raise the minimum required version of docbook-xsl package to 1.74, | |
237 | as 1.74.0 was from late 2008, which is more than 10 years old, and | |
238 | drop compatibility cruft from our documentation suite. | |
239 | (merge 3c255ad660 ma/doc-discard-docbook-xsl-1.73 later to maint). | |
240 | ||
241 | * "git log" learns "--[no-]mailmap" as a synonym to "--[no-]use-mailmap" | |
242 | (merge 88acccda38 jc/log-no-mailmap later to maint). | |
243 | ||
244 | * "git commit-graph write --expire-time=<timestamp>" did not use the | |
245 | given timestamp correctly, which has been corrected. | |
246 | (merge b09b785c78 ds/commit-graph-expiry-fix later to maint). | |
247 | ||
248 | * Tests update to use "test-chmtime" instead of "touch -t". | |
249 | (merge e892a56845 ds/t5319-touch-fix later to maint). | |
250 | ||
251 | * "git diff" in a partial clone learned to avoid lazy loading blob | |
252 | objects in more casese when they are not needed. | |
253 | (merge 95acf11a3d jt/avoid-prefetch-when-able-in-diff later to maint). | |
254 | ||
255 | * "git push --atomic" used to show failures for refs that weren't | |
256 | even pushed, which has been corrected. | |
257 | (merge dfe1b7f19c jx/atomic-push later to maint). | |
258 | ||
259 | * Code in builtin/*, i.e. those can only be called from within | |
260 | built-in subcommands, that implements bulk of a couple of | |
261 | subcommands have been moved to libgit.a so that they could be used | |
262 | by others. | |
263 | (merge 9460fd48b5 dl/libify-a-few later to maint). | |
264 | ||
265 | * Allowing the user to split a patch hunk while "git stash -p" does | |
266 | not work well; a band-aid has been added to make this (partially) | |
267 | work better. | |
268 | ||
269 | * "git diff-tree --pretty --notes" used to hit an assertion failure, | |
270 | as it forgot to initialize the notes subsystem. | |
271 | (merge 5778b22b3d tb/diff-tree-with-notes later to maint). | |
272 | ||
273 | * "git range-diff" fixes. | |
274 | (merge 8d1675eb7f vd/range-diff-with-custom-pretty-format-fix later to maint). | |
275 | ||
276 | * "git grep" did not quote a path with unusual character like other | |
277 | commands (like "git diff", "git status") do, but did quote when run | |
278 | from a subdirectory, both of which has been corrected. | |
279 | (merge 45115d8490 mt/grep-cquote-path later to maint). | |
280 | ||
281 | * GNU/Hurd is also among the ones that need the fopen() wrapper. | |
282 | (merge 274a1328fb jc/gnu-hurd-lets-fread-read-dirs later to maint). | |
283 | ||
284 | * Those fetching over protocol v2 from linux-next and other kernel | |
285 | repositories are reporting that v2 often fetches way too much than | |
286 | needed. | |
287 | (merge 11c7f2a30b jn/demote-proto2-from-default later to maint). | |
288 | ||
a7d14a44 JH |
289 | * Other code cleanup, docfix, build fix, etc. |
290 | (merge 564956f358 jc/maintain-doc later to maint). | |
291 | (merge 7422b2a0a1 sg/commit-slab-clarify-peek later to maint). | |
292 | (merge 9c688735f6 rs/doc-passthru-fetch-options later to maint). | |
293 | (merge 757c2ba3e2 en/oidset-uninclude-hashmap later to maint). | |
294 | (merge 8312aa7d74 jc/config-tar later to maint). | |
295 | (merge d00a5bdd50 ss/submodule-foreach-cb later to maint). | |
e870325e JH |
296 | (merge 64d1022e14 ar/test-style-fixes later to maint). |
297 | (merge 4a465443a6 ds/doc-clone-filter later to maint). | |
298 | (merge bb2dbe301b jk/t3419-drop-expensive-tests later to maint). | |
299 | (merge d3507cc712 js/test-junit-finalization-fix later to maint). | |
300 | (merge 2149b6748f bc/faq later to maint). | |
301 | (merge 12dc0879f1 jk/test-cleanup later to maint). | |
302 | (merge 344420bf0f pb/rebase-doc-typofix later to maint). | |
303 | (merge 7cd54d37dc dl/wrapper-fix-indentation later to maint). | |
304 | (merge 78725ebda9 jc/allow-strlen-substitution-in-shell-scripts later to maint). | |
305 | (merge 2ecfcdecc6 jm/gitweb-fastcgi-utf8 later to maint). | |
306 | (merge 0740d0a5d3 jk/oid-array-cleanups later to maint). | |
307 | (merge a1aba0c95c js/t0007-typofix later to maint). | |
308 | (merge 76ba7fa225 ma/config-doc-fix later to maint). | |
86ab15cb JH |
309 | (merge 826f0c0df2 js/subtree-doc-update-to-asciidoctor-2 later to maint). |
310 | (merge 88eaf361e0 eb/mboxrd-doc later to maint). | |
311 | (merge 051cc54941 tm/zsh-complete-switch-restore later to maint). | |
312 | (merge 39102cf4fe ms/doc-revision-illustration-fix later to maint). |