]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Sync with 'maint'
authorJunio C Hamano <gitster@pobox.com>
Tue, 2 Jul 2024 16:59:24 +0000 (09:59 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 2 Jul 2024 17:01:10 +0000 (10:01 -0700)
1  2 
Documentation/RelNotes/2.46.0.txt

index eac94717e8605fd0c4b84b76b57990c06df52387,0000000000000000000000000000000000000000..67bae07a40012dd9eab83653ce5bdefc8379d347
mode 100644,000000..100644
--- /dev/null
@@@ -1,361 -1,0 +1,352 @@@
-    (merge cadcf58085 ds/format-patch-rfc-and-k later to maint).
 +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.
 +
 + * "git diff --exit-code --ext-diff" learned to take the exit status
 +   of the external diff driver into account when deciding the exit
 +   status of the overall "git diff" invocation when configured to do
 +   so.
 +
 + * "git update-ref --stdin" learned to handle transactional updates of
 +   symbolic-refs.
 +
 + * "git format-patch --interdiff" for multi-patch series learned to
 +   turn on cover letters automatically (unless told never to enable
 +   cover letter with "--no-cover-letter" and such).
 +
 + * The "--heads" option of "ls-remote" and "show-ref" has been been
 +   deprecated; "--branches" replaces "--heads".
 +
 + * For over a year, setting add.interactive.useBuiltin configuration
 +   variable did nothing but giving a "this does not do anything"
 +   warning.  The warning has been removed.
 +
 +
 +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.
 +
 + * To help developers, the build procedure now allows builders to use
 +   CFLAGS_APPEND to specify additional CFLAGS.
 +
 + * "oidtree" tests were rewritten to use the unit test framework.
 +
 + * The structure of the document that records longer-term project
 +   decisions to deprecate/remove/update various behaviour has been
 +   outlined.
 +
 + * The pseudo-merge reachability bitmap to help more efficient storage
 +   of the reachability bitmap in a repository with too many refs has
 +   been added.
 +
 + * When "git merge" sees that the index cannot be refreshed (e.g. due
 +   to another process doing the same in the background), it died but
 +   after writing MERGE_HEAD etc. files, which was useless for the
 +   purpose to recover from the failure.
 +
 + * The output from "git cat-file --batch-check" and "--batch-command
 +   (info)" should not be unbuffered, for which some tests have been
 +   added.
 +
 + * A CPP macro USE_THE_REPOSITORY_VARIABLE is introduced to help
 +   transition the codebase to rely less on the availability of the
 +   singleton the_repository instance.
 +
 + * "git version --build-options" reports the version information of
 +   OpenSSL and other libraries (if used) in the build.
 +
 + * Memory ownership rules for the in-core representation of
 +   remote.*.url configuration values have been straightened out, which
 +   resulted in a few leak fixes and code clarification.
 +
 +
 +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.
 +
 + * The procedure to build multi-pack-index got confused by the
 +   replace-refs mechanism, which has been corrected by disabling the
 +   latter.
 +
 + * 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 4c063c82e9 pw/rebase-i-error-message later to maint).
 +
 + * "git stash -S" did not handle binary files correctly, which has
 +   been corrected.
 +
 + * 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.
 +
 + * 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.
 +
 + * Command line completion support for zsh (in contrib/) has been
 +   updated to stop exposing internal state to end-user shell
 +   interaction.
 +
 + * 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.
 +
 + * 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.
 +
 + * 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.
 +
 + * 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.
 +
 + * 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.
 +
 + * Memory leaks in "git mv" has been plugged.
 +
 + * The safe.directory configuration knob has been updated to
 +   optionally allow leading path matches.
 +
 + * An overly large ".gitignore" files are now rejected silently.
 +
 + * 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.
 +
 + * Varargs functions that are unannotated as printf-like or execl-like
 +   have been annotated as such.
 +
 + * "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.
 +
 + * Setting core.abbrev too early before the repository set-up
 +   (typically in "git clone") caused segfault, which as been
 +   corrected.
 +
 + * When the user adds to "git rebase -i" instruction to "pick" a merge
 +   commit, the error experience is not pleasant.  Such an error is now
 +   caught earlier in the process that parses the todo list.
-    (merge 71fa8d2212 tb/precompose-getcwd later to maint).
 +
 + * We forgot to normalize the result of getcwd() to NFC on macOS where
 +   all other paths are normalized, which has been corrected.  This still
 +   does not address the case where core.precomposeUnicode configuration
 +   is not defined globally.
-    (merge 5c71d6b63a jc/no-default-attr-tree-in-bare later to maint).
 +
 + * Earlier we stopped using the tree of HEAD as the default source of
 +   attributes in a bare repository, but failed to document it.  This
 +   has been corrected.
-    (merge 3c295c87c2 js/mingw-remove-unused-extern-decl later to maint).
 +
 + * "git update-server-info" and "git commit-graph --write" have been
 +   updated to use the tempfile API to avoid leaving cruft after
 +   failing.
 +
 + * An unused extern declaration for mingw has been removed to prevent
 +   it from causing build failure.
-    (merge 40d817875d jk/t5500-typofix later to maint).
 +
 + * A helper function shared between two tests had a copy-paste bug,
 +   which has been corrected.
-    (merge 96a6621d25 jk/fetch-pack-fsck-wo-lock-pack later to maint).
 +
 + * "git fetch-pack -k -k" without passing "--lock-pack" (which we
 +   never do ourselves) did not work at all, which has been corrected.
-    (merge bf6a86236e jc/worktree-git-path later to maint).
-    (merge 28dc26dc33 rs/remove-unused-find-header-mem later to maint).
 +
 + * CI job to build minimum fuzzers learned to pass NO_CURL=NoThanks to
 +   the build procedure, as its build environment does not offer, or
 +   the rest of the build needs, anything cURL.
 +   (merge 4e66b5a990 jc/fuzz-sans-curl later to maint).
 +
 + * "git diff --no-ext-diff" when diff.external is configured ignored
 +   the "--color-moved" option.
 +   (merge 0f4b0d4cf0 rs/diff-color-moved-w-no-ext-diff-fix later to maint).
 +
 + * Other code cleanup, docfix, build fix, etc.
 +   (merge 493fdae046 ew/object-convert-leakfix later to maint).