@@ -49,6 +49,24 @@ UI, Workflows & Features
4949 * "git mergetool" learned to offer Sublime Merge (smerge) as one of
5050 its backends.
5151
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+
5270
5371Performance, Internal Implementation, Development Support etc.
5472
@@ -94,6 +112,24 @@ Performance, Internal Implementation, Development Support etc.
94112 command getting non-unique when a new option that share the same
95113 prefix is added.
96114
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+
97133
98134Fixes since v2.21
99135-----------------
@@ -240,6 +276,81 @@ Fixes since v2.21
240276 * The documentation for "git read-tree --reset -u" has been updated.
241277 (merge b5a0bd694c nd/read-tree-reset-doc later to maint).
242278
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+
243354 * Code cleanup, docfix, build fix, etc.
244355 (merge 11f470aee7 jc/test-yes-doc later to maint).
245356 (merge 90503a240b js/doc-symref-in-proto-v1 later to maint).
@@ -267,3 +378,10 @@ Fixes since v2.21
267378 (merge 0b918b75af sg/t5318-cleanup later to maint).
268379 (merge 68ed71b53c cb/doco-mono later to maint).
269380 (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