The seventh batch for 2.18

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed May 30, 2018 at 14:10 UTC f15a486ca1dd67757cb6a3c0545dc2c6ef992bc3
1 file changed +80
Documentation/RelNotes/2.18.0.txt
+80
@@ -104,6 +104,35 @@ UI, Workflows & Features
104 custom "git-$command" that the end user has on the $PATH when using
105 newer version of bash.
106
107 + * "git send-email" can sometimes offer confirmation dialog "Send this
108 + email?" with choices 'Yes', 'No', 'Quit', and 'All'. A new action
109 + 'Edit' has been added to this dialog's choice.
110 +
111 + * With merge.renames configuration set to false, the recursive merge
112 + strategy can be told not to spend cycles trying to find renamed
113 + paths and merge them accordingly.
114 +
115 + * "git status" learned to honor a new status.renames configuration to
116 + skip rename detection, which could be useful for those who want to
117 + do so without disabling the default rename detection done by the
118 + "git diff" command.
119 +
120 + * Command line completion (in contrib/) learned to complete pathnames
121 + for various commands better.
122 +
123 + * "git blame" learns to unhighlight uninteresting metadata from the
124 + originating commit on lines that are the same as the previous one,
125 + and also paint lines in different colors depending on the age of
126 + the commit.
127 +
128 + * Transfer protocol v2 learned to support the partial clone.
129 +
130 + * When a short hexadecimal string is used to name an object but there
131 + are multiple objects that share the string as the prefix of their
132 + names, the code lists these ambiguous candidates in a help message.
133 + These object names are now sorted according to their types for
134 + easier eyeballing.
135 +
136
137 Performance, Internal Implementation, Development Support etc.
138
@@ -232,6 +261,17 @@ Performance, Internal Implementation, Development Support etc.
261 while doing its work, and shrinking its size helps the performance
262 quite a bit.
263
264 + * The implementation of "git rebase -i --root" has been updated to use
265 + the sequencer machinery more.
266 +
267 + * Developer support update, by using BUG() macro instead of die() to
268 + mark codepaths that should not happen more clearly.
269 +
270 + * Developer support. Use newer GCC on one of the builds done at
271 + TravisCI.org to get more warnings and errors diagnosed.
272 +
273 + * Conversion from uchar[20] to struct object_id continues.
274 +
275
276 Also contains various documentation updates and code clean-ups.
277
@@ -382,6 +422,45 @@ Fixes since v2.17
422 HT by default. The problem is fixed by forcing 8-space tabs.
423 (merge 379805051d bc/asciidoctor-tab-width later to maint).
424
425 + * Code clean-up to adjust to a more recent lockfile API convention that
426 + allows lockfile instances kept on the stack.
427 + (merge 0fa5a2ed8d ma/lockfile-cleanup later to maint).
428 +
429 + * the_repository->index is not a allocated piece of memory but
430 + repo_clear() indiscriminately attempted to free(3) it, which has
431 + been corrected.
432 + (merge 74373b5f10 nd/repo-clear-keep-the-index later to maint).
433 +
434 + * Code clean-up to avoid non-standard-conformant pointer arithmetic.
435 + (merge c112084af9 rs/no-null-ptr-arith-in-fast-export later to maint).
436 +
437 + * Code clean-up to turn history traversal more robust in a
438 + semi-corrupt repository.
439 + (merge 8702b30fd7 jk/unavailable-can-be-missing later to maint).
440 +
441 + * "git update-ref A B" is supposed to ensure that ref A does not yet
442 + exist when B is a NULL OID, but this check was not done correctly
443 + for pseudo-refs outside refs/ hierarchy, e.g. MERGE_HEAD.
444 +
445 + * "git submodule update" and "git submodule add" supported the
446 + "--reference" option to borrow objects from a neighbouring local
447 + repository like "git clone" does, but lacked the more recent
448 + invention "--dissociate". Also "git submodule add" has been taught
449 + to take the "--progress" option.
450 + (merge a0ef29341a cf/submodule-progress-dissociate later to maint).
451 +
452 + * Update credential-netrc helper (in contrib/) to allow customizing
453 + the GPG used to decrypt the encrypted .netrc file.
454 + (merge 786ef50a23 lm/credential-netrc later to maint).
455 +
456 + * "git submodule update" attempts two different kinds of "git fetch"
457 + against the upstream repository to grab a commit bound at the
458 + submodule's path, but it incorrectly gave up if the first kind
459 + (i.e. a normal fetch) failed, making the second "last resort" one
460 + (i.e. fetching an exact commit object by object name) ineffective.
461 + This has been corrected.
462 + (merge e30d833671 sb/submodule-update-try-harder later to maint).
463 +
464 * Other minor doc, test and build updates and code cleanups.
465 (merge 248f66ed8e nd/trace-with-env later to maint).
466 (merge 14ced5562c ys/bisect-object-id-missing-conversion-fix later to maint).
@@ -411,3 +490,4 @@ Fixes since v2.17
490 (merge 5356a3c354 ah/misc-doc-updates later to maint).
491 (merge 92c4a7a129 nd/completion-aliasfiletype-typofix later to maint).
492 (merge 58bd77b66a nd/pack-unreachable-objects-doc later to maint).
493 + (merge 4ed79d5203 sg/t6500-no-redirect-of-stdin later to maint).