| Git v2.43 Release Notes |
| ======================= |
| |
| Backward Compatibility Notes |
| |
| * The "--rfc" option of "git format-patch" used to be a valid way to |
| override an earlier "--subject-prefix=<something>" on the command |
| line and replace it with "[RFC PATCH]", but from this release, it |
| merely prefixes the string "RFC " in front of the given subject |
| prefix. If you are negatively affected by this change, please use |
| "--subject-prefix=PATCH --rfc" as a replacement. |
| |
| * "git rev-list --stdin" learned to take non-revisions (like "--not") |
| recently from the standard input, but the way such a "--not" was |
| handled was quite confusing, which has been rethought. The updated |
| rule is that "--not" given from the command line only affects revs |
| given from the command line that comes but not revs read from the |
| standard input, and "--not" read from the standard input affects |
| revs given from the stanrdard input and not revs given from the |
| command line. |
| |
| UI, Workflows & Features |
| |
| * A message written in olden time prevented a branch from getting |
| checked out saying it is already checked out elsewhere, but these |
| days, we treat a branch that is being bisected or rebased just like |
| a branch that is checked out and protect it. Rephrase the message |
| to say that the branch is in use. |
| |
| * Hourly and other schedule of "git maintenance" jobs are randomly |
| distributed now. |
| |
| * "git cmd -h" learned to signal which options can be negated by |
| listing such options like "--[no-]opt". |
| |
| * The way authentication related data other than passwords (e.g. |
| oath token and password expiration data) are stored in libsecret |
| keyrings has been rethought. |
| |
| * Update two credential helpers to correctly match which credential |
| to erase; they dropped not the ones with stale password. |
| |
| * Git GUI updates. |
| |
| * "git format-patch" learns a way to feed cover letter description, |
| that (1) can be used on detached HEAD where there is no branch |
| description available, and (2) also can override the branch |
| description if there is one. |
| |
| * Use of --max-pack-size to allow multiple packfiles to be created is |
| now supported even when we are sending unreachable objects to cruft |
| packs. |
| |
| * "git format-patch --rfc --subject-prefix=<foo>" used to ignore the |
| "--subject-prefix" option and used "[RFC PATCH]"; now we will add |
| "RFC" prefix to whatever subject prefix is specified. |
| |
| * "git log --format" has been taught the %(decorate) placeholder. |
| |
| * The default log message created by "git revert", when reverting a |
| commit that records a revert, has been tweaked, to encourage people |
| describe complex "revert of revert of revert" situation better in |
| their own words. |
| |
| * The command-line complation support (in contrib/) learned to |
| complete "git commit --trailer=" for possible trailer keys. |
| |
| * "git update-index" learns "--show-index-version" to inspect |
| the index format version used by the on-disk index file. |
| |
| * "git diff" learned diff.statNameWidth configuration variable, to |
| give the default width for the name part in the "--stat" output. |
| |
| * "git range-diff --notes=foo" compared "log --notes=foo --notes" of |
| the two ranges, instead of using just the specified notes tree. |
| |
| * The command line completion script (in contrib/) can be told to |
| complete aliases by including ": git <cmd> ;" in the alias to tell |
| it that the alias should be completed similar to how "git <cmd>" is |
| completed. The parsing code for the alias as been loosened to |
| allow ';' without an extra space before it. |
| |
| * "git for-each-ref" and friends learned to apply mailmap to |
| authorname and other fields. |
| |
| |
| Performance, Internal Implementation, Development Support etc. |
| |
| * "git check-attr" has been taught to work better with sparse-index. |
| |
| * It may be tempting to leave the help text NULL for a command line |
| option that is either hidden or too obvious, but "git subcmd -h" |
| and "git subcmd --help-all" would have segfaulted if done so. Now |
| the help text is optional. |
| |
| * Tests that are known to pass with LSan are now marked as such. |
| (merge 5fafe8c95f tb/mark-more-tests-as-leak-free later to maint). |
| |
| * Flaky "git p4" tests, as well as "git svn" tests, are now skipped |
| in the (rather expensive) sanitizer CI job. |
| (merge 6ba913629f js/ci-san-skip-p4-and-svn-tests later to maint). |
| |
| * Tests with LSan from time to time seem to emit harmless message |
| that makes our tests unnecessarily flaky; we work it around by |
| filtering the uninteresting output. |
| (merge 370ef7e40d jk/test-lsan-denoise-output later to maint). |
| |
| * Unused parameters to functions are marked as such, and/or removed, |
| in order to bring us closer to -Wunused-parameter clean. |
| |
| * The code to keep track of existing packs in the repository while |
| repacking has been refactored. |
| |
| |
| Fixes since v2.42 |
| ----------------- |
| |
| * Overly long label names used in the sequencer machinery are now |
| chopped to fit under filesystem limitation. |
| (merge ac300bda10 mp/rebase-label-length-limit later to maint). |
| |
| * Scalar updates. |
| (merge f9a547d3a7 ds/scalar-updates later to maint). |
| |
| * Tweak GitHub Actions CI so that pushing the same commit to multiple |
| branch tips at the same time will not waste building and testing |
| the same thing twice. |
| (merge 99fe06cbfd jc/ci-skip-same-commit later to maint). |
| |
| * The commit-graph verification code that detects mixture of zero and |
| non-zero generation numbers has been updated. |
| (merge db6044d762 tb/commit-graph-verify-fix later to maint). |
| |
| * "git diff -w --exit-code" with various options did not work |
| correctly, which is being addressed. |
| (merge a64f8b2595 jc/diff-exit-code-with-w-fixes later to maint). |
| |
| * transfer.unpackLimit ought to be used as a fallback, but overrode |
| fetch.unpackLimit and receive.unpackLimit instead. |
| (merge f3d33f8cfe ts/unpacklimit-config-fix later to maint). |
| |
| * The use of API between two calls to require_clean_work_tree() from |
| the sequencer code has been cleaned up for consistency. |
| (merge a9b5955e07 ob/sequencer-empty-hint-fix later to maint). |
| |
| * "git diff --no-such-option" and other corner cases around the exit |
| status of the "diff" command has been corrected. |
| (merge 5cc6b2d70b jk/diff-result-code-cleanup later to maint). |
| |
| * "git for-each-ref --sort='contents:size'" sorts the refs according |
| to size numerically, giving a ref that points at a blob twelve-byte |
| (12) long before showing a blob hundred-byte (100) long. |
| (merge 6d79cd8474 ks/ref-filter-sort-numerically later to maint). |
| |
| * We now limit depth of the tree objects and maximum length of |
| pathnames recorded in tree objects. |
| (merge 4d5693ba05 jk/tree-name-and-depth-limit later to maint). |
| |
| * Various fixes to the behavior of "rebase -i" when the command got |
| interrupted by conflicting changes. |
| (merge 203573b024 pw/rebase-i-after-failure later to maint). |
| |
| * References from description of the `--patch` option in various |
| manual pages have been simplified and improved. |
| (merge 11422f23e3 so/diff-doc-for-patch-update later to maint). |
| |
| * "git grep -e A --no-or -e B" is accepted, even though the negation |
| of "or" did not mean anything, which has been tightened. |
| (merge aae8558b10 rs/grep-no-no-or later to maint). |
| |
| * The completion script (in contrib/) has been taught to treat the |
| "-t" option to "git checkout" and "git switch" just like the |
| "--track" option, to complete remote-tracking branches. |
| (merge 9f892830d6 js/complete-checkout-t later to maint). |
| |
| * "git diff --no-index -R <(one) <(two)" did not work correctly, |
| which has been corrected. |
| (merge 48944f214c pw/diff-no-index-from-named-pipes later to maint). |
| |
| * Update "git maintenance" timers' implementation based on systemd |
| timers to work with WSL. |
| (merge 5e8515e8e8 js/systemd-timers-wsl-fix later to maint). |
| |
| * "git diff --cached" codepath did not fill the necessary stat |
| information for a file when fsmonitor knows it is clean and ended |
| up behaving as if it is not clean, which has been corrected. |
| (merge 6a044a2048 js/diff-cached-fsmonitor-fix later to maint). |
| |
| * Clarify how "alias.foo = : git cmd ; aliased-command-string" should |
| be spelled with necessary whitespaces around punctuation marks to |
| work. |
| (merge 4333267995 pb/completion-aliases-doc later to maint). |
| |
| * HTTP Header redaction code has been adjusted for a newer version of |
| cURL library that shows its traces differently from earlier |
| versions. |
| (merge 0763c3a2c4 jk/redact-h2h3-headers-fix later to maint). |
| |
| * An error message given by "git send-email" when given a malformed |
| address did not give correct information, which has been corrected. |
| (merge 12288cc44e tb/send-email-extract-valid-address-error-message-fix later to maint). |
| |
| * UBSan options were not propagated through the test framework to git |
| run via the httpd, unlike ASan options, which has been corrected. |
| (merge 252d693797 jk/test-pass-ubsan-options-to-http-test later to maint). |
| |
| * "checkout --merge -- path" and "update-index --unresolve path" did |
| not resurrect conflicted state that was resolved to remove path, |
| but now they do. |
| (merge 5bdedac3c7 jc/unresolve-removal later to maint). |
| |
| * The display width table for unicode characters has been updated for |
| Unicode 15.1 |
| (merge 872976c37e bb/unicode-width-table-15 later to maint). |
| |
| * Other code cleanup, docfix, build fix, etc. |
| (merge fd3ba590d8 ws/git-push-doc-grammofix later to maint). |
| (merge 5f33a843de ds/upload-pack-error-sequence-fix later to maint). |
| (merge beaa1d952b jk/function-pointer-mismatches-fix later to maint). |
| (merge b46d806ea5 ob/t9001-indent-fix later to maint). |
| (merge fdc9914c28 ja/worktree-orphan later to maint). |
| (merge c2cbefc510 jc/mv-d-to-d-error-message-fix later to maint). |
| (merge d0fc552bfc ch/t6300-verify-commit-test-cleanup later to maint). |
| (merge aa4b83dd5e ws/git-svn-retire-faketerm later to maint). |
| (merge edf80d23f1 jk/ci-retire-allow-ref later to maint). |
| (merge 256a94ef6c bc/more-git-var later to maint). |
| (merge 82af2c639c ob/sequencer-reword-error-message later to maint). |
| (merge 2a63c79dae rs/grep-parseopt-simplify later to maint). |
| (merge 078c42531e rs/name-rev-use-opt-hidden-bool later to maint). |
| (merge 63642d58b4 ob/sequencer-remove-dead-code later to maint). |
| (merge 8aae489756 ob/t3404-typofix later to maint). |
| (merge 58be11432e eg/config-type-path-docfix later to maint). |
| (merge 563f339d98 ch/clean-docfix later to maint). |
| (merge 4fbe83fcd9 hy/doc-show-is-like-log-not-diff-tree later to maint). |
| (merge 43abaaf008 ob/am-msgfix later to maint). |
| (merge c2c349a15c xz/commit-title-soft-limit-doc later to maint). |