Git 2.31 Release Notes ====================== Updates since v2.30 ------------------- UI, Workflows & Features * The "--format=%(trailers)" mechanism gets enhanced to make it easier to design output for machine consumption. * When a user does not tell "git pull" to use rebase or merge, the command gives a loud message telling a user to choose between rebase or merge but creates a merge anyway, forcing users who would want to rebase to redo the operation. Fix an early part of this problem by tightening the condition to give the message---there is no reason to stop or force the user to choose between rebase or merge if the history fast-forwards. * The configuration variable 'core.abbrev' can be set to 'no' to force no abbreviation regardless of the hash algorithm. * "git rev-parse" can be explicitly told to give output as absolute or relative path with the `--path-format=(absolute|relative)` option. * Bash completion (in contrib/) update to make it easier for end-users to add completion for their custom "git" subcommands. * "git maintenance" learned to drive scheduled maintenance on platforms whose native scheduling methods are not 'cron'. Performance, Internal Implementation, Development Support etc. * A 3-year old test that was not testing anything useful has been corrected. * Retire more names with "sha1" in it. * The topological walk codepath is covered by new trace2 stats. Fixes since v2.30 ----------------- * Diagnose command line error of "git rebase" early. (merge ca5120c339 rs/rebase-commit-validation later to maint). * Clean up option descriptions in "git cmd --help". (merge e73fe3dd02 zh/arg-help-format later to maint). * "git stash" did not work well in a sparsely checked out working tree. (merge ba359fd507 en/stash-apply-sparse-checkout later to maint). * Some tests expect that "ls -l" output has either '-' or 'x' for group executable bit, but setgid bit can be inherited from parent directory and make these fields 'S' or 's' instead, causing test failures. (merge ea8bbf2a4e mt/t4129-with-setgid-dir later to maint). * "git for-each-repo --config= " should not run for any repository when the configuration variable is not defined even once. (merge 6c62f01552 ds/for-each-repo-noopfix later to maint). * Fix 2.29 regression where "git mergetool --tool-help" fails to list all the available tools. (merge 80f5a16798 pb/mergetool-tool-help-fix later to maint). * Fix for procedure to building CI test environment for mac. (merge 3831132ace jc/macos-install-dependencies-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 505a276596 pk/subsub-fetch-fix-take-2 later to maint). (merge 33fc56253b fc/t6030-bisect-reset-removes-auxiliary-files later to maint). (merge 7efc378205 ta/doc-typofix later to maint). (merge 1f4e9319c7 pb/doc-modules-git-work-tree-typofix later to maint). (merge 04f6b0a192 ma/t1300-cleanup later to maint). (merge 7b77f5a13e ma/doc-pack-format-varint-for-sizes later to maint). (merge cc2d43be2b nk/perf-fsmonitor-cleanup later to maint). (merge c8302c6c00 ar/t6016-modernise later to maint). (merge 0454986e78 jc/sign-off later to maint). (merge 155067ab4f vv/send-email-with-less-secure-apps-access later to maint). (merge acaabcf391 jk/t5516-deflake later to maint). (merge a1e03535db ad/t4129-setfacl-target-fix later to maint). (merge b356d23638 ug/doc-lose-dircache later to maint). (merge 9371c0e9dd ab/gettext-charset-comment-fix later to maint). (merge 52fc4f195c dl/p4-encode-after-kw-expansion later to maint). (merge 4eb56b56e7 bc/doc-status-short later to maint). (merge a4a1ca22ef tb/local-clone-race-doc later to maint).