]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Sync with Git 2.46.1
authorJunio C Hamano <gitster@pobox.com>
Fri, 13 Sep 2024 22:28:15 +0000 (15:28 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 13 Sep 2024 22:31:57 +0000 (15:31 -0700)
1  2 
Documentation/RelNotes/2.47.0.txt

index e6d2f97f450e39854d95f5d2657eff2872d9b9a4,0000000000000000000000000000000000000000..ffc0c5c4a287b3a6dde9702fa874b353f8052cb2
mode 100644,000000..100644
--- /dev/null
@@@ -1,259 -1,0 +1,243 @@@
-    (merge f30bfafcd4 ps/leakfixes-part-3 later to maint).
 +Git v2.47 Release Notes
 +=======================
 +
 +UI, Workflows & Features
 +------------------------
 +
 + * Many Porcelain commands that internally use the merge machinery
 +   were taught to consistently honor the diff.algorithm configuration.
 +
 + * A few descriptions in "git show-ref -h" have been clarified.
 +
 + * A 'P' command to "git add -p" that passes the patch hunk to the
 +   pager has been added.
 +
 + * "git grep -W" omits blank lines that follow the found function at
 +   the end of the file, just like it omits blank lines before the next
 +   function.
 +
 + * The value of http.proxy can have "path" at the end for a socks
 +   proxy that listens to a unix-domain socket, but we started to
 +   discard it when we taught proxy auth code path to use the
 +   credential helpers, which has been corrected.
 +
 + * The code paths to compact multiple reftable files have been updated
 +   to correctly deal with multiple compaction triggering at the same
 +   time.
 +
 + * Support to specify ref backend for submodules has been enhanced.
 +
 + * "git svn" has been taught about svn:global-ignores property
 +   recent versions of Subversion has.
 +
 + * The default object hash and ref backend format used to be settable
 +   only with explicit command line option to "git init" and
 +   environment variables, but now they can be configured in the user's
 +   global and system wide configuration.
 +
 + * "git send-email" learned "--translate-aliases" option that reads
 +   addresses from the standard input and emits the result of applying
 +   aliases on them to the standard output.
 +
 + * 'git for-each-ref' learned a new "--format" atom to find the branch
 +   that the history leading to a given commit "%(is-base:<commit>)" is
 +   likely based on.
 +
 + * The command line prompt support used to be littered with bash-isms,
 +   which has been corrected to work with more shells.
 +
 + * Support for the RUNTIME_PREFIX feature has been added to z/OS port.
 +
 + * "git send-email" learned "--mailmap" option to allow rewriting the
 +   recipient addresses.
 +
 + * "git mergetool" learned to use VSCode as a merge backend.
 +
 + * "git pack-redundant" has been marked for removal in Git 3.0.
 +
 + * One-line messages to "die" and other helper functions will get LF
 +   added by these helper functions, but many existing messages had an
 +   unnecessary LF at the end, which have been corrected.
 +
 + * The "scalar clone" command learned the "--no-tags" option.
 +
 + * The environment GIT_ADVICE has been intentionally kept undocumented
 +   to discourage its use by interactive users.  Add documentation to
 +   help tool writers.
 +
 +Performance, Internal Implementation, Development Support etc.
 +--------------------------------------------------------------
 +
 + * A build tweak knob has been simplified by not setting the value
 +   that is already the default; another unused one has been removed.
 +
 + * A CI job that use clang-format to check coding style issues in new
 +   code has been added.
 +
 + * The reviewing guidelines document now explicitly encourages people
 +   to give positive reviews and how.
 +
 + * Test script linter has been updated to catch an attempt to use
 +   one-shot export construct "VAR=VAL func" for shell functions (which
 +   does not work for some shells) better.
 +
 + * Some project conventions have been added to CodingGuidelines.
 +
 + * In the refs subsystem, implicit reliance of the_repository has been
 +   eliminated; the repository associated with the ref store object is
 +   used instead.
 +
 + * Various tests in reftable library have been rewritten using the unit test
 +   framework.
 +
 + * A test that fails on an unusually slow machine was found, and made
 +   less likely to cause trouble by lengthening the expiry value it
 +   uses.
 +
 + * An existing test of hashmap API has been rewritten with the
 +   unit-test framework.
 +
 + * A policy document that describes platform support levels and
 +   expectation on platform stakeholders has been introduced.
 +
 + * The refs API has been taught to give symref target information to
 +   the users of ref iterators, allowing for-each-ref and friends to
 +   avoid an extra ref_resolve_* API call per a symbolic ref.
 +
 + * Unit-test framework has learned a simple control structure to allow
 +   embedding test statements in-line instead of having to create a new
 +   function to contain them.
 +
 + * Incremental updates of multi-pack index files is getting worked on.
 +
 + * Use of API functions that implicitly depend on the_repository
 +   object in the config subsystem has been rewritten to pass a
 +   repository object through the callchain.
 +
 + * Unused parameters have been either marked as UNUSED to squelch
 +   -Wunused warnings or dropped from many functions..
 +
 + * The code in the reftable library has been cleaned up by discarding
 +   unused "generic" interface.
 +
 + * The underlying machinery for "git diff-index" has long been made to
 +   expand the sparse index as needed, but the command fully expanded
 +   the sparse index upfront, which now has been taught not to do.
 +
 + * More trace2 events at key points on push and fetch code paths have
 +   been added.
 +
 + * Make our codebase compilable with the -Werror=unused-parameter
 +   option.
 +
 + * "git cat-file" works well with the sparse-index, and gets marked as
 +   such.
 +
 +
 +Fixes since v2.46
 +-----------------
 +
 + * "git add -p" by users with diff.suppressBlankEmpty set to true
 +   failed to parse the patch that represents an unmodified empty line
 +   with an empty line (not a line with a single space on it), which
 +   has been corrected.
 +
 + * "git checkout --ours" (no other arguments) complained that the
 +   option is incompatible with branch switching, which is technically
 +   correct, but found confusing by some users.  It now says that the
 +   user needs to give pathspec to specify what paths to checkout.
 +
 + * It has been documented that we avoid "VAR=VAL shell_func" and why.
 +
 + * "git rebase --help" referred to "offset" (the difference between
 +   the location a change was taken from and the change gets replaced)
 +   incorrectly and called it "fuzz", which has been corrected.
 +
 + * "git notes add -m '' --allow-empty" and friends that take prepared
 +   data to create notes should not invoke an editor, but it started
 +   doing so since Git 2.42, which has been corrected.
 +
 + * An expensive operation to prepare tracing was done in re-encoding
 +   code path even when the tracing was not requested, which has been
 +   corrected.
 +
 + * More leakfixes.
-    (merge e95d515141 jk/apply-patch-mode-check-fix later to maint).
 +
 + * The credential helper to talk to OSX keychain sometimes sent
 +   garbage bytes after the username, which has been corrected.
 +
 + * A recent update broke "git ls-remote" used outside a repository,
 +   which has been corrected.
 +
 + * The patch parser in 'git apply' has been a bit more lenient against
 +   unexpected mode bits, like 100664, recorded on extended header lines.
-    (merge a6e9429f72 jc/patch-id later to maint).
 +
 + * "git config --value=foo --fixed-value section.key newvalue" barfed
 +   when the existing value in the configuration file used the
 +   valueless true syntax, which has been corrected.
 +
 + * The patch parser in "git patch-id" has been tightened to avoid
 +   getting confused by lines that look like a patch header in the log
 +   message.
-    (merge 96a9a3e42e ps/bundle-outside-repo-fix later to maint).
 +
 + * "git reflog expire" failed to honor annotated tags when computing
 +   reachable commits.
 +
 + * A flakey test and incorrect calls to strtoX() functions have been
 +   fixed.
 +
 + * Follow-up on 2.45.1 regression fix.
 +
 + * "git rev-list ... | git diff-tree -p --remerge-diff --stdin" should
 +   behave more or less like "git log -p --remerge-diff" but instead it
 +   crashed, forgetting to prepare a temporary object store needed.
 +
 + * "git bundle unbundle" outside a repository triggered a BUG()
 +   unnecessarily, which has been corrected.
-    (merge 6bd2ae67a5 jk/free-commit-buffer-of-skipped-commits later to maint).
 +
 + * Maintenance tasks other than "gc" now properly go background when
 +   "git maintenance" runs them.
 +
 + * We created a useless pseudo-merge reachability bitmap that is about
 +   0 commits, and attempted to include commits that are not in packs,
 +   which made no sense.  These bugs have been corrected.
 +   (merge a72dfab8b8 tb/pseudo-merge-bitmap-fixes later to maint).
 +
 + * "git rebase -x --quiet" was not quiet, which was corrected.
 +
 + * The code path for compacting reftable files saw some bugfixes
 +   against concurrent operation.
 +
 + * The code forgot to discard unnecessary in-core commit buffer data
 +   for commits that "git log --skip=<number>" traversed but omitted
 +   from the output, which has been corrected.
-    (merge b2dbf97f47 ps/index-pack-outside-repo-fix later to maint).
 +
 + * "git verify-pack" and "git index-pack" started dying outside a
 +   repository, which has been corrected.
-    (merge bb0498b1bb jc/how-to-maintain-updates later to maint).
-    (merge 0d66f601a9 jc/tests-no-useless-tee later to maint).
-    (merge 170cdfc5a4 jc/grammo-fixes later to maint).
-    (merge 983555a1f2 jc/how-to-maintain-updates later to maint).
-    (merge e3209bd4df ps/stash-keep-untrack-empty-fix later to maint).
-    (merge 44db6f75cc jc/coding-style-c-operator-with-spaces later to maint).
-    (merge 596f4ff6ad cl/config-regexp-docfix later to maint).
-    (merge 4881328617 aa/cat-file-batch-output-doc later to maint).
-    (merge 1609470409 jc/config-doc-update later to maint).
-    (merge d4dc0efd7d rj/compat-terminal-unused-fix later to maint).
 +
 + * A data corruption bug when multi-pack-index is used and the same
 +   objects are stored in multiple packfiles has been corrected.
 +
 + * "git pack-refs --auto" for the files backend was too aggressive,
 +   which has been a bit tamed.
 +   (merge c3459ae9ef ps/pack-refs-auto-heuristics later to maint).
 +
 + * A file descriptor left open is now properly closed when "git
 +   sparse-checkout" updates the sparse patterns.
 +
 + * In a few corner cases "git diff --exit-code" failed to report
 +   "changes" (e.g., renamed without any content change), which has
 +   been corrected.
 +   (merge 11591850dd rs/diff-exit-code-fix later to maint).
 +
 + * Cygwin does have /dev/tty support that is needed by things like
 +   single-key input mode.
 +   (merge 39ba986b0e rj/cygwin-has-dev-tty later to maint).
 +
 + * The interpret-trailers command failed to recognise the end of the
 +   message when the commit log ends in an incomplete line.
 +   (merge c02414a997 bl/trailers-and-incomplete-last-line-fix later to maint).
 +
 + * Other code cleanup, docfix, build fix, etc.
 +   (merge be10ac7037 jc/mailinfo-header-cleanup later to maint).
 +   (merge 9a36ea37ae jc/doc-skip-fetch-all-and-prefetch later to maint).