| Git 2.31 Release Notes |
| ====================== |
| |
| Updates since v2.30 |
| ------------------- |
| |
| Backward incompatible and other important changes |
| |
| * The "pack-redundant" command, which has been left stale with almost |
| unusable performance issues, now warns loudly when it gets used, as |
| we no longer want to recommend its use (instead just "repack -d" |
| instead). |
| |
| * The development community has adopted Contributor Covenant v2.0 to |
| update from v1.4 that we have been using. |
| |
| |
| 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'. |
| |
| * After expiring a reflog and making a single commit, the reflog for |
| the branch would record a single entry that knows both @{0} and |
| @{1}, but we failed to answer "what commit were we on?", i.e. @{1} |
| |
| * "git bundle" learns "--stdin" option to read its refs from the |
| standard input. Also, it now does not lose refs whey they point |
| at the same object. |
| |
| 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. |
| |
| * Update the Code-of-conduct to version 2.0 from the upstream (we've |
| been using version 1.4). |
| |
| * "git mktag" validates its input using its own rules before writing |
| a tag object---it has been updated to share the logic with "git |
| fsck". |
| |
| * Two new ways to feed configuration variable-value pairs via |
| environment variables have been introduced, and the way |
| GIT_CONFIG_PARAMETERS encodes variable/value pairs has been tweaked |
| to make it more robust. |
| |
| * Tests have been updated so that they do not to get affected by the |
| name of the default branch "git init" creates. |
| |
| * "git fetch" learns to treat ref updates atomically in all-or-none |
| fashion, just like "git push" does, with the new "--atomic" option. |
| |
| |
| 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=<var> <cmd>" should not run <cmd> for |
| any repository when the configuration variable <var> 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). |
| |
| * The implementation of "git branch --sort" wrt the detached HEAD |
| display has always been hacky, which has been cleaned up. |
| (merge 4045f659bd ab/branch-sort later to maint). |
| |
| * Newline characters in the host and path part of git:// URL are |
| now forbidden. |
| (merge 6aed56736b jk/forbid-lf-in-git-url later to maint). |
| |
| * "git diff" showed a submodule working tree with untracked cruft as |
| "Submodule commit <objectname>-dirty", but a natural expectation is |
| that the "-dirty" indicator would align with "git describe --dirty", |
| which does not consider having untracked files in the working tree |
| as source of dirtiness. The inconsistency has been fixed. |
| |
| * When more than one commit with the same patch ID appears on one |
| side, "git log --cherry-pick A...B" did not exclude them all when a |
| commit with the same patch ID appears on the other side. Now it |
| does. |
| (merge c9e3a4e76d jk/log-cherry-pick-duplicate-patches 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). |
| (merge 6a8c89d053 ma/more-opaque-lock-file later to maint). |