]>
Commit | Line | Data |
---|---|---|
3bc53220 JH |
1 | Git 2.13 Release Notes |
2 | ====================== | |
3 | ||
4 | Backward compatibility notes. | |
5 | ||
6 | * Use of an empty string as a pathspec element that is used for | |
7 | 'everything matches' is still warned and Git asks users to use a | |
8 | more explicit '.' for that instead. The hope is that existing | |
9 | users will not mind this change, and eventually the warning can be | |
10 | turned into a hard error, upgrading the deprecation into removal of | |
11 | this (mis)feature. That is not scheduled to happen in the upcoming | |
12 | release (yet). | |
13 | ||
14 | * The historical argument order "git merge <msg> HEAD <commit>..." | |
b14f27f9 | 15 | has been deprecated for quite some time, and is now removed. |
3bc53220 | 16 | |
ea5b2dd2 JH |
17 | * The default location "~/.git-credential-cache/socket" for the |
18 | socket used to communicate with the credential-cache daemon has | |
19 | been moved to "~/.cache/git/credential/socket". | |
20 | ||
b14f27f9 JH |
21 | * Git now avoids blindly falling back to ".git" when the setup |
22 | sequence said we are _not_ in Git repository. A corner case that | |
23 | happens to work right now may be broken by a call to die("BUG"). | |
24 | We've tried hard to locate such cases and fixed them, but there | |
25 | might still be cases that need to be addressed--bug reports are | |
26 | greatly appreciated. | |
27 | ||
3bc53220 JH |
28 | |
29 | Updates since v2.12 | |
30 | ------------------- | |
31 | ||
32 | UI, Workflows & Features | |
33 | ||
34 | * "git describe" and "git name-rev" have been taught to take more | |
35 | than one refname patterns to restrict the set of refs to base their | |
36 | naming output on, and also learned to take negative patterns to | |
37 | name refs not to be used for naming via their "--exclude" option. | |
38 | ||
39 | * Deletion of a branch "foo/bar" could remove .git/refs/heads/foo | |
40 | once there no longer is any other branch whose name begins with | |
41 | "foo/", but we didn't do so so far. Now we do. | |
42 | ||
43 | * When "git merge" detects a path that is renamed in one history | |
44 | while the other history deleted (or modified) it, it now reports | |
45 | both paths to help the user understand what is going on in the two | |
46 | histories being merged. | |
47 | ||
48 | * The <url> part in "http.<url>.<variable>" configuration variable | |
49 | can now be spelled with '*' that serves as wildcard. | |
50 | E.g. "http.https://*.example.com.proxy" can be used to specify the | |
51 | proxy used for https://a.example.com, https://b.example.com, etc., | |
52 | i.e. any host in the example.com domain. | |
53 | ||
54 | * "git tag" did not leave useful message when adding a new entry to | |
55 | reflog; this was left unnoticed for a long time because refs/tags/* | |
56 | doesn't keep reflog by default. | |
57 | ||
58 | * The "negative" pathspec feature was somewhat more cumbersome to use | |
59 | than necessary in that its short-hand used "!" which needed to be | |
60 | escaped from shells, and it required "exclude from what?" specified. | |
61 | ||
62 | * The command line options for ssh invocation needs to be tweaked for | |
63 | some implementations of SSH (e.g. PuTTY plink wants "-P <port>" | |
64 | while OpenSSH wants "-p <port>" to specify port to connect to), and | |
65 | the variant was guessed when GIT_SSH environment variable is used | |
66 | to specify it. The logic to guess now applies to the command | |
67 | specified by the newer GIT_SSH_COMMAND and also core.sshcommand | |
68 | configuration variable, and comes with an escape hatch for users to | |
69 | deal with misdetected cases. | |
70 | ||
71 | * The "--git-path", "--git-common-dir", and "--shared-index-path" | |
72 | options of "git rev-parse" did not produce usable output. They are | |
73 | now updated to show the path to the correct file, relative to where | |
74 | the caller is. | |
75 | ||
76 | * "git diff -W" has been taught to handle the case where a new | |
77 | function is added at the end of the file better. | |
78 | ||
79 | * "git update-ref -d" and other operations to delete references did | |
80 | not leave any entry in HEAD's reflog when the reference being | |
81 | deleted was the current branch. This is not a problem in practice | |
82 | because you do not want to delete the branch you are currently on, | |
83 | but caused renaming of the current branch to something else not to | |
84 | be logged in a useful way. | |
85 | ||
625568cd JH |
86 | * "Cc:" on the trailer part does not have to conform to RFC strictly, |
87 | unlike in the e-mail header. "git send-email" has been updated to | |
88 | ignore anything after '>' when picking addresses, to allow non-address | |
89 | cruft like " # stable 4.4" after the address. | |
625568cd JH |
90 | |
91 | * When "git submodule init" decides that the submodule in the working | |
92 | tree is its upstream, it now gives a warning as it is not a very | |
93 | common setup. | |
625568cd | 94 | |
e1104a5e | 95 | * "git stash push" takes a pathspec so that the local changes can be |
625568cd | 96 | stashed away only partially. |
625568cd | 97 | |
d6db3f21 JH |
98 | * Documentation for "git ls-files" did not refer to core.quotePath. |
99 | ||
9d77b040 JH |
100 | * The experimental "split index" feature has gained a few |
101 | configuration variables to make it easier to use. | |
102 | ||
103 | * From a working tree of a repository, a new option of "rev-parse" | |
104 | lets you ask if the repository is used as a submodule of another | |
105 | project, and where the root level of the working tree of that | |
106 | project (i.e. your superproject) is. | |
107 | ||
108 | * The pathspec mechanism learned to further limit the paths that | |
109 | match the pattern to those that have specified attributes attached | |
110 | via the gitattributes mechanism. | |
111 | ||
112 | * Our source code has used the SHA1_HEADER cpp macro after "#include" | |
113 | in the C code to switch among the SHA-1 implementations. Instead, | |
114 | list the exact header file names and switch among implementations | |
115 | using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif"; | |
116 | this helps some IDE tools. | |
117 | ||
118 | * The start-up sequence of "git" needs to figure out some configured | |
119 | settings before it finds and set itself up in the location of the | |
120 | repository and was quite messy due to its "chicken-and-egg" nature. | |
121 | The code has been restructured. | |
122 | ||
92f74a61 JH |
123 | * The command line prompt (in contrib/) learned a new 'tag' style |
124 | that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a | |
125 | detached HEAD with "git describe --tags". | |
126 | ||
127 | * The configuration file learned a new "includeIf.<condition>.path" | |
128 | that includes the contents of the given path only when the | |
129 | condition holds. This allows you to say "include this work-related | |
130 | bit only in the repositories under my ~/work/ directory". | |
131 | ||
132 | * Recent update to "rebase -i" started showing a message that is not | |
133 | a warning with "warning:" prefix by mistake. This has been fixed. | |
134 | ||
e0ef7fe7 JH |
135 | * Recently we started passing the "--push-options" through the |
136 | external remote helper interface; now the "smart HTTP" remote | |
137 | helper understands what to do with the passed information. | |
138 | ||
139 | * "git describe --dirty" dies when it cannot be determined if the | |
140 | state in the working tree matches that of HEAD (e.g. broken | |
141 | repository or broken submodule). The command learned a new option | |
142 | "git describe --broken" to give "$name-broken" (where $name is the | |
143 | description of HEAD) in such a case. | |
144 | ||
e1104a5e JH |
145 | * "git checkout" is taught the "--recurse-submodules" option. |
146 | ||
147 | * Recent enhancement to "git stash push" command to support pathspec | |
148 | to allow only a subset of working tree changes to be stashed away | |
149 | was found to be too chatty and exposed the internal implementation | |
150 | detail (e.g. when it uses reset to match the index to HEAD before | |
151 | doing other things, output from reset seeped out). These, and | |
152 | other chattyness has been fixed. | |
153 | ||
b14f27f9 JH |
154 | * "git merge <message> HEAD <commit>" syntax that has been deprecated |
155 | since October 2007 has been removed. | |
156 | ||
157 | * The refs completion for large number of refs has been sped up, | |
158 | partly by giving up disambiguating ambiguous refs and partly by | |
159 | eliminating most of the shell processing between 'git for-each-ref' | |
160 | and 'ls-remote' and Bash's completion facility. | |
161 | ||
162 | * On many keyboards, typing "@{" involves holding down SHIFT key and | |
163 | one can easily end up with "@{Up..." when typing "@{upstream}". As | |
164 | the upstream/push keywords do not appear anywhere else in the syntax, | |
165 | we can safely accept them case insensitively without introducing | |
166 | ambiguity or confusion to solve this. | |
167 | ||
cf11a679 JH |
168 | * "git tag/branch/for-each-ref" family of commands long allowed to |
169 | filter the refs by "--contains X" (show only the refs that are | |
170 | descendants of X), "--merged X" (show only the refs that are | |
171 | ancestors of X), "--no-merged X" (show only the refs that are not | |
172 | ancestors of X). One curious omission, "--no-contains X" (show | |
173 | only the refs that are not descendants of X) has been added to | |
174 | them. | |
175 | ||
176 | * The default behaviour of "git log" in an interactive session has | |
177 | been changed to enable "--decorate". | |
178 | ||
6a2c2f8d JH |
179 | * The output from "git status --short" has been extended to show |
180 | various kinds of dirtyness in submodules differently; instead of to | |
181 | "M" for modified, 'm' and '?' can be shown to signal changes only | |
182 | to the working tree of the submodule but not the commit that is | |
183 | checked out. | |
184 | ||
e2cb6ab8 JH |
185 | * Allow the http.postbuffer configuration variable to be set to a |
186 | size that can be expressed in size_t, which can be larger than | |
187 | ulong on some platforms. | |
188 | ||
3bc53220 JH |
189 | |
190 | Performance, Internal Implementation, Development Support etc. | |
191 | ||
192 | * The code to list branches in "git branch" has been consolidated | |
193 | with the more generic ref-filter API. | |
194 | ||
195 | * Resource usage while enumerating refs from alternate object store | |
196 | has been optimized to help receiving end of "push" that hosts a | |
197 | repository with many "forks". | |
198 | ||
199 | * The gitattributes machinery is being taught to work better in a | |
200 | multi-threaded environment. | |
201 | ||
202 | * "git rebase -i" starts using the recently updated "sequencer" code. | |
203 | ||
204 | * Code and design clean-up for the refs API. | |
205 | ||
206 | * The preload-index code has been taught not to bother with the index | |
207 | entries that are paths that are not checked out by "sparse checkout". | |
208 | ||
209 | * Some warning() messages from "git clean" were updated to show the | |
210 | errno from failed system calls. | |
211 | ||
625568cd | 212 | * The "parse_config_key()" API function has been cleaned up. |
625568cd JH |
213 | |
214 | * A test that creates a confusing branch whose name is HEAD has been | |
215 | corrected not to do so. | |
625568cd JH |
216 | |
217 | * The code that parses header fields in the commit object has been | |
218 | updated for (micro)performance and code hygiene. | |
625568cd JH |
219 | |
220 | * An helper function to make it easier to append the result from | |
221 | real_path() to a strbuf has been added. | |
625568cd JH |
222 | |
223 | * Reduce authentication round-trip over HTTP when the server supports | |
224 | just a single authentication method. This also improves the | |
225 | behaviour when Git is misconfigured to enable http.emptyAuth | |
226 | against a server that does not authenticate without a username | |
227 | (i.e. not using Kerberos etc., which makes http.emptyAuth | |
228 | pointless). | |
625568cd | 229 | |
d6db3f21 JH |
230 | * Windows port wants to use OpenSSL's implementation of SHA-1 |
231 | routines, so let them. | |
d6db3f21 | 232 | |
4a9b9b32 JH |
233 | * The t/perf performance test suite was not prepared to test not so |
234 | old versions of Git, but now it covers versions of Git that are not | |
235 | so ancient. | |
4a9b9b32 JH |
236 | |
237 | * Add 32-bit Linux variant to the set of platforms to be tested with | |
238 | Travis CI. | |
4a9b9b32 JH |
239 | |
240 | * "git branch --list" takes the "--abbrev" and "--no-abbrev" options | |
241 | to control the output of the object name in its "-v"(erbose) | |
242 | output, but a recent update started ignoring them; fix it before | |
243 | the breakage reaches to any released version. | |
244 | ||
9d77b040 JH |
245 | * Picking two versions of Git and running tests to make sure the |
246 | older one and the newer one interoperate happily has now become | |
247 | possible. | |
9d77b040 | 248 | |
9d77b040 JH |
249 | * "git tag --contains" used to (ab)use the object bits to keep track |
250 | of the state of object reachability without clearing them after | |
251 | use; this has been cleaned up and made to use the newer commit-slab | |
252 | facility. | |
253 | ||
ea5b2dd2 JH |
254 | * The "debug" helper used in the test framework learned to run |
255 | a command under "gdb" interactively. | |
ea5b2dd2 JH |
256 | |
257 | * The "detect attempt to create collisions" variant of SHA-1 | |
258 | implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft) | |
259 | has been integrated and made the default. | |
3bc53220 | 260 | |
e0ef7fe7 JH |
261 | * The test framework learned to detect unterminated here documents. |
262 | ||
e1104a5e JH |
263 | * The name-hash used for detecting paths that are different only in |
264 | cases (which matter on case insensitive filesystems) has been | |
265 | optimized to take advantage of multi-threading when it makes sense. | |
266 | ||
267 | * An earlier version of sha1dc/sha1.c that was merged to 'master' | |
268 | compiled incorrectly on Windows, which has been fixed. | |
269 | ||
b14f27f9 JH |
270 | * "what URL do we want to update this submodule?" and "are we |
271 | interested in this submodule?" are split into two distinct | |
272 | concepts, and then the way used to express the latter got extended, | |
273 | paving a way to make it easier to manage a project with many | |
274 | submodules and make it possible to later extend use of multiple | |
275 | worktrees for a project with submodules. | |
276 | ||
277 | * Some debugging output from "git describe" were marked for l10n, | |
278 | but some weren't. Mark missing ones for l10n. | |
279 | ||
cf11a679 JH |
280 | * Define a new task in .travis.yml that triggers a test session on |
281 | Windows run elsewhere. | |
e0ef7fe7 | 282 | |
e2cb6ab8 | 283 | * Conversion from uchar[20] to struct object_id continues. |
6a2c2f8d JH |
284 | |
285 | * The "submodule" specific field in the ref_store structure is | |
286 | replaced with a more generic "gitdir" that can later be used also | |
287 | when dealing with ref_store that represents the set of refs visible | |
288 | from the other worktrees. | |
289 | ||
e2cb6ab8 JH |
290 | * The string-list API used a custom reallocation strategy that was |
291 | very inefficient, instead of using the usual ALLOC_GROW() macro, | |
292 | which has been fixed. | |
293 | (merge 950a234cbd jh/string-list-micro-optim later to maint). | |
294 | ||
295 | * In a 2- and 3-way merge of trees, more than one source trees often | |
296 | end up sharing an identical subtree; optimize by not reading the | |
297 | same tree multiple times in such a case. | |
298 | (merge d12a8cf0af jh/unpack-trees-micro-optim later to maint). | |
299 | ||
300 | * The index file has a trailing SHA-1 checksum to detect file | |
301 | corruption, and historically we checked it every time the index | |
302 | file is used. Omit the validation during normal use, and instead | |
303 | verify only in "git fsck". | |
304 | ||
3bc53220 JH |
305 | Also contains various documentation updates and code clean-ups. |
306 | ||
307 | ||
308 | Fixes since v2.12 | |
309 | ----------------- | |
310 | ||
ea5b2dd2 | 311 | Unless otherwise noted, all the fixes since v2.12 in the maintenance |
3bc53220 JH |
312 | track are contained in this release (see the maintenance releases' |
313 | notes for details). | |
314 | ||
315 | * "git repack --depth=<n>" for a long time busted the specified depth | |
316 | when reusing delta from existing packs. This has been corrected. | |
3bc53220 JH |
317 | |
318 | * The code to parse the command line "git grep <patterns>... <rev> | |
319 | [[--] <pathspec>...]" has been cleaned up, and a handful of bugs | |
320 | have been fixed (e.g. we used to check "--" if it is a rev). | |
3bc53220 JH |
321 | |
322 | * "git ls-remote" and "git archive --remote" are designed to work | |
323 | without being in a directory under Git's control. However, recent | |
324 | updates revealed that we randomly look into a directory called | |
325 | .git/ without actually doing necessary set-up when working in a | |
326 | repository. Stop doing so. | |
3bc53220 JH |
327 | |
328 | * "git show-branch" expected there were only very short branch names | |
329 | in the repository and used a fixed-length buffer to hold them | |
330 | without checking for overflow. | |
3bc53220 JH |
331 | |
332 | * A caller of tempfile API that uses stdio interface to write to | |
333 | files may ignore errors while writing, which is detected when | |
334 | tempfile is closed (with a call to ferror()). By that time, the | |
335 | original errno that may have told us what went wrong is likely to | |
336 | be long gone and was overwritten by an irrelevant value. | |
337 | close_tempfile() now resets errno to EIO to make errno at least | |
338 | predictable. | |
3bc53220 JH |
339 | |
340 | * "git remote rm X", when a branch has remote X configured as the | |
341 | value of its branch.*.remote, tried to remove branch.*.remote and | |
342 | branch.*.merge and failed if either is unset. | |
3bc53220 JH |
343 | |
344 | * A "gc.log" file left by a backgrounded "gc --auto" disables further | |
345 | automatic gc; it has been taught to run at least once a day (by | |
346 | default) by ignoring a stale "gc.log" file that is too old. | |
3bc53220 | 347 | |
625568cd JH |
348 | * The code to parse "git -c VAR=VAL cmd" and set configuration |
349 | variable for the duration of cmd had two small bugs, which have | |
350 | been fixed. | |
625568cd JH |
351 | |
352 | * user.email that consists of only cruft chars should consistently | |
353 | error out, but didn't. | |
625568cd JH |
354 | |
355 | * "git upload-pack", which is a counter-part of "git fetch", did not | |
356 | report a request for a ref that was not advertised as invalid. | |
357 | This is generally not a problem (because "git fetch" will stop | |
358 | before making such a request), but is the right thing to do. | |
625568cd JH |
359 | |
360 | * A leak in a codepath to read from a packed object in (rare) cases | |
361 | has been plugged. | |
625568cd JH |
362 | |
363 | * When a redirected http transport gets an error during the | |
364 | redirected request, we ignored the error we got from the server, | |
365 | and ended up giving a not-so-useful error message. | |
625568cd | 366 | |
d6db3f21 JH |
367 | * The patch subcommand of "git add -i" was meant to have paths |
368 | selection prompt just like other subcommand, unlike "git add -p" | |
369 | directly jumps to hunk selection. Recently, this was broken and | |
370 | "add -i" lost the paths selection dialog, but it now has been | |
371 | fixed. | |
d6db3f21 JH |
372 | |
373 | * Git v2.12 was shipped with an embarrassing breakage where various | |
374 | operations that verify paths given from the user stopped dying when | |
375 | seeing an issue, and instead later triggering segfault. | |
d6db3f21 JH |
376 | |
377 | * There is no need for Python only to give a few messages to the | |
378 | standard error stream, but we somehow did. | |
d6db3f21 JH |
379 | |
380 | * The code to parse "git log -L..." command line was buggy when there | |
381 | are many ranges specified with -L; overrun of the allocated buffer | |
382 | has been fixed. | |
d6db3f21 JH |
383 | |
384 | * The command-line parsing of "git log -L" copied internal data | |
385 | structures using incorrect size on ILP32 systems. | |
d6db3f21 JH |
386 | |
387 | * "git diff --quiet" relies on the size field in diff_filespec to be | |
388 | correctly populated, but diff_populate_filespec() helper function | |
389 | made an incorrect short-cut when asked only to populate the size | |
390 | field for paths that need to go through convert_to_git() (e.g. CRLF | |
391 | conversion). | |
d6db3f21 | 392 | |
4a9b9b32 JH |
393 | * A few tests were run conditionally under (rare) conditions where |
394 | they cannot be run (like running cvs tests under 'root' account). | |
4a9b9b32 JH |
395 | |
396 | * "git branch @" created refs/heads/@ as a branch, and in general the | |
397 | code that handled @{-1} and @{upstream} was a bit too loose in | |
398 | disambiguating. | |
4a9b9b32 JH |
399 | |
400 | * "git fetch" that requests a commit by object name, when the other | |
401 | side does not allow such an request, failed without much | |
402 | explanation. | |
4a9b9b32 JH |
403 | |
404 | * "git filter-branch --prune-empty" drops a single-parent commit that | |
405 | becomes a no-op, but did not drop a root commit whose tree is empty. | |
4a9b9b32 JH |
406 | |
407 | * Recent versions of Git treats http alternates (used in dumb http | |
408 | transport) just like HTTP redirects and requires the client to | |
409 | enable following it, due to security concerns. But we forgot to | |
410 | give a warning when we decide not to honor the alternates. | |
4a9b9b32 JH |
411 | |
412 | * "git push" had a handful of codepaths that could lead to a deadlock | |
413 | when unexpected error happened, which has been fixed. | |
4a9b9b32 | 414 | |
9d77b040 JH |
415 | * "Dumb http" transport used to misparse a nonsense http-alternates |
416 | response, which has been fixed. | |
9d77b040 JH |
417 | |
418 | * "git add -p <pathspec>" unnecessarily expanded the pathspec to a | |
419 | list of individual files that matches the pathspec by running "git | |
420 | ls-files <pathspec>", before feeding it to "git diff-index" to see | |
421 | which paths have changes, because historically the pathspec | |
422 | language supported by "diff-index" was weaker. These days they are | |
423 | equivalent and there is no reason to internally expand it. This | |
424 | helps both performance and avoids command line argument limit on | |
425 | some platforms. | |
426 | (merge 7288e12cce jk/add-i-use-pathspecs later to maint). | |
427 | ||
428 | * "git status --porcelain" is supposed to give a stable output, but a | |
429 | few strings were left as translatable by mistake. | |
92f74a61 | 430 | |
ea5b2dd2 JH |
431 | * "git revert -m 0 $merge_commit" complained that reverting a merge |
432 | needs to say relative to which parent the reversion needs to | |
433 | happen, as if "-m 0" weren't given. The correct diagnosis is that | |
434 | "-m 0" does not refer to the first parent ("-m 1" does). This has | |
435 | been fixed. | |
436 | ||
92f74a61 JH |
437 | * Code to read submodule.<name>.ignore config did not state the |
438 | variable name correctly when giving an error message diagnosing | |
439 | misconfiguration. | |
ea5b2dd2 JH |
440 | |
441 | * Fix for NO_PTHREADS build. | |
ea5b2dd2 JH |
442 | |
443 | * Fix for potential segv introduced in v2.11.0 and later (also | |
444 | v2.10.2) to "git log --pickaxe-regex -S". | |
9d77b040 | 445 | |
e0ef7fe7 JH |
446 | * A few unterminated here documents in tests were fixed, which in |
447 | turn revealed incorrect expectations the tests make. These tests | |
448 | have been updated. | |
e1104a5e JH |
449 | |
450 | * Fix for NO_PTHREADS option. | |
451 | (merge 2225e1ea20 bw/grep-recurse-submodules later to maint). | |
e0ef7fe7 | 452 | |
b14f27f9 JH |
453 | * Git now avoids blindly falling back to ".git" when the setup |
454 | sequence said we are _not_ in Git repository. A corner case that | |
455 | happens to work right now may be broken by a call to die("BUG"). | |
456 | (merge b1ef400eec jk/no-looking-at-dotgit-outside-repo-final later to maint). | |
457 | ||
458 | * A few commands that recently learned the "--recurse-submodule" | |
459 | option misbehaved when started from a subdirectory of the | |
460 | superproject. | |
461 | (merge b2dfeb7c00 bw/recurse-submodules-relative-fix later to maint). | |
462 | ||
463 | * FreeBSD implementation of getcwd(3) behaved differently when an | |
464 | intermediate directory is unreadable/unsearchable depending on the | |
465 | length of the buffer provided, which our strbuf_getcwd() was not | |
466 | aware of. strbuf_getcwd() has been taught to cope with it better. | |
467 | (merge a54e938e5b rs/freebsd-getcwd-workaround later to maint). | |
468 | ||
469 | * A recent update to "rebase -i" stopped running hooks for the "git | |
470 | commit" command during "reword" action, which has been fixed. | |
471 | ||
472 | * Removing an entry from a notes tree and then looking another note | |
473 | entry from the resulting tree using the internal notes API | |
474 | functions did not work as expected. No in-tree users of the API | |
475 | has such access pattern, but it still is worth fixing. | |
476 | ||
477 | * "git receive-pack" could have been forced to die by attempting | |
478 | allocate an unreasonably large amount of memory with a crafted push | |
479 | certificate; this has been fixed. | |
480 | (merge f2214dede9 bc/push-cert-receive-fix later to maint). | |
481 | ||
584f8975 JH |
482 | * Update error handling for codepath that deals with corrupt loose |
483 | objects. | |
484 | (merge 51054177b3 jk/loose-object-info-report-error later to maint). | |
485 | ||
486 | * "git diff --submodule=diff" learned to work better in a project | |
487 | with a submodule that in turn has its own submodules. | |
488 | (merge 17b254cda6 sb/show-diff-for-submodule-in-diff-fix later to maint). | |
489 | ||
490 | * Update the build dependency so that an update to /usr/bin/perl | |
491 | etc. result in recomputation of perl.mak file. | |
492 | (merge c59c4939c2 ab/regen-perl-mak-with-different-perl later to maint). | |
493 | ||
6a2c2f8d JH |
494 | * "git push --recurse-submodules --push-option=<string>" learned to |
495 | propagate the push option recursively down to pushes in submodules. | |
496 | ||
497 | * If a patch e-mail had its first paragraph after an in-body header | |
498 | indented (even after a blank line after the in-body header line), | |
499 | the indented line was mistook as a continuation of the in-body | |
500 | header. This has been fixed. | |
501 | (merge fd1062e52e lt/mailinfo-in-body-header-continuation later to maint). | |
502 | ||
503 | * Clean up fallouts from recent tightening of the set-up sequence, | |
504 | where Git barfs when repository information is accessed without | |
505 | first ensuring that it was started in a repository. | |
506 | (merge bccb22cbb1 jk/no-looking-at-dotgit-outside-repo later to maint). | |
507 | ||
508 | * "git p4" used "name-rev HEAD" when it wants to learn what branch is | |
509 | checked out; it should use "symbolic-ref HEAD". | |
510 | (merge eff451101d ld/p4-current-branch-fix later to maint). | |
511 | ||
e2cb6ab8 JH |
512 | * "http.proxy" set to an empty string is used to disable the usage of |
513 | proxy. We broke this early last year. | |
514 | (merge ae51d91105 sr/http-proxy-configuration-fix later to maint). | |
515 | ||
516 | * $GIT_DIR may in some cases be normalized with all symlinks resolved | |
517 | while "gitdir" path expansion in the pattern does not receive the | |
518 | same treatment, leading to incorrect mismatch. This has been fixed. | |
519 | ||
520 | * "git submodule" script does not work well with strange pathnames. | |
521 | Protect it from a path with slashes in them, at least. | |
522 | ||
523 | * "git fetch-pack" was not prepared to accept ERR packet that the | |
524 | upload-pack can send with a human-readable error message. It | |
525 | showed the packet contents with ERR prefix, so there was no data | |
526 | loss, but it was redundant to say "ERR" in an error message. | |
527 | (merge 8e2c7bef03 jt/fetch-pack-error-reporting later to maint). | |
528 | ||
529 | * "ls-files --recurse-submodules" did not quite work well in a | |
530 | project with nested submodules. | |
531 | ||
532 | * gethostname(2) may not NUL terminate the buffer if hostname does | |
533 | not fit; unfortunately there is no easy way to see if our buffer | |
534 | was too small, but at least this will make sure we will not end up | |
535 | using garbage past the end of the buffer. | |
536 | (merge 5781a9a270 dt/xgethostname-nul-termination later to maint). | |
537 | ||
3bc53220 | 538 | * Other minor doc, test and build updates and code cleanups. |
e1104a5e JH |
539 | (merge df2a6e38b7 jk/pager-in-use later to maint). |
540 | (merge 75ec4a6cb0 ab/branch-list-doc later to maint). | |
541 | (merge 3e5b36c637 sg/skip-prefix-in-prettify-refname later to maint). | |
542 | (merge 2c5e2865cc jk/fast-import-cleanup later to maint). | |
b14f27f9 JH |
543 | (merge 4473060bc2 ab/test-readme-updates later to maint). |
544 | (merge 48a96972fd ab/doc-submitting later to maint). | |
545 | (merge f5c2bc2b96 jk/make-coccicheck-detect-errors later to maint). | |
cf11a679 | 546 | (merge c105f563d1 cc/untracked later to maint). |
584f8975 JH |
547 | (merge 8668976b53 jc/unused-symbols later to maint). |
548 | (merge fba275dc93 jc/bs-t-is-not-a-tab-for-sed later to maint). | |
549 | (merge be6ed145de mm/ls-files-s-doc later to maint). | |
550 | (merge 60b091c679 qp/bisect-docfix later to maint). | |
6a2c2f8d JH |
551 | (merge 47242cd103 ah/diff-files-ours-theirs-doc later to maint). |
552 | (merge 35ad44cbd8 sb/submodule-rm-absorb later to maint). | |
553 | (merge 0301f1fd92 va/i18n-perl-scripts later to maint). | |
554 | (merge 733e064d98 vn/revision-shorthand-for-side-branch-log later to maint). | |
e2cb6ab8 JH |
555 | (merge 85999743e7 tb/doc-eol-normalization later to maint). |
556 | (merge 0747fb49fd jk/loose-object-fsck later to maint). | |
557 | (merge d8f4481c4f jk/quarantine-received-objects later to maint). | |
558 | (merge 7ba1ceef95 xy/format-patch-base later to maint). | |
559 | (merge fa1912c89a rs/misc-cppcheck-fixes later to maint). |