mirror of
https://github.com/git/git.git
synced 2026-08-09 17:40:16 +00:00
218 lines
10 KiB
Plaintext
218 lines
10 KiB
Plaintext
Git v2.56 Release Notes
|
|
=======================
|
|
|
|
UI, Workflows & Features
|
|
------------------------
|
|
|
|
* Advice shown by "git status" when the local branch is behind or has
|
|
diverged from its push branch has been updated to suggest "git pull
|
|
<remote> <branch>".
|
|
|
|
* The handling of promisor-remote protocol capability has been updated
|
|
to allow the other side to add to the list of promisor remotes via the
|
|
'promisor.acceptFromServerURL' configuration variable.
|
|
|
|
* The 'ort' merge backend has been hardened against corrupt trees by
|
|
ensuring it aborts under appropriate error conditions.
|
|
|
|
* The `fetch.followRemoteHEAD` configuration variable has been added to
|
|
provide a default for the per-remote `remote.<name>.followRemoteHEAD`
|
|
setting.
|
|
|
|
* "git log --follow" has been updated to better handle non-linear
|
|
history, in which the path being tracked gets renamed differently in
|
|
multiple history lines.
|
|
|
|
* The "git repo info" command has been taught new keys to output both
|
|
absolute and relative paths for "gitdir" and "commondir", supported by
|
|
a new path-formatting helper extracted from "git rev-parse".
|
|
|
|
* When 'git push origin/main' or 'git branch origin main' is run, the
|
|
command is now recognized as a potential typo, and advice has been
|
|
added to offer a typo fix.
|
|
|
|
* The 'git refs' toolbox has been extended with new 'create', 'delete',
|
|
'update', and 'rename' subcommands to create, delete, update, and
|
|
rename references, respectively.
|
|
|
|
* The experimental 'git history' command has been taught a new 'drop'
|
|
subcommand to remove a commit, with its descendants replayed onto its
|
|
parent.
|
|
|
|
* The alignment of commit object name abbreviations in 'git blame'
|
|
output has been optimized to reserve a column for marks (caret,
|
|
question mark, or asterisk) only when such marks are actually shown.
|
|
|
|
|
|
Performance, Internal Implementation, Development Support etc.
|
|
--------------------------------------------------------------
|
|
|
|
* The refactoring of 'setup.c' has been continued to drop remaining
|
|
global state (`git_work_tree_cfg`, `is_bare_repository_cfg`), updating
|
|
`is_bare_repository()` to no longer implicitly rely on
|
|
`the_repository`.
|
|
|
|
* Project-specific configuration for b4 has been introduced, and the
|
|
documentation has been updated to recommend using it as a
|
|
streamlined method for submitting patches.
|
|
|
|
* The default format path of git cat-file --batch has been optimized
|
|
to use strbuf_add_oid_hex() and strbuf_add_uint() instead of
|
|
strbuf_addf(), yielding a noticeable speedup.
|
|
|
|
* Commands that list branches and tags (like git branch and git tag)
|
|
have been optimized to pass the namespace prefix when initializing
|
|
their ref iterator, avoiding a loose-ref scaling regression in
|
|
repositories with many unrelated loose references.
|
|
|
|
* The packed object source has been refactored into a proper struct
|
|
odb_source.
|
|
|
|
* The global configuration variables protect_hfs and protect_ntfs have
|
|
been migrated into struct repo_config_values to tie them to
|
|
per-repository configuration state.
|
|
|
|
* The trailer sections in SubmittingPatches have been updated to
|
|
encourage use of standard trailers.
|
|
|
|
* The documentation in SubmittingPatches has been updated to clarify how
|
|
patch contributors should respond to design and viability critiques,
|
|
and how the resolution of such critiques should be recorded in the
|
|
final commit messages.
|
|
|
|
* The pack-objects command has been updated to support reachability
|
|
bitmaps and delta-islands concurrently with the `--path-walk` option,
|
|
allowing faster packaging by falling back to path-walk when bitmaps
|
|
cannot fully satisfy the request.
|
|
|
|
* Documentation on community contribution guidelines has been updated to
|
|
encourage replying to review comments before rerolling, and to advise
|
|
a default limit of at most one reroll per day to give reviewers across
|
|
different time zones enough time to participate.
|
|
|
|
* The lazy priority queue optimization pattern (deferring actual removal
|
|
in 'prio_queue_get()' to allow get+put fusion) has been folded
|
|
directly into 'prio_queue' itself, speeding up commit traversal
|
|
workflows and simplifying callers.
|
|
|
|
* The 'reprepare()' callback for object database sources has been
|
|
generalized into a 'prepare()' callback with an optional flush cache
|
|
flag, and a new 'odb_prepare()' wrapper has been introduced to allow
|
|
pre-opening object database sources.
|
|
|
|
* The 'whence' field in 'struct object_info' has been removed. The
|
|
backend-specific object information retrieval has been refactored into
|
|
an opt-in 'struct object_info_source' structure.
|
|
|
|
* A racy build failure under Meson has been corrected by ensuring that
|
|
the generated header file 'hook-list.h' is built before compiling
|
|
files in 'builtin_sources' that depend on it.
|
|
|
|
|
|
Fixes since v2.55
|
|
-----------------
|
|
|
|
* A regression in the error diagnosis code for invalid .git files has
|
|
been fixed, avoiding a potential NULL-pointer crash when reporting
|
|
that a .git file does not point to a valid repository.
|
|
(merge 54a441bcea jk/setup-gitfile-diag-fix later to maint).
|
|
|
|
* Support for hashing loose or packed objects larger than 4GB on Windows
|
|
and other LLP64 platforms has been improved by converting object header
|
|
buffers and data-handling functions from 'unsigned long' to 'size_t'.
|
|
(merge d99e13d0be po/hash-object-size-t later to maint).
|
|
|
|
* The display of the rebase todo list in "git status" has been
|
|
improved to correctly abbreviate object IDs for more commands and
|
|
avoid misinterpreting refs as object IDs.
|
|
(merge 6f34e5f9e3 pw/status-rebase-todo later to maint).
|
|
|
|
* Reference backend configuration has been updated to load lazily to
|
|
avoid recursive calls during repository initialization when 'onbranch'
|
|
configuration conditions are evaluated. This has also fixed a memory
|
|
leak and allowed the unused `chdir_notify_reparent()` machinery to be
|
|
dropped.
|
|
(merge d6522d01df ps/refs-onbranch-fixes later to maint).
|
|
|
|
* The connectivity check has been refactored to search for promisor
|
|
objects in a generic way using the object database interface,
|
|
rather than iterating packfiles directly. This allows connectivity
|
|
checks to work properly in repositories that do not use packfiles.
|
|
(merge 66ee9cb930 ps/connected-generic-promisor-checks later to maint).
|
|
|
|
* A test checking interactions between git rebase --quit and
|
|
autostash in t3420-rebase-autostash.sh has been corrected to use
|
|
test_path_is_missing instead of ! grep on a file that shouldn't
|
|
exist in the conflicted state.
|
|
(merge eaad121fef sg/t3420-do-not-grep-in-missing-file later to maint).
|
|
|
|
* The GPG and SSH signature parsing code has been corrected to strip
|
|
carriage return characters only when they immediately precede line
|
|
feeds, instead of unconditionally stripping all carriage returns.
|
|
(merge 5dea8b690b ad/gpg-strip-cr-before-lf later to maint).
|
|
|
|
* A memory leak in the 'reftable_writer_new()' initialization function
|
|
has been fixed by delaying the allocation of 'struct reftable_writer'
|
|
until after input options are validated.
|
|
(merge c6fb3b9c3e jk/reftable-leakfix later to maint).
|
|
|
|
* A memory leak in the '--base' handling of 'git format-patch' has been
|
|
plugged, and the leak reporting of the test suite when running under a
|
|
TAP harness has been improved.
|
|
(merge 973a0373ff jk/format-patch-leakfix later to maint).
|
|
|
|
* A write file stream resource leak has been fixed as part of a code
|
|
cleanup.
|
|
(merge ebb4d2ffa3 jc/history-message-prep-fix later to maint).
|
|
|
|
* Various memory leaks in the Bloom-filter code paths that are exposed
|
|
when running tests with the 'GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1'
|
|
environment variable have been plugged.
|
|
(merge 459088ec2e jk/bloom-leak-fixes later to maint).
|
|
|
|
* The wincred credential helper has been updated to avoid memory
|
|
corruption when erasing credentials and to prevent silent
|
|
credential loss when storing OAuth tokens, by correcting buffer
|
|
allocations and arguments passed to safe-CRT APIs.
|
|
(merge f635ab9ab4 js/wincred-fixes later to maint).
|
|
|
|
* Various code paths that initialize a cryptographic hash context but
|
|
bail out or finish without calling 'git_hash_final()' have been taught
|
|
to call 'git_hash_discard()' to release allocated resources, fixing
|
|
memory leaks when Git is built with non-default backends like
|
|
'OpenSSL' or 'libgcrypt'.
|
|
(merge 600588d2aa jk/hash-algo-leak-fixes later to maint).
|
|
|
|
* Various resource leaks, invalid file descriptor closures, and process
|
|
handle ownership issues flagged by Coverity have been fixed.
|
|
(merge 9184231173 js/coverity-fixes later to maint).
|
|
|
|
* Dockerized CI jobs running in private GitHub repositories have been
|
|
adjusted to use explicit process and file limits, preventing resource
|
|
exhaustion errors on private runners.
|
|
(merge bad766fbac js/ci-dockerized-pid-limit later to maint).
|
|
|
|
* Various test scripts have been updated to clean up large temporary
|
|
files and repositories, reducing peak disk usage during testing.
|
|
Also, expensive tests have been disabled on platforms that lack
|
|
sufficient resources (like 32-bit platforms and Windows CI runners),
|
|
and the long test suite has been enabled in GitLab CI.
|
|
(merge 84248444ad ps/t-fixes-for-git-test-long later to maint).
|
|
|
|
* The UTF-8 precomposition wrapper on macOS has been updated to use a
|
|
flexible array member to represent the name of a directory entry,
|
|
preventing fortified libc checks from failing when the name is
|
|
reallocated to be larger than 'NAME_MAX' bytes.
|
|
(merge 1eb281159f ih/precompose-flex-array later to maint).
|
|
|
|
* The 'git_hash_*()' wrappers have been updated to be used consistently
|
|
across the codebase instead of direct calls to members of 'struct
|
|
git_hash_algo', and 'git_hash_discard()' has been made idempotent to
|
|
simplify cleanups.
|
|
(merge 9e396aa553 jk/git-hash-cleanups later to maint).
|
|
|
|
* The sideband demultiplexer has been updated to recognize ANSI SGR
|
|
escape sequences that use colon-separated subfields (e.g., for
|
|
256-color or true-color codes).
|
|
(merge 3792b2aea4 mm/sideband-ansi-sgr-colon-fix later to maint).
|