244 lines
9.3 KiB
Plaintext
244 lines
9.3 KiB
Plaintext
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.
|
|
|
|
* 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.
|
|
|
|
* "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.
|
|
|
|
* "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.
|
|
|
|
* 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.
|
|
|
|
* "git verify-pack" and "git index-pack" started dying outside a
|
|
repository, which has been corrected.
|
|
|
|
* 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).
|