292 lines
11 KiB
Plaintext
292 lines
11 KiB
Plaintext
Git v2.48 Release Notes
|
|
=======================
|
|
|
|
UI, Workflows & Features
|
|
------------------------
|
|
|
|
* A new configuration variable remote.<name>.serverOption makes the
|
|
transport layer act as if the --serverOption=<value> option is
|
|
given from the command line.
|
|
|
|
* "git rebase --rebase-merges" now uses branch names as labels when
|
|
able.
|
|
|
|
* Describe the policy to introduce breaking changes.
|
|
|
|
* Teach 'git notes add' and 'git notes append' a new '-e' flag,
|
|
instructing them to open the note in $GIT_EDITOR before saving.
|
|
|
|
* Documentation for "git bundle" saw improvements to more prominently
|
|
call out the use of '--all' when creating bundles.
|
|
|
|
* Drop support for older libcURL and Perl.
|
|
|
|
* End-user experience of "git mergetool" when the command errors out
|
|
has been improved.
|
|
|
|
* "git bundle --unbundle" and "git clone" running on a bundle file
|
|
both learned to trigger fsck over the new objects with configurable
|
|
fck check levels.
|
|
|
|
* When "git fetch $remote" notices that refs/remotes/$remote/HEAD is
|
|
missing and discovers what branch the other side points with its
|
|
HEAD, refs/remotes/$remote/HEAD is updated to point to it.
|
|
|
|
* "git fetch" honors "remote.<remote>.followRemoteHEAD" settings to
|
|
tweak the remote-tracking HEAD in "refs/remotes/<remote>/HEAD".
|
|
|
|
|
|
Performance, Internal Implementation, Development Support etc.
|
|
--------------------------------------------------------------
|
|
|
|
* Document "amlog" notes.
|
|
|
|
* The way AsciiDoc is used for SYNOPSIS part of the manual pages has
|
|
been revamped. The sources, at least for the simple cases, got
|
|
vastly pleasant to work with.
|
|
|
|
* The reftable library is now prepared to expect that the memory
|
|
allocation function given to it may fail to allocate and to deal
|
|
with such an error.
|
|
|
|
* An extra worktree attached to a repository points at each other to
|
|
allow finding the repository from the worktree and vice versa
|
|
possible. Turn this linkage to relative paths.
|
|
|
|
* Enable Windows-based CI in GitLab.
|
|
|
|
* Commands that can also work outside Git have learned to take the
|
|
repository instance "repo" when we know we are in a repository, and
|
|
NULL when we are not, in a parameter. The uses of the_repository
|
|
variable in a few of them have been removed using the new calling
|
|
convention.
|
|
|
|
* The reftable sub-system grew a new reftable-specific strbuf
|
|
replacement to reduce its dependency on Git-specific data
|
|
structures.
|
|
|
|
* The ref-filter machinery learns to recognize and avoid cases where
|
|
sorting would be redundant.
|
|
|
|
* Various platform compatibility fixes split out of the larger effort
|
|
to use Meson as the primary build tool.
|
|
|
|
* Treat ECONNABORTED the same as ECONNRESET in 'git credential-cache'
|
|
to work around a possible Cygwin regression. This resolves a race
|
|
condition caused by changes in Cygwin's handling of socket
|
|
closures, allowing the client to exit cleanly when encountering
|
|
ECONNABORTED.
|
|
|
|
* Demonstrate an assertion failure in 'git mv'.
|
|
|
|
* Documentation update to clarify that 'uploadpack.allowAnySHA1InWant'
|
|
implies both 'allowTipSHA1InWant' and 'allowReachableSHA1InWant'.
|
|
|
|
* Replace various calls to atoi() with strtol_i() and strtoul_ui(),
|
|
and add improved error handling.
|
|
|
|
* Documentation updates to 'git-update-ref(1)'.
|
|
|
|
* Update the project's CodingGuidelines to discourage naming functions
|
|
with a "_1()" suffix.
|
|
|
|
* Updates the '.clang-format' to match project conventions.
|
|
|
|
* Centralize documentation for repository extensions into a single place.
|
|
|
|
* Buildfix and upgrade of Clar to a newer version.
|
|
|
|
* Documentation mark-up updates.
|
|
|
|
* Renaming a handful of variables and structure fields.
|
|
|
|
* Fix for clar unit tests to support CMake build.
|
|
|
|
* C23 compatibility updates.
|
|
|
|
* GCC 15 compatibility updates.
|
|
|
|
* We now ensure "index-pack" is used with the "--promisor" option
|
|
only during a "git fetch".
|
|
|
|
* The migration procedure between two ref backends has been optimized.
|
|
|
|
* "git fsck" learned to issue warnings on "curiously formatted" ref
|
|
contents that have always been taken valid but something Git
|
|
wouldn't have written itself (e.g., missing terminating end-of-line
|
|
after the full object name).
|
|
|
|
* Work around Coverity warning that would not trigger in practice.
|
|
|
|
* Built-in Git subcommands are supplied the repository object to work
|
|
with; they learned to do the same when they invoke sub-subcommands.
|
|
|
|
* Drop support for ancient environments in various CI jobs.
|
|
|
|
* Isolates the reftable subsystem from the rest of Git's codebase by
|
|
using fewer pieces of Git's infrastructure.
|
|
|
|
* Optimize reading random references out of the reftable backend by
|
|
allowing reuse of iterator objects.
|
|
|
|
* Backport oss-fuzz tests for us to our codebase.
|
|
|
|
* Introduce a new repository extension to prevent older Git versions
|
|
from mis-interpreting worktrees created with relative paths.
|
|
|
|
* Yet another "pass the repository through the callchain" topic.
|
|
|
|
* "git describe" learned to stop digging the history needlessly
|
|
deeper.
|
|
|
|
* Build procedure update plus introduction of Meson based builds.
|
|
|
|
|
|
Fixes since v2.47
|
|
-----------------
|
|
|
|
* Doc update to clarify how periodical maintenance are scheduled,
|
|
spread across time to avoid thundering hurds.
|
|
|
|
* Use after free and double freeing at the end in "git log -L... -p"
|
|
had been identified and fixed.
|
|
|
|
* On macOS, fsmonitor can fall into a race condition that results in
|
|
a client waiting forever to be notified for an event that have
|
|
already happened. This problem has been corrected.
|
|
|
|
* "git maintenance start" crashed due to an uninitialized variable
|
|
reference, which has been corrected.
|
|
|
|
* Fail gracefully instead of crashing when attempting to write the
|
|
contents of a corrupt in-core index as a tree object.
|
|
|
|
* A "git fetch" from the superproject going down to a submodule used
|
|
a wrong remote when the default remote names are set differently
|
|
between them.
|
|
|
|
* Fixes compile time warnings with 64-bit MSVC.
|
|
|
|
* Teaches 'shortlog' to explicitly use SHA-1 when operating outside
|
|
of a repository.
|
|
|
|
* Fix 'git grep' regression on macOS by disabling lookahead when
|
|
encountering invalid UTF-8 byte sequences.
|
|
|
|
* The dumb-http code regressed when the result of re-indexing a pack
|
|
yielded an *.idx file that differs in content from the *.idx file
|
|
it downloaded from the remote. This has been corrected by no longer
|
|
relying on: the *.idx file we got from the remote.
|
|
|
|
* When called with '--left-right' and '--use-bitmap-index', 'rev-list'
|
|
will produce output without any left/right markers, which has been
|
|
corrected.
|
|
|
|
* More leakfixes.
|
|
|
|
* Test modernization.
|
|
|
|
* The "--shallow-exclude=<ref>" option to various history transfer
|
|
commands takes a ref, not an arbitrary revision.
|
|
|
|
* A regression where commit objects missing from a commit-graph can
|
|
cause an infinite loop when doing a fetch in a partial clone has
|
|
been fixed.
|
|
|
|
* The MinGW compatibility layer has been taught to support POSIX
|
|
semantics for atomic renames when other process(es) have a file
|
|
opened at the destination path.
|
|
|
|
* "git gc" discards any objects that are outside promisor packs that
|
|
are referred to by an object in a promisor pack, and we do not
|
|
refetch them from the promisor at runtime, resulting an unusable
|
|
repository. Work it around by including these objects in the
|
|
referring promisor pack at the receiving end of the fetch.
|
|
|
|
* Avoid build/test breakage on a system without working malloc debug
|
|
support dynamic library.
|
|
(merge 72ad6dc368 jk/test-malloc-debug-check later to maint).
|
|
|
|
* Double-free fix.
|
|
(merge fe17a25905 jk/fetch-prefetch-double-free-fix later to maint).
|
|
|
|
* Use of some uninitialized variables in "git difftool" has been
|
|
corrected.
|
|
|
|
* Object reuse code based on multi-pack-index sent an unwanted copy
|
|
of object.
|
|
(merge e199290592 tb/multi-pack-reuse-dupfix later to maint).
|
|
|
|
* "git fast-import" can be tricked into a replace ref that maps an
|
|
object to itself, which is a useless thing to do.
|
|
(merge 5e904f1a4a en/fast-import-avoid-self-replace later to maint).
|
|
|
|
* The ref-transaction hook triggered for reflog updates, which has
|
|
been corrected.
|
|
(merge b886db48c6 kn/ref-transaction-hook-with-reflog later to maint).
|
|
|
|
* Give a bit of advice/hint message when "git maintenance" stops finding a
|
|
lock file left by another instance that still is potentially running.
|
|
(merge ba874d1dac ps/gc-stale-lock-warning later to maint).
|
|
|
|
* Use the right helper program to measure file size in performance tests.
|
|
(merge 3f97f1bce6 tb/use-test-file-size-more later to maint).
|
|
|
|
* A double-free that may not trigger in practice by luck has been
|
|
corrected in the reference resolution code.
|
|
(merge b6318cf23a sj/refs-symref-referent-fix later to maint).
|
|
|
|
* The sequencer failed to honor core.commentString in some places.
|
|
|
|
* Describe a case where an option value needs to be spelled as a
|
|
separate argument, i.e. "--opt val", not "--opt=val".
|
|
(merge 1bc1e94091 jc/doc-opt-tilde-expand later to maint).
|
|
|
|
* Loosen overly strict ownership check introduced in the recent past,
|
|
to keep the promise "cloning a suspicious repository is a safe
|
|
first step to inspect it".
|
|
(merge 0ffb5a6bf1 bc/allow-upload-pack-from-other-people later to maint).
|
|
|
|
* "git fast-import" learned to reject paths with ".." and "." as
|
|
their components to avoid creating invalid tree objects.
|
|
(merge 8cb4c6e62f en/fast-import-verify-path later to maint).
|
|
|
|
* The --ancestry-path option is designed to be given a commit that is
|
|
on the path, which was not documented, which has been corrected.
|
|
(merge bc1a980759 kk/doc-ancestry-path later to maint).
|
|
|
|
|
|
* "git tag" has been taught to refuse to create refs/tags/HEAD
|
|
as such a tag will be confusing in the context of UI provided by
|
|
the Git Porcelain commands.
|
|
(merge bbd445d5ef jc/forbid-head-as-tagname later to maint).
|
|
|
|
* The advice messages now tell the newer 'git config set' command to
|
|
set the advice.token configuration variable to squelch a message.
|
|
(merge 6c397d0104 bf/explicit-config-set-in-advice-messages later to maint).
|
|
|
|
* The syntax ":/<text>" to name the latest commit with the matching
|
|
text was broken with a recent change, which has been corrected.
|
|
(merge 0ff919e87a ps/commit-with-message-syntax-fix later to maint).
|
|
|
|
* Fix performance regression of a recent "fatten promisor pack with
|
|
local objects" protection against an unwanted gc.
|
|
|
|
* "git log -p --remerge-diff --reverse" was completely broken.
|
|
(merge f94bfa1516 js/log-remerge-keep-ancestry later to maint).
|
|
|
|
* "git bundle create" with an annotated tag on the positive end of
|
|
the revision range had a workaround code for older limitation in
|
|
the revision walker, which has become unnecessary.
|
|
(merge dd1072dfa8 tc/bundle-with-tag-remove-workaround later to maint).
|
|
|
|
* Other code cleanup, docfix, build fix, etc.
|
|
(merge 77af53f56f aa/t7300-modernize later to maint).
|
|
(merge dcd590a39d bf/t-readme-mention-reftable later to maint).
|
|
(merge 68e3c69efa kh/trailer-in-glossary later to maint).
|
|
(merge 91f88f76e6 tb/boundary-traversal-fix later to maint).
|
|
(merge 168ebb7159 jc/doc-error-message-guidelines later to maint).
|
|
(merge 18693d7d65 kh/doc-bundle-typofix later to maint).
|
|
(merge e2f5d3b491 kh/doc-update-ref-grammofix later to maint).
|
|
(merge 8525e92886 mh/doc-windows-home-env later to maint).
|