| Git v2.55 Release Notes |
| ======================= |
| |
| UI, Workflows & Features |
| ------------------------ |
| |
| * Hook scripts defined via the configuration system can now be |
| configured to run in parallel. |
| |
| * The userdiff driver for the Scheme language has been extended to |
| cover other Lisp dialects. |
| |
| * Terminal control sequences coming over the sideband while talking |
| to a remote repository are mostly disabled by default, except for |
| ANSI color escape sequences. |
| |
| * "ort" merge backend improvements. |
| |
| * "git checkout -m another-branch" was invented to deal with local |
| changes to paths that are different between the current and the new |
| branch, but it gave only one chance to resolve conflicts. The command |
| was taught to create a stash to save the local changes. |
| |
| * A new builtin "git format-rev" is introduced for pretty formatting |
| one revision expression per line or commit object names found in |
| running text. |
| |
| * "git history" learned "fixup" command. |
| |
| * The internal URL parsing logic has been made accessible via a new |
| subcommand "git url-parse". |
| |
| * Misspelt proxy URL (e.g., httt://...) did not trigger any warning |
| or failure, which has been corrected. |
| |
| * Document the fact that .git/info/exclude is shared across worktrees |
| linked to the same repository. |
| |
| * The command line parser for "git diff" learned a few options take |
| only non-negative integers. |
| |
| |
| Performance, Internal Implementation, Development Support etc. |
| -------------------------------------------------------------- |
| |
| * Promisor remote handling has been refactored and fixed in |
| preparation for auto-configuration of advertised remotes. |
| |
| * Rust support is enabled by default (but still allows opting out) in |
| some future version of Git. |
| |
| * Preparation of the xdiff/ codebase to work with Rust. |
| |
| * Use a larger buffer size in the code paths to ingest pack stream. |
| |
| * Refactor service routines in the ref subsystem backends. |
| |
| * Shrink wasted memory in Myers diff that does not account for common |
| prefix and suffix removal. |
| |
| * Enable expensive tests to catch topics that may cause breakages on |
| integration branches closer to their origin in the contributor PR |
| builds. |
| |
| * "git merge-base" optimization. |
| |
| * The limit_list() function that is one of the core part of the |
| revision traversal infrastructure has been optimized by replacing |
| its use of linear list with priority queue. |
| |
| * In a lazy clone, "git cherry" and "git grep" often fetch necessary |
| blob objects one by one from promisor remotes. It has been corrected |
| to collect necessary object names and fetch them in bulk to gain |
| reasonable performance. |
| |
| * The logic to determine that branches in an octopus merge are |
| independent has been optimized. |
| |
| * The consistency checks for the files reference backend have been updated |
| to skip lock files earlier, avoiding unnecessary parsing of |
| intermediate files. |
| |
| * The negotiation tip options in "git fetch" have been reworked to |
| allow requiring certain refs to be sent as "have" lines, and to |
| restrict negotiation to a specific set of refs. |
| |
| * The repacking code has been refactored and compaction of MIDX layers |
| have been implemented, and incremental strategy that does not require |
| all-into-one repacking has been introduced. |
| |
| * ODB transaction interface is being reworked to explicitly handle |
| object writes. |
| |
| * Add a new odb "in-memory" source that is meant to only hold |
| tentative objects (like the virtual blob object that represents the |
| working tree file used by "git blame"). |
| |
| * Many uses of the_repository has been updated to use a more |
| appropriate struct repository instance in setup.c codepath. |
| |
| |
| Fixes since v2.54 |
| ----------------- |
| |
| * Code clean-up to use the right instance of a repository instance in |
| calls inside refs subsystem. |
| (merge 57c590feb9 sp/refs-reduce-the-repository later to maint). |
| |
| * The check that implements the logic to see if an in-core cache-tree |
| is fully ready to write out a tree object was broken, which has |
| been corrected. |
| (merge 521731213c dl/cache-tree-fully-valid-fix later to maint). |
| |
| * The test suite harness and many individual test scripts have been |
| updated to work correctly when 'set -e' is in effect, which helps |
| detect misspelled test commands. |
| (merge ffe8005b9d ps/test-set-e-clean later to maint). |
| |
| * Revert a recent change that introduced a regression to help mksh users. |
| |
| * Update various GitHub Actions versions. |
| |
| * Avoid hitting the pathname limit for socks proxy socket during the |
| test.. |
| |
| * To help Windows 10 installations, avoid removing files whose |
| contents are still mmap()'ed. |
| |
| * The 'git backfill' command now rejects revision-limiting options that |
| are incompatible with its operation, uses standard documentation for |
| revision ranges, and includes blobs from boundary commits by default |
| to improve performance of subsequent operations. |
| (merge a1ad4a0fca en/backfill-fixes-and-edges later to maint). |
| |
| * "git grep" update. |
| (merge 9ff4b5ab1b rs/grep-column-only-match-fix later to maint). |
| |
| * Headers from glibc 2.43 when used with clang does not allow |
| disabling C11 language features, causing build failures.. |
| |
| * The 'http.emptyAuth=auto' configuration now correctly attempts |
| Negotiate authentication before falling back to manual credentials. |
| This allows seamless Kerberos ticket-based authentication without |
| requiring users to explicitly set 'http.emptyAuth=true'. |
| (merge 4919938d28 mc/http-emptyauth-negotiate-fix later to maint). |
| |
| * Ramifications of turning off commit-graph has been documented a bit |
| more clearly. |
| (merge 48c855bb8f kh/doc-commit-graph later to maint). |
| |
| * "git rebase --update-refs", when used with an rebase.instructionFormat |
| with "%d" (describe) in it, tried to update local branch HEAD by |
| mistake, which has been corrected. |
| (merge 106b6885c7 ag/rebase-update-refs-limit-to-branches later to maint). |
| |
| * Tweak the way how sideband messages from remote are printed while |
| we talk with a remote repository to avoid tickling terminal |
| emulator glitches. |
| (merge 31e8fcabd8 rs/sideband-clear-line-before-print later to maint). |
| |
| * The configuration variable submodule.fetchJobs was not read correctly, |
| which has been corrected. |
| (merge aa45a5902f sj/submodule-update-clone-config-fix later to maint). |
| |
| * Update code paths that assumed "unsigned long" was long enough for |
| "size_t". |
| (merge 7a094d68a2 js/objects-larger-than-4gb-on-windows later to maint). |
| |
| * Stop using unmaintained custom allocator in Windows build which was |
| the last user of the code. |
| |
| * The computation to shorten the filenames shown in diffstat measured |
| width of individual UTF-8 characters to add up, but forgot to take |
| into account error cases (e.g., an invalid UTF-8 sequence, or a |
| control character). |
| (merge 09d86a3b98 en/diffstat-utf8-truncation-fix later to maint). |
| |
| * Some tests assume that bare repository accesses are by default |
| allowed; rewrite some of them to avoid the assumption, rewrite |
| others to explicitly set safe.bareRepository to allow them. |
| (merge 985b38ca6c js/adjust-tests-to-explicitly-access-bare-repo later to maint). |
| |
| * Signing commit with custom encoding was passing the data to be |
| signed at a wrong stage in the pipeline, which has been corrected. |
| (merge 7735d7eee3 bc/sign-commit-with-custom-encoding later to maint). |
| |
| * Further update to the i18n alias support to avoid regressions. |
| |
| * "git fetch --deepen=<n>" in a full clone truncated the history to <n> |
| commits deep, which has been corrected to be a no-op instead. |
| (merge 2431f5e0e5 sp/shallow-deepen-on-non-shallow-repo-fix later to maint). |
| |
| * "git maintenance" that goes background did not use the lockfile to |
| prevent multiple maintenance processes from running at the same |
| time, which has been corrected. |
| (merge 29364f1624 ps/maintenance-daemonize-lockfix later to maint). |
| |
| * Remove ineffective strbuf presizing that would have computed an |
| allocation that would not have fit in the available memory anyway, |
| or too small due to integer wraparound to cause immediate automatic |
| growing. |
| (merge a9ce8526dc jk/pretty-no-strbuf-presizing later to maint). |
| |
| * The HTTP walker misinterpreted the alternates file that gives an |
| absolute path when the server URL does not have the final slash |
| (i.e., "https://example.com" not "https://example.com/"). |
| (merge b92387cd55 jk/dumb-http-alternate-fix later to maint). |
| |
| * Other code cleanup, docfix, build fix, etc. |
| (merge 80f4b802e9 ja/doc-difftool-synopsis-style later to maint). |
| (merge b96490241e jc/doc-timestamps-in-stat later to maint). |
| (merge ef85286e51 ss/t7004-unhide-git-failures later to maint). |
| (merge 7584d10bc2 mf/format-patch-cover-letter-format-docfix later to maint). |
| (merge 8547908eb3 pw/rename-to-get-current-worktree later to maint). |
| (merge 890229b3f3 sg/t6112-unwanted-tilde-expansion-fix later to maint). |
| (merge ab9753e7bc kh/doc-restore-double-underscores-fix later to maint). |
| (merge 4a9e097228 za/t2000-modernise-more later to maint). |
| (merge b635fd0725 kh/doc-log-decorate-list later to maint). |
| (merge 65ea197dca jk/commit-sign-overflow-fix later to maint). |
| (merge 3ccb16052a jk/apply-leakfix later to maint). |
| (merge 5e6e8dc786 tb/pseudo-merge-bugfixes later to maint). |
| (merge 6d09e798bc pb/doc-diff-format-updates later to maint). |
| (merge 34a891a2d3 rs/trailer-fold-optim later to maint). |
| (merge 499f9048e0 ps/t3903-cover-stash-include-untracked later to maint). |
| (merge b56ab270aa jk/sq-dequote-cleanup later to maint). |
| (merge 29d9fdcf10 rs/use-builtin-add-overflow-explicitly-on-clang later to maint). |