Log message:
git: updated to 2.56.0
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.
Option parsing with git rev-parse --parseopt and in most git
subcommands has been updated to exit with 0 (instead of 129) when the
help option (-h or --help) is requested directly by the user,
aligning with standard Unix convention.
The [includeIf "condition"] conditional inclusion facility for
configuration files has been taught to use the location of the
worktree in its condition.
The usage string and SYNOPSIS for git fast-export have been
standardized to make them consistent with each other and with other
commands.
git log --graph has been modified to visually distinguish parentless
root commits (and commits that become roots due to history
simplification) by indenting them, preventing them from appearing
falsely related to unrelated commits rendered immediately above them.
Userdiff patterns for Swift have been added, with support for
Swift-specific constructs such as attributes, modifiers, failable
initializers, and generics.
Configuration file locking has been updated to retry for a short
period, avoiding failures when multiple processes attempt to update
the configuration simultaneously.
The remote-object-info command has been added to git cat-file
--batch-command, allowing clients to request object metadata
(currently size) from a remote server via protocol v2 without
downloading the entire object. Format placeholders are dynamically
filtered on the client based on server-advertised capabilities,
returning empty strings for inapplicable or unsupported fields.
git branch -d has been taught to report when a branch cannot be
deleted because it is being used in an active bisect run.
git mv has been updated to check for a missing destination
leading directory during the checking phase, allowing git mv -n
to report the failure. The error message when the rename(2)
syscall fails has also been improved to name both the source and
the destination.
git add has been taught a new --resolved option to stage
conflict-resolved paths, while leaving unrelated local changes
unstaged. It scans the unmerged paths for leftover conflict
markers and aborts if any are found.
The known limitations of the ref format migration in git refs have
been moved to be displayed as a warning admonition directly under the
description of the migrate subcommand, improving visibility. A
reference to git-maintenance has also been corrected to use the
linkgit macro.
The git bisect command has been taught a
--reset-when-found[=<where>] option that tells the command to
automatically run git bisect reset to jump back to the original
state or to the found culprit.
The git branch command has been taught the --delete-merged option
to remove local branches that are already merged into their tracked
remote-tracking branches.
The remote-object-info command for git cat-file --batch-command
has been extended to support the %(objecttype) placeholder.
The usage string of git fast-import has been updated to use the
parse_options() API for displaying help, and its SYNOPSIS in the
documentation has been standardized to match.
The error message given by git send-email when a message file is
missing a Subject: header has been clarified, and the error string
is now terminated with a newline so that Perl avoids appending its
internal source location data.
The --shallow-file option of git command requires a value, but the
code did not check the presence of a value and instead segfaulted
without one, which has been corrected.
git repack has been taught --drop-filtered to delete local
promisor blobs exceeding a limit (currently blob:limit=) in partial
clones, reclaiming space. Guards prevent running during other
operations or if referenced by the index.
The documentation for git format-rev has been updated to use the
[synopsis] block definition on code blocks to properly highlight
placeholders, and a quoting inconsistency in the running text has
been fixed.
The DWIM logic in git worktree add sometimes tried to infer a
remote-tracking branch when an explicit -b or -B option was
given to create a new branch, causing the explicit branch name to
be ignored, which has been corrected.
The command line completion (in contrib/) has been taught to handle
the experimental git history command.
git checkout and git worktree add makes guesses based on a name
of a remote-tracking branch, but does not give an error when such a
remote-tracking branch cannot be uniquely identified, which has
been corrected.
The git replay command has been taught the --linearize option to
drop merge commits and linearize the replayed history, mimicking git
rebase --no-rebase-merges.
The documentation for git cherry-pick has been updated to clarify
that the --no-commit option intentionally skips setting the
CHERRY_PICK_HEAD ref. A test has also been added to ensure this
behavior holds even when the operation stops for conflicts.
The git imap-send command has been taught to take the --draft
option to mark uploaded messages as drafts, which helps some email
clients render them properly for editing and sending.
The git rev-list command has been augmented with a --missing-only
option that filters the output to only show missing objects,
stripping the leading ? character and suppressing present objects,
which is useful when used in combination with --missing=print or
--missing=print-info.
|