@@ -67,6 +67,34 @@ UI, Workflows & Features
6767 * "git submodule" learns "set-branch" subcommand that allows the
6868 submodule.*.branch settings to be modified.
6969
70+ * "git merge-recursive" backend recently learned a new heuristics to
71+ infer file movement based on how other files in the same directory
72+ moved. As this is inherently less robust heuristics than the one
73+ based on the content similarity of the file itself (rather than
74+ based on what its neighbours are doing), it sometimes gives an
75+ outcome unexpected by the end users. This has been toned down to
76+ leave the renamed paths in higher/conflicted stages in the index so
77+ that the user can examine and confirm the result.
78+
79+ * "git tag" learned to give an advice suggesting it might be a
80+ mistake when creating an annotated or signed tag that points at
81+ another tag.
82+
83+ * The "git pack-objects" command learned to report the number of
84+ objects it packed via the trace2 mechanism.
85+
86+ * The list of conflicted paths shown in the editor while concluding a
87+ conflicted merge was shown above the scissors line when the
88+ clean-up mode is set to "scissors", even though it was commented
89+ out just like the list of updated paths and other information to
90+ help the user explain the merge better.
91+
92+ * The trace2 tracing facility learned to auto-generate a filename
93+ when told to log to a directory.
94+
95+ * "git clone" learned a new --server-option option when talking over
96+ the protocol version 2.
97+
7098
7199Performance, Internal Implementation, Development Support etc.
72100
@@ -347,10 +375,67 @@ Fixes since v2.21
347375 eager and considered nonsense strings as if they can be legitimate
348376 beginning of *-by: trailer. This has been tightened.
349377
350- * Build with gettext breaks on recent macOS w/ Homebrew when
351- /usr/local/bin is not on PATH, which has been corrected.
378+ * Builds with gettext broke on recent macOS w/ Homebrew, which
379+ seems to have stopped including from /usr/local/include; this
380+ has been corrected.
352381 (merge 92a1377a2a js/macos-gettext-build later to maint).
353382
383+ * Running "git add" on a repository created inside the current
384+ repository is an explicit indication that the user wants to add it
385+ as a submodule, but when the HEAD of the inner repository is on an
386+ unborn branch, it cannot be added as a submodule. Worse, the files
387+ in its working tree can be added as if they are a part of the outer
388+ repository, which is not what the user wants. These problems are
389+ being addressed.
390+ (merge f937bc2f86 km/empty-repo-is-still-a-repo later to maint).
391+
392+ * "git cherry-pick" run with the "-x" or the "--signoff" option used
393+ to (and more importantly, ought to) clean up the commit log message
394+ with the --cleanup=space option by default, but this has been
395+ broken since late 2017. This has been fixed.
396+
397+ * When given a tag that points at a commit-ish, "git replace --graft"
398+ failed to peel the tag before writing a replace ref, which did not
399+ make sense because the old graft mechanism the feature wants to
400+ mimick only allowed to replace one commit object with another.
401+ This has been fixed.
402+ (merge ee521ec4cb cc/replace-graft-peel-tags later to maint).
403+
404+ * Code tightening against a "wrong" object appearing where an object
405+ of a different type is expected, instead of blindly assuming that
406+ the connection between objects are correctly made.
407+ (merge 97dd512af7 tb/unexpected later to maint).
408+
409+ * An earlier update for MinGW and Cygwin accidentally broke MSVC build,
410+ which has been fixed.
411+ (merge 22c3634c0f ss/msvc-path-utils-fix later to maint).
412+
413+ * %(push:track) token used in the --format option to "git
414+ for-each-ref" and friends was not showing the right branch, which
415+ has been fixed.
416+ (merge c646d0934e dr/ref-filter-push-track-fix later to maint).
417+
418+ * "make check-docs", "git help -a", etc. did not account for cases
419+ where a particular build may deliberately omit some subcommands,
420+ which has been corrected.
421+
422+ * The logic to tell if a Git repository has a working tree protects
423+ "git branch -D" from removing the branch that is currently checked
424+ out by mistake. The implementation of this logic was broken for
425+ repositories with unusual name, which unfortunately is the norm for
426+ submodules these days. This has been fixed.
427+ (merge f3534c98e4 jt/submodule-repo-is-with-worktree later to maint).
428+
429+ * AIX shared the same build issues with other BSDs around fileno(fp),
430+ which has been corrected.
431+ (merge ee662bf5c6 cc/aix-has-fileno-as-a-macro later to maint).
432+
433+ * The autoconf generated configure script failed to use the right
434+ gettext() implementations from -libintl by ignoring useless stub
435+ implementations shipped in some C library, which has been
436+ corrected.
437+ (merge b71e56a683 vk/autoconf-gettext later to maint).
438+
354439 * Code cleanup, docfix, build fix, etc.
355440 (merge 11f470aee7 jc/test-yes-doc later to maint).
356441 (merge 90503a240b js/doc-symref-in-proto-v1 later to maint).
@@ -385,3 +470,4 @@ Fixes since v2.21
385470 (merge f64a21bd82 tz/doc-apostrophe-no-longer-needed later to maint).
386471 (merge dbe7b41019 js/t3301-unbreak-notes-test later to maint).
387472 (merge d8083e4180 km/t3000-retitle later to maint).
473+ (merge 9e4cbccbd7 tz/git-svn-doc-markup-fix later to maint).
0 commit comments