| Git v2.44 Release Notes |
| ======================= |
| |
| Backward Compatibility Notes |
| |
| * "git chekcout -B <branch>" used to allow switching to a branch that |
| is in use on another worktree, but this was by mistake. The users |
| need to use "--ignore-other-worktrees" option. |
| |
| |
| UI, Workflows & Features |
| |
| * "git add" and "git stash" learned to support the ":(attr:...)" |
| magic pathspec. |
| |
| * "git rebase --autosquash" is now enabled for non-interactive rebase, |
| but it is still incompatible with the apply backend. |
| |
| * Introduce "git replay", a tool meant on the server side without |
| working tree to recreate a history. |
| |
| * "git merge-file" learned to take the "--diff-algorithm" option to |
| use algorithm different from the default "myers" diff. |
| |
| * Command line completion (in contrib/) learned to complete path |
| arguments to the "add/set" subcommands of "git sparse-checkout" |
| better. |
| |
| * "git checkout -B <branch> [<start-point>]" allowed a branch that is |
| in use in another worktree to be updated and checked out, which |
| might be a bit unexpected. The rule has been tightened, which is a |
| breaking change. "--ignore-other-worktrees" option is required to |
| unbreak you, if you are used to the current behaviour that "-B" |
| overrides the safety. |
| (merge b23285a921 jc/checkout-B-branch-in-use later to maint). |
| |
| |
| Performance, Internal Implementation, Development Support etc. |
| |
| * Process to add some form of low-level unit tests has started. |
| |
| * Add support for GitLab CI. |
| |
| * "git for-each-ref --no-sort" still sorted the refs alphabetically |
| which paid non-trivial cost. It has been redefined to show output |
| in an unspecified order, to allow certain optimizations to take |
| advantage of. |
| |
| * Simplify API implementation to delete references by eliminating |
| duplication. |
| |
| * Subject approxidate() and show_date() machinery to OSS-Fuzz. |
| |
| * A new helper to let us pretend that we called lstat() when we know |
| our cache_entry is up-to-date via fsmonitor. |
| |
| * The optimization based on fsmonitor in the "diff --cached" |
| codepath is resurrected with the "fake-lstat" introduced earlier. |
| |
| * Test balloon to use C99 "bool" type from <stdbool.h> has been |
| added. |
| |
| * "git clone" has been prepared to allow cloning a repository with |
| non-default hash function into a repository that uses the reftable |
| backend. |
| |
| |
| Fixes since v2.43 |
| ----------------- |
| |
| * The way CI testing used "prove" could lead to running the test |
| suite twice needlessly, which has been corrected. |
| (merge e7e03ef995 js/ci-discard-prove-state later to maint). |
| |
| * Update ref-related tests. |
| |
| * "git format-patch --encode-email-headers" ignored the option when |
| preparing the cover letter, which has been corrected. |
| |
| * Newer versions of Getopt::Long started giving warnings against our |
| (ab)use of it in "git send-email". Bump the minimum version |
| requirement for Perl to 5.8.1 (from September 2002) to allow |
| simplifying our implementation. |
| (merge 6ff658cc78 tz/send-email-negatable-options later to maint). |
| |
| * Earlier we stopped relying on commit-graph that (still) records |
| information about commits that are lost from the object store, |
| which has negative performance implications. The default has been |
| flipped to disable this pessimization. |
| (merge b1df3b3867 ps/commit-graph-less-paranoid later to maint). |
| |
| * Stale URLs have been updated to their current counterparts (or |
| archive.org) and HTTP links are replaced with working HTTPS links. |
| (merge 62b4f7b9c6 js/update-urls-in-doc-and-comment later to maint). |
| |
| * trace2 streams used to record the URLs that potentially embed |
| authentication material, which has been corrected. |
| (merge 16fa3eebc0 jh/trace2-redact-auth later to maint). |
| |
| * The sample pre-commit hook that tries to catch introduction of new |
| paths that use potentially non-portable characters did not notice |
| an existing path getting renamed to such a problematic path, when |
| rename detection was enabled. |
| (merge d9fd71fa2a jp/use-diff-index-in-pre-commit-sample later to maint). |
| |
| * The command line parser for the "log" family of commands was too |
| loose when parsing certain numbers, e.g., silently ignoring the |
| extra 'q' in "git log -n 1q" without complaining, which has been |
| tightened up. |
| (merge 71a1e94821 jc/revision-parse-int later to maint). |
| |
| * "git $cmd --end-of-options --rev -- --path" for some $cmd failed |
| to interpret "--rev" as a rev, and "--path" as a path. This was |
| fixed for many programs like "reset" and "checkout". |
| (merge 9385174627 jk/end-of-options later to maint). |
| |
| * "git bisect reset" has been taught to clean up state files and refs |
| even when BISECT_START file is gone. |
| (merge daaa03e54c jk/bisect-reset-fix later to maint). |
| |
| * Some codepaths did not correctly parse configuration variables |
| specified with valueless "true", which has been corrected. |
| (merge d49cb162fa jk/implicit-true later to maint). |
| |
| * Code clean-up for sanity checking of command line options for "git |
| show-ref". |
| (merge 7382497372 rs/show-ref-incompatible-options later to maint). |
| |
| * The code to parse the From e-mail header has been updated to avoid |
| recursion. |
| (merge dee182941f jk/mailinfo-iterative-unquote-comment later to maint). |
| |
| * "git fetch --atomic" issued an unnecessary empty error message, |
| which has been corrected. |
| (merge 18ce48918c jx/fetch-atomic-error-message-fix later to maint). |
| |
| * Command line completion script (in contrib/) learned to work better |
| with the reftable backend. |
| (merge 44dbb3bf29 sh/completion-with-reftable later to maint). |
| |
| * "git status" is taught to show both the branch being bisected and |
| being rebased when both are in effect at the same time. |
| (merge 990adccbdf rj/status-bisect-while-rebase later to maint). |
| |
| * Other code cleanup, docfix, build fix, etc. |
| (merge 50f1abcff6 js/packfile-h-typofix later to maint). |
| (merge cbf498eb53 jb/reflog-expire-delete-dry-run-options later to maint). |
| (merge 7854bf4960 rs/i18n-cannot-be-used-together later to maint). |
| (merge cd3c28c53a rs/column-leakfix later to maint). |
| (merge 866a1b9026 ps/ref-tests-update-more later to maint). |
| (merge e4299d26d4 mk/doc-gitfile-more later to maint). |
| (merge 792b86283b rs/incompatible-options-messages later to maint). |
| (merge ea8f9494ab jk/config-cleanup later to maint). |
| (merge d1bd3a8c34 jk/mailinfo-oob-read-fix later to maint). |
| (merge c0cadb0576 ps/reftable-fixes later to maint). |
| (merge 647b5e0998 ps/chainlint-self-check-update later to maint). |
| (merge 68fcebfb1a es/add-doc-list-short-form-of-all-in-synopsis later to maint). |
| (merge bc62d27d5c jc/doc-most-refs-are-not-that-special later to maint). |
| (merge 6d6f1cd7ee jc/doc-misspelt-refs-fix later to maint). |
| (merge 37e8d795be sp/test-i18ngrep later to maint). |
| (merge fbc6526ea6 rs/t6300-compressed-size-fix later to maint). |
| (merge 45184afb4d rs/rebase-use-strvec-pushf later to maint). |
| (merge a762af3dfd jc/retire-cas-opt-name-constant later to maint). |
| (merge de7c27a186 la/trailer-cleanups later to maint). |
| (merge d44b517137 jc/orphan-unborn later to maint). |