Fifth batch for 2.19 cycle

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

Junio C Hamano committed Aug 2, 2018 at 15:38 UTC 1d89318c48d233d52f1db230cf622935ac3c69fa
1 file changed +107
Documentation/RelNotes/2.19.0.txt
+107
@@ -32,6 +32,24 @@ UI, Workflows & Features
32 automatically switch to quoted-printable when there is such a line
33 in the payload has been introduced and is made the default.
34
35 + * "git checkout" and "git worktree add" learned to honor
36 + checkout.defaultRemote when auto-vivifying a local branch out of a
37 + remote tracking branch in a repository with multiple remotes that
38 + have tracking branches that share the same names.
39 + (merge 8d7b558bae ab/checkout-default-remote later to maint).
40 +
41 + * "git grep" learned the "--only-matching" option.
42 +
43 + * "git rebase --rebase-merges" mode now handles octopus merges as
44 + well.
45 +
46 + * Add a server-side knob to skip commits in exponential/fibbonacci
47 + stride in an attempt to cover wider swath of history with a smaller
48 + number of iterations, potentially accepting a larger packfile
49 + transfer, instead of going back one commit a time during common
50 + ancestor discovery during the "git fetch" transaction.
51 + (merge 42cc7485a2 jt/fetch-negotiator-skipping later to maint).
52 +
53
54 Performance, Internal Implementation, Development Support etc.
55
@@ -94,6 +112,51 @@ Performance, Internal Implementation, Development Support etc.
112 * test-lint now looks for broken use of "VAR=VAL shell_func" in test
113 scripts.
114
115 + * Conversion from uchar[40] to struct object_id continues.
116 +
117 + * Recent "security fix" to pay attention to contents of ".gitmodules"
118 + while accepting "git push" was a bit overly strict than necessary,
119 + which has been adjusted.
120 +
121 + * "git fsck" learns to make sure the optional commit-graph file is in
122 + a sane state.
123 +
124 + * "git diff --color-moved" feature has further been tweaked.
125 +
126 + * Code restructuring and a small fix to transport protocol v2 during
127 + fetching.
128 +
129 + * Parsing of -L[<N>][,[<M>]] parameters "git blame" and "git log"
130 + take has been tweaked.
131 +
132 + * lookup_commit_reference() and friends have been updated to find
133 + in-core object for a specific in-core repository instance.
134 +
135 + * Various glitches in the heuristics of merge-recursive strategy have
136 + been documented in new tests.
137 +
138 + * "git fetch" learned a new option "--negotiation-tip" to limit the
139 + set of commits it tells the other end as "have", to reduce wasted
140 + bandwidth and cycles, which would be helpful when the receiving
141 + repository has a lot of refs that have little to do with the
142 + history at the remote it is fetching from.
143 +
144 + * For a large tree, the index needs to hold many cache entries
145 + allocated on heap. These cache entries are now allocated out of a
146 + dedicated memory pool to amortize malloc(3) overhead.
147 +
148 + * Tests to cover various conflicting cases have been added for
149 + merge-recursive.
150 +
151 + * Tests to cover conflict cases that involve submodules have been
152 + added for merge-recursive.
153 +
154 + * Look for broken "&&" chains that are hidden in subshell, many of
155 + which have been found and corrected.
156 +
157 + * The singleton commit-graph in-core instance is made per in-core
158 + repository instance.
159 +
160
161 Fixes since v2.18
162 -----------------
@@ -223,6 +286,49 @@ Fixes since v2.18
286 * core.commentchar is now honored when preparing the list of commits
287 to replay in "rebase -i".
288
289 + * "git pull --rebase" on a corrupt HEAD caused a segfault. In
290 + general we substitute an empty tree object when running the in-core
291 + equivalent of the diff-index command, and the codepath has been
292 + corrected to do so as well to fix this issue.
293 + (merge 3506dc9445 jk/has-uncommitted-changes-fix later to maint).
294 +
295 + * httpd tests saw occasional breakage due to the way its access log
296 + gets inspected by the tests, which has been updated to make them
297 + less flaky.
298 + (merge e8b3b2e275 sg/httpd-test-unflake later to maint).
299 +
300 + * Tests to cover more D/F conflict cases have been added for
301 + merge-recursive.
302 +
303 + * "git gc --auto" opens file descriptors for the packfiles before
304 + spawning "git repack/prune", which would upset Windows that does
305 + not want a process to work on a file that is open by another
306 + process. The issue has been worked around.
307 + (merge 12e73a3ce4 kg/gc-auto-windows-workaround later to maint).
308 +
309 + * The recursive merge strategy did not properly ensure there was no
310 + change between HEAD and the index before performing its operation,
311 + which has been corrected.
312 + (merge 55f39cf755 en/dirty-merge-fixes later to maint).
313 +
314 + * "git rebase" started exporting GIT_DIR environment variable and
315 + exposing it to hook scripts when part of it got rewritten in C.
316 + Instead of matching the old scripted Porcelains' behaviour,
317 + compensate by also exporting GIT_WORK_TREE environment as well to
318 + lessen the damage. This can harm existing hooks that want to
319 + operate on different repository, but the current behaviour is
320 + already broken for them anyway.
321 + (merge ab5e67d751 bc/sequencer-export-work-tree-as-well later to maint).
322 +
323 + * "git send-email" when using in a batched mode that limits the
324 + number of messages sent in a single SMTP session lost the contents
325 + of the variable used to choose between tls/ssl, unable to send the
326 + second and later batches, which has been fixed.
327 + (merge 636f3d7ac5 jm/send-email-tls-auth-on-batch later to maint).
328 +
329 + * The lazy clone support had a few places where missing but promised
330 + objects were not correctly tolerated, which have been fixed.
331 +
332 * Code cleanup, docfix, build fix, etc.
333 (merge aee9be2ebe sg/update-ref-stdin-cleanup later to maint).
334 (merge 037714252f jc/clean-after-sanity-tests later to maint).
@@ -237,3 +343,4 @@ Fixes since v2.18
343 (merge 5cf8e06474 js/enhanced-version-info later to maint).
344 (merge 6aaded5509 tb/config-default later to maint).
345 (merge 022d2ac1f3 sb/blame-color later to maint).
346 + (merge 5a06a20e0c bp/test-drop-caches-for-windows later to maint).