@@ -32,6 +32,24 @@ UI, Workflows & Features
3232 automatically switch to quoted-printable when there is such a line
3333 in the payload has been introduced and is made the default.
3434
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+
3553
3654Performance, Internal Implementation, Development Support etc.
3755
@@ -94,6 +112,51 @@ Performance, Internal Implementation, Development Support etc.
94112 * test-lint now looks for broken use of "VAR=VAL shell_func" in test
95113 scripts.
96114
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+
97160
98161Fixes since v2.18
99162-----------------
@@ -223,6 +286,49 @@ Fixes since v2.18
223286 * core.commentchar is now honored when preparing the list of commits
224287 to replay in "rebase -i".
225288
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+
226332 * Code cleanup, docfix, build fix, etc.
227333 (merge aee9be2ebe sg/update-ref-stdin-cleanup later to maint).
228334 (merge 037714252f jc/clean-after-sanity-tests later to maint).
@@ -237,3 +343,4 @@ Fixes since v2.18
237343 (merge 5cf8e06474 js/enhanced-version-info later to maint).
238344 (merge 6aaded5509 tb/config-default later to maint).
239345 (merge 022d2ac1f3 sb/blame-color later to maint).
346+ (merge 5a06a20e0c bp/test-drop-caches-for-windows later to maint).
0 commit comments