mirror of
https://github.com/git/git.git
synced 2026-01-10 18:20:27 +00:00
286 lines
11 KiB
Plaintext
286 lines
11 KiB
Plaintext
Git v2.46 Release Notes
|
|
=======================
|
|
|
|
Backward Compatibility Notes
|
|
|
|
(None at this moment)
|
|
|
|
UI, Workflows & Features
|
|
|
|
* The "--rfc" option of "git format-patch" learned to take an
|
|
optional string value to be used in place of "RFC" to tweak the
|
|
"[PATCH]" on the subject header.
|
|
|
|
* The credential helper protocol, together with the HTTP layer, have
|
|
been enhanced to support authentication schemes different from
|
|
username & password pair, like Bearer and NTLM.
|
|
|
|
* Command line completion script (in contrib/) learned to complete
|
|
"git symbolic-ref" a bit better (you need to enable plumbing
|
|
commands to be completed with GIT_COMPLETION_SHOW_ALL_COMMANDS).
|
|
|
|
* When the user responds to a prompt given by "git add -p" with an
|
|
unsupported command, list of available commands were given, which
|
|
was too much if the user knew what they wanted to type but merely
|
|
made a typo. Now the user gets a much shorter error message.
|
|
|
|
* The color parsing code learned to handle 12-bit RGB colors, spelled
|
|
as "#RGB" (in addition to "#RRGGBB" that is already supported).
|
|
|
|
* The operation mode options (like "--get") the "git config" command
|
|
uses have been deprecated and replaced with subcommands (like "git
|
|
config get").
|
|
|
|
* "git tag" learned the "--trailer" option to futz with the trailers
|
|
in the same way as "git commit" does.
|
|
|
|
* A new global "--no-advice" option can be used to disable all advice
|
|
messages, which is meant to be used only in scripts.
|
|
|
|
* Updates to symbolic refs can now be made as a part of ref
|
|
transaction.
|
|
|
|
* The trailer API has been reshuffled a bit.
|
|
|
|
* Terminology to call various ref-like things are getting
|
|
straightened out.
|
|
|
|
* The command line completion script (in contrib/) has been adjusted
|
|
to the recent update to "git config" that adopted subcommand based
|
|
UI.
|
|
|
|
* The knobs to tweak how reftable files are written have been made
|
|
available as configuration variables.
|
|
|
|
* When "git push" notices that the commit at the tip of the ref on
|
|
the other side it is about to overwrite does not exist locally, it
|
|
used to first try fetching it if the local repository is a partial
|
|
clone. The command has been taught not to do so and immediately
|
|
fail instead.
|
|
|
|
* The promisor.quiet configuration knob can be set to true to make
|
|
lazy fetching from promisor remotes silent.
|
|
|
|
* The inter/range-diff output has been moved to the end of the patch
|
|
when format-patch adds it to a single patch, instead of writing it
|
|
before the patch text, to be consistent with what is done for a
|
|
cover letter for a multi-patch series.
|
|
|
|
* A new command has been added to migrate a repository that uses the
|
|
files backend for its ref storage to use the reftable backend, with
|
|
limitations.
|
|
|
|
|
|
Performance, Internal Implementation, Development Support etc.
|
|
|
|
* Advertise "git contacts", a tool for newcomers to find people to
|
|
ask review for their patches, a bit more in our developer
|
|
documentation.
|
|
|
|
* In addition to building the objects needed, try to link the objects
|
|
that are used in fuzzer tests, to make sure at least they build
|
|
without bitrot, in Linux CI runs.
|
|
|
|
* Code to write out reftable has seen some optimization and
|
|
simplification.
|
|
|
|
* Tests to ensure interoperability between reftable written by jgit
|
|
and our code have been added and enabled in CI.
|
|
|
|
* The singleton index_state instance "the_index" has been eliminated
|
|
by always instantiating "the_repository" and replacing references
|
|
to "the_index" with references to its .index member.
|
|
|
|
* Git-GUI has a new maintainer, Johannes Sixt.
|
|
|
|
* The "test-tool" has been taught to run testsuite tests in parallel,
|
|
bypassing the need to use the "prove" tool.
|
|
|
|
* The "whitespace check" task that was enabled for GitHub Actions CI
|
|
has been ported to GitLab CI.
|
|
|
|
* The refs API lost functions that implicitly assumes to work on the
|
|
primary ref_store by forcing the callers to pass a ref_store as an
|
|
argument.
|
|
|
|
* Code clean-up to reduce inter-function communication inside
|
|
builtin/config.c done via the use of global variables.
|
|
|
|
* The pack bitmap code saw some clean-up to prepare for a follow-up topic.
|
|
|
|
* Preliminary code clean-up for "git send-email".
|
|
|
|
* The default "creation-factor" used by "git format-patch" has been
|
|
raised to make it more aggressively find matching commits.
|
|
|
|
* Before discovering the repository details, We used to assume SHA-1
|
|
as the "default" hash function, which has been corrected. Hopefully
|
|
this will smoke out codepaths that rely on such an unwarranted
|
|
assumptions.
|
|
|
|
* The project decision making policy has been documented.
|
|
|
|
* The strcmp-offset tests have been rewritten using the unit test
|
|
framework.
|
|
|
|
* "git add -p" learned to complain when an answer with more than one
|
|
letter is given to a prompt that expects a single letter answer.
|
|
|
|
* The alias-expanded command lines are logged to the trace output.
|
|
|
|
* A new test was added to ensure git commands that are designed to
|
|
run outside repositories do work.
|
|
|
|
* Basic unit tests for reftable have been reimplemented under the
|
|
unit test framework.
|
|
|
|
* A pair of test helpers that essentially are unit tests on hash
|
|
algorithms have been rewritten using the unit-tests framework.
|
|
|
|
* A test helper that essentially is unit tests on the "decorate"
|
|
logic has been rewritten using the unit-tests framework.
|
|
|
|
* Many memory leaks in the sparse-checkout code paths have been
|
|
plugged.
|
|
|
|
* "make check-docs" noticed problems and reported to its output but
|
|
failed to signal its findings with its exit status, which has been
|
|
corrected.
|
|
|
|
* Building with "-Werror -Wwrite-strings" is now supported.
|
|
|
|
|
|
Fixes since v2.45
|
|
-----------------
|
|
|
|
* "git rebase --signoff" used to forget that it needs to add a
|
|
sign-off to the resulting commit when told to continue after a
|
|
conflict stops its operation.
|
|
(merge a6c2654f83 pw/rebase-m-signoff-fix later to maint).
|
|
|
|
* The procedure to build multi-pack-index got confused by the
|
|
replace-refs mechanism, which has been corrected by disabling the
|
|
latter.
|
|
(merge 93e2ae1c95 xx/disable-replace-when-building-midx later to maint).
|
|
|
|
* The "-k" and "--rfc" options of "format-patch" will now error out
|
|
when used together, as one tells us not to add anything to the
|
|
title of the commit, and the other one tells us to add "RFC" in
|
|
addition to "PATCH".
|
|
(merge cadcf58085 ds/format-patch-rfc-and-k later to maint).
|
|
|
|
* "git stash -S" did not handle binary files correctly, which has
|
|
been corrected.
|
|
(merge 5fb7686409 aj/stash-staged-fix later to maint).
|
|
|
|
* A scheduled "git maintenance" job is expected to work on all
|
|
repositories it knows about, but it stopped at the first one that
|
|
errored out. Now it keeps going.
|
|
(merge c75662bfc9 js/for-each-repo-keep-going later to maint).
|
|
|
|
* zsh can pretend to be a normal shell pretty well except for some
|
|
glitches that we tickle in some of our scripts. Work them around
|
|
so that "vimdiff" and our test suite works well enough with it.
|
|
(merge fedd5c79ff bc/zsh-compatibility later to maint).
|
|
|
|
* Command line completion support for zsh (in contrib/) has been
|
|
updated to stop exposing internal state to end-user shell
|
|
interaction.
|
|
(merge 3c20acdf46 dk/zsh-git-repo-path-fix later to maint).
|
|
|
|
* Tests that try to corrupt in-repository files in chunked format did
|
|
not work well on macOS due to its broken "mv", which has been
|
|
worked around.
|
|
|
|
* The maximum size of attribute files is enforced more consistently.
|
|
(merge c793f9cb08 tb/attr-limits later to maint).
|
|
|
|
* Unbreak CI jobs so that we do not attempt to use Python 2 that has
|
|
been removed from the platform.
|
|
|
|
* Git 2.43 started using the tree of HEAD as the source of attributes
|
|
in a bare repository, which has severe performance implications.
|
|
For now, revert the change, without ripping out a more explicit
|
|
support for the attr.tree configuration variable.
|
|
|
|
* The "--exit-code" option of "git diff" command learned to work with
|
|
the "--ext-diff" option.
|
|
(merge 11be65cfa4 rs/external-diff-with-exit-code later to maint).
|
|
|
|
* Windows CI running in GitHub Actions started complaining about the
|
|
order of arguments given to calloc(); the imported regex code uses
|
|
the wrong order almost consistently, which has been corrected.
|
|
|
|
* Expose "name conflict" error when a ref creation fails due to D/F
|
|
conflict in the ref namespace, to improve an error message given by
|
|
"git fetch".
|
|
(merge 9339fca23e it/refs-name-conflict later to maint).
|
|
|
|
* The SubmittingPatches document now refers folks to manpages
|
|
translation project.
|
|
|
|
* The documentation for "git diff --name-only" has been clarified
|
|
that it is about showing the names in the post-image tree.
|
|
(merge 4986662cbc jc/doc-diff-name-only later to maint).
|
|
|
|
* The credential helper that talks with osx keychain learned to avoid
|
|
storing back the authentication material it just got received from
|
|
the keychain.
|
|
(merge e1ab45b2da kn/osxkeychain-skip-idempotent-store later to maint).
|
|
|
|
* The chainlint script (invoked during "make test") did nothing when
|
|
it failed to detect the number of available CPUs. It now falls
|
|
back to 1 CPU to avoid the problem.
|
|
(merge 2e7e9205be es/chainlint-ncores-fix later to maint).
|
|
|
|
* Revert overly aggressive "layered defence" that went into 2.45.1
|
|
and friends, which broke "git-lfs", "git-annex", and other use
|
|
cases, so that we can rebuild necessary counterparts in the open.
|
|
|
|
* "git init" in an already created directory, when the user
|
|
configuration has includeif.onbranch, started to fail recently,
|
|
which has been corrected.
|
|
(merge 407997c1dd ps/fix-reinit-includeif-onbranch later to maint).
|
|
|
|
* Memory leaks in "git mv" has been plugged.
|
|
|
|
* The safe.directory configuration knob has been updated to
|
|
optionally allow leading path matches.
|
|
(merge 313eec177a jc/safe-directory-leading-path later to maint).
|
|
|
|
* An overly large ".gitignore" files are now rejected silently.
|
|
(merge e7c3d1ddba jk/cap-exclude-file-size later to maint).
|
|
|
|
* Upon expiration event, the credential subsystem forgot to clear
|
|
in-core authentication material other than password (whose support
|
|
was added recently), which has been corrected.
|
|
|
|
* Fix for an embarrassing typo that prevented Python2 tests from running
|
|
anywhere.
|
|
(merge df651330ab ps/ci-fix-detection-of-ubuntu-20 later to maint).
|
|
|
|
* Varargs functions that are unannotated as printf-like or execl-like
|
|
have been annotated as such.
|
|
(merge 99c7de732e jc/varargs-attributes later to maint).
|
|
|
|
* "git am" has a safety feature to prevent it from starting a new
|
|
session when there already is a session going. It reliably
|
|
triggers when a mbox is given on the command line, but it has to
|
|
rely on the tty-ness of the standard input. Add an explicit way to
|
|
opt out of this safety with a command line option.
|
|
(merge 62c71ace44 jk/am-retry later to maint).
|
|
|
|
* A leak in "git imap-send" that somehow escapes LSan has been
|
|
plugged.
|
|
|
|
* Other code cleanup, docfix, build fix, etc.
|
|
(merge a5a4cb7b27 rs/diff-parseopts-cleanup later to maint).
|
|
(merge 55702c543e fa/p4-error later to maint).
|
|
(merge 2566a77774 vd/doc-merge-tree-x-option later to maint).
|
|
(merge b64b0df9da ds/scalar-reconfigure-all-fix later to maint).
|
|
(merge c81ffcff83 dm/update-index-doc-fix later to maint).
|
|
(merge fc0202b0e9 dg/fetch-pack-code-cleanup later to maint).
|
|
(merge 7150f140f9 mt/t0211-typofix later to maint).
|
|
(merge d424488901 jc/rev-parse-fatal-doc later to maint).
|
|
(merge 36d900d2b0 rs/difftool-env-simplify later to maint).
|