@@ -49,6 +49,24 @@ UI, Workflows & Features
49
49
* "git mergetool" learned to offer Sublime Merge (smerge) as one of
50
50
its backends.
51
51
52
+ * A new hook "post-index-change" is called when the on-disk index
53
+ file changes, which can help e.g. a virtualized working tree
54
+ implementation.
55
+
56
+ * "git difftool" can now run outside a repository.
57
+
58
+ * "git checkout -m <other>" was about carrying the differences
59
+ between HEAD and the working-tree files forward while checking out
60
+ another branch, and ignored the differences between HEAD and the
61
+ index. The command has been taught to abort when the index and the
62
+ HEAD are different.
63
+
64
+ * A progress indicator has been added to the "index-pack" step, which
65
+ often makes users wait for completion during "git clone".
66
+
67
+ * "git submodule" learns "set-branch" subcommand that allows the
68
+ submodule.*.branch settings to be modified.
69
+
52
70
53
71
Performance, Internal Implementation, Development Support etc.
54
72
@@ -94,6 +112,24 @@ Performance, Internal Implementation, Development Support etc.
94
112
command getting non-unique when a new option that share the same
95
113
prefix is added.
96
114
115
+ * The scripted version of "git rebase -i" wrote and rewrote the todo
116
+ list many times during a single step of its operation, and the
117
+ recent C-rewrite made a faithful conversion of the logic to C. The
118
+ implementation has been updated to carry necessary information
119
+ around in-core to avoid rewriting the same file over and over
120
+ unnecessarily.
121
+
122
+ * Test framework update to more robustly clean up leftover files and
123
+ processes after tests are done.
124
+
125
+ * Conversion from unsigned char[20] to struct object_id continues.
126
+
127
+ * While running "git diff" in a lazy clone, we can upfront know which
128
+ missing blobs we will need, instead of waiting for the on-demand
129
+ machinery to discover them one by one. The code learned to aim to
130
+ achieve better performance by batching the request for these
131
+ promised blobs.
132
+
97
133
98
134
Fixes since v2.21
99
135
-----------------
@@ -240,6 +276,81 @@ Fixes since v2.21
240
276
* The documentation for "git read-tree --reset -u" has been updated.
241
277
(merge b5a0bd694c nd/read-tree-reset-doc later to maint).
242
278
279
+ * Code clean-up around a much-less-important-than-it-used-to-be
280
+ update_server_info() funtion.
281
+ (merge b3223761c8 jk/server-info-rabbit-hole later to maint).
282
+
283
+ * The message given when "git commit -a <paths>" errors out has been
284
+ updated.
285
+ (merge 5a1dbd48bc nd/commit-a-with-paths-msg-update later to maint).
286
+
287
+ * "git cherry-pick --options A..B", after giving control back to the
288
+ user to ask help resolving a conflicted step, did not honor the
289
+ options it originally received, which has been corrected.
290
+
291
+ * Various glitches in "git gc" around reflog handling have been fixed.
292
+
293
+ * The code to read from commit-graph file has been cleanup with more
294
+ careful error checking before using data read from it.
295
+
296
+ * Performance fix around "git fetch" that grabs many refs.
297
+ (merge b764300912 jt/fetch-pack-wanted-refs-optim later to maint).
298
+
299
+ * Protocol v2 support in "git fetch-pack" of shallow clones has been
300
+ corrected.
301
+
302
+ * Performance fix around "git blame", especially in a linear history
303
+ (which is the norm we should optimize for).
304
+ (merge f892014943 dk/blame-keep-origin-blob later to maint).
305
+
306
+ * Performance fix for "rev-list --parents -- pathspec".
307
+ (merge 8320b1dbe7 jk/revision-rewritten-parents-in-prio-queue later to maint).
308
+
309
+ * Updating the display with progress message has been cleaned up to
310
+ deal better with overlong messages.
311
+ (merge 545dc345eb sg/overlong-progress-fix later to maint).
312
+
313
+ * "git blame -- path" in a non-bare repository starts blaming from
314
+ the working tree, and the same command in a bare repository errors
315
+ out because there is no working tree by definition. The command
316
+ has been taught to instead start blaming from the commit at HEAD,
317
+ which is more useful.
318
+ (merge a544fb08f8 sg/blame-in-bare-start-at-head later to maint).
319
+
320
+ * An underallocation in the code to read the untracked cache
321
+ extension has been corrected.
322
+ (merge 3a7b45a623 js/untracked-cache-allocfix later to maint).
323
+
324
+ * The code is updated to check the result of memory allocation before
325
+ it is used in more places, by using xmalloc and/or xcalloc calls.
326
+ (merge 999b951b28 jk/xmalloc later to maint).
327
+
328
+ * The GETTEXT_POISON test option has been quite broken ever since it
329
+ was made runtime-tunable, which has been fixed.
330
+ (merge f88b9cb603 jc/gettext-test-fix later to maint).
331
+
332
+ * Test fix on APFS that is incapable of store paths in Latin-1.
333
+ (merge 3889149619 js/iso8895-test-on-apfs later to maint).
334
+
335
+ * "git submodule foreach <command> --quiet" did not pass the option
336
+ down correctly, which has been corrected.
337
+ (merge a282f5a906 nd/submodule-foreach-quiet later to maint).
338
+
339
+ * "git send-email" has been taught to use quoted-printable when the
340
+ payload contains carriage-return. The use of the mechanism is in
341
+ line with the design originally added the codepath that chooses QP
342
+ when the payload has overly long lines.
343
+ (merge 74d76a1701 bc/send-email-qp-cr later to maint).
344
+
345
+ * The recently added feature to add addresses that are on
346
+ anything-by: trailers in 'git send-email' was found to be way too
347
+ eager and considered nonsense strings as if they can be legitimate
348
+ beginning of *-by: trailer. This has been tightened.
349
+
350
+ * Build with gettext breaks on recent macOS w/ Homebrew when
351
+ /usr/local/bin is not on PATH, which has been corrected.
352
+ (merge 92a1377a2a js/macos-gettext-build later to maint).
353
+
243
354
* Code cleanup, docfix, build fix, etc.
244
355
(merge 11f470aee7 jc/test-yes-doc later to maint).
245
356
(merge 90503a240b js/doc-symref-in-proto-v1 later to maint).
@@ -267,3 +378,10 @@ Fixes since v2.21
267
378
(merge 0b918b75af sg/t5318-cleanup later to maint).
268
379
(merge 68ed71b53c cb/doco-mono later to maint).
269
380
(merge a34dca2451 nd/interpret-trailers-docfix later to maint).
381
+ (merge cf7b857a77 en/fast-import-parsing-fix later to maint).
382
+ (merge fe61ccbc35 po/rerere-doc-fmt later to maint).
383
+ (merge ffea0248bf po/describe-not-necessarily-7 later to maint).
384
+ (merge 7cb7283adb tg/ls-files-debug-format-fix later to maint).
385
+ (merge f64a21bd82 tz/doc-apostrophe-no-longer-needed later to maint).
386
+ (merge dbe7b41019 js/t3301-unbreak-notes-test later to maint).
387
+ (merge d8083e4180 km/t3000-retitle later to maint).
0 commit comments