289 lines
12 KiB
Plaintext
289 lines
12 KiB
Plaintext
Git v2.49 Release Notes
|
|
=======================
|
|
|
|
UI, Workflows & Features
|
|
------------------------
|
|
|
|
* Completion script updates for zsh
|
|
|
|
* "git pack-objects" and its wrapper "git repack" learned an option
|
|
to use an alternative path-hash function to improve delta-base
|
|
selection to produce a packfile with deeper history than window
|
|
size.
|
|
|
|
* "git gc" learned the "--expire-to" option and passes it down to
|
|
underlying "git repack".
|
|
|
|
* "[help] autocorrect = 1" used to be a way to say "please wait for
|
|
0.1 second after suggesting a typofix of the command name before
|
|
running that command"; now it means "yes, if there is a plausible
|
|
typofix for the command name, please run it immediately".
|
|
|
|
* "git clone" learned to make a shallow clone for a single commit
|
|
that is not necessarily be at the tip of any branch.
|
|
|
|
* Lazy-loading missing files in a blobless clone on demand is costly
|
|
as it tends to be one-blob-at-a-time. "git backfill" is introduced
|
|
to help bulk-download necessary files beforehand.
|
|
|
|
* "git push --atomic --porcelain" used to ignore failures from the
|
|
other side, losing the error status from the child process, which
|
|
has been corrected.
|
|
|
|
* "git rev-list --missing=" learned to accept "print-info" that gives
|
|
known details expected of the missing objects, like path and type.
|
|
|
|
* Comes with an updated "gitk".
|
|
|
|
* The documentation of "git commit" and "git rebase" now refer to
|
|
commit titles as such, not "subject".
|
|
|
|
* The value of "uname -s" is by default sent over the wire as a part
|
|
of the "version" capability.
|
|
|
|
* "git refs migrate" can optionally be told not to migrate the reflog.
|
|
|
|
* The netrc support (via the cURL library) for the HTTP transport has
|
|
been re-enabled.
|
|
|
|
* Removal of ".git/branches" and ".git/remotes" support in the
|
|
BreakingChanges document has been further clarified.
|
|
|
|
* What happens to submodules during merge has been documented in a
|
|
bit more detail.
|
|
|
|
|
|
Performance, Internal Implementation, Development Support etc.
|
|
--------------------------------------------------------------
|
|
|
|
* More -Wsign-compare fixes.
|
|
|
|
* meson-based build now supports the unsafe-sha1 build knob.
|
|
|
|
* The meson-based build procedure covers contrib/ and other places as
|
|
well.
|
|
|
|
* The code to check LSan results has been simplified and made more
|
|
robust.
|
|
(merge 164a2516eb jk/lsan-race-ignore-false-positive later to maint).
|
|
|
|
* More code paths have a repository passed through the callchain,
|
|
instead of assuming the primary the_repository object.
|
|
|
|
* Move a few more unit tests to the clar test framework.
|
|
|
|
* Introduce a new API to visit objects in batches based on a common
|
|
path, or by type.
|
|
|
|
* Following the procedure we established to introduce breaking
|
|
changes for Git 3.0, allow an early opt-in for removing support of
|
|
$GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure
|
|
remotes.
|
|
|
|
* The code paths to interact with zlib has been cleaned up in
|
|
preparation for building with zlib-ng.
|
|
|
|
* Foreign language interface for Rust into our code base has been added.
|
|
|
|
* All the documentation .txt files have been renamed to .adoc to help
|
|
content aware editors.
|
|
|
|
* "git difftool" code clean-up.
|
|
|
|
* Rename processing in the recursive merge backend has seen a micro
|
|
optimization.
|
|
|
|
* The path.[ch] API takes an explicit repository parameter passed
|
|
throughout the callchain, instead of relying on the_repository
|
|
singleton instance.
|
|
|
|
* Large-object promisor protocol extension has been introduced.
|
|
|
|
* The editorconfig file is updated to tell us that bash scripts are
|
|
similar to general Bourne shell scripts.
|
|
|
|
* Meson-based build procedure forgot to build some docs, which has
|
|
been corrected.
|
|
|
|
|
|
Fixes since v2.48
|
|
-----------------
|
|
|
|
* "git submodule" learned various ways to spell the same option,
|
|
e.g. "--branch=B" can be spelled "--branch B" or "-bB".
|
|
(merge b86f0f9071 re/submodule-parse-opt later to maint).
|
|
|
|
* Tweak the help text used for the option value placeholders by
|
|
parse-options API so that translations can customize the "<>"
|
|
placeholder signal (e.g. "--option=<value>").
|
|
(merge 5b34dd08d0 as/long-option-help-i18n later to maint).
|
|
|
|
* CI jobs gave sporadic failures, which turns out that that the
|
|
object finalization code was giving an error when it did not have
|
|
to.
|
|
(merge d7fcbe2c56 ps/object-collision-check later to maint).
|
|
|
|
* The code to compute "unique" name used git_rand() which can fail or
|
|
get stuck; the callsite does not require cryptographic security.
|
|
Introduce the "insecure" mode and use it appropriately.
|
|
(merge 0b4f8afef6 ps/reftable-get-random-fix later to maint).
|
|
|
|
* A misconfigured "fsck.skiplist" configuration variable was not
|
|
diagnosed as an error, which has been corrected.
|
|
(merge ca7158076f jt/fsck-skiplist-parse-fix later to maint).
|
|
|
|
* Extended SHA-1 expression parser did not work well when a branch
|
|
with an unusual name (e.g. "foo{bar") is involved.
|
|
(merge 191f0c8db2 en/object-name-with-funny-refname-fix later to maint).
|
|
|
|
* The meson build procedure looked for the 'version-def.h' file in a
|
|
wrong directory, which has been corrected.
|
|
(merge 4771501c0a tc/meson-use-our-version-def-h later to maint).
|
|
|
|
* The meson build procedure for Documentation/technical/ hierarchy was
|
|
missing necessary dependencies, which has been corrected.
|
|
(merge 1dca492edd sj/meson-doc-technical-dependency-fix later to maint).
|
|
|
|
* The "instaweb" bound only to local IP address without "--local" and
|
|
to all addresses with "--local", which was the other way around, when
|
|
using Python's http.server class, which has been corrected.
|
|
(merge 76baf97fa1 ak/instaweb-python-port-binding-fix later to maint).
|
|
|
|
* Document that it is insecure to use Personal Access Tokens, which
|
|
some hosting providers take as username/password, embedded in URLs.
|
|
(merge a90ff409f0 mh/doc-credential-helpers-with-pat later to maint).
|
|
|
|
* The help text from "git $cmd -h" appear on the standard output for
|
|
some $cmd and the standard error for others. The built-in commands
|
|
have been fixed to show them on the standard output consistently.
|
|
(merge f66d1423f5 jc/show-usage-help later to maint).
|
|
|
|
* The meson-driven build is now aware of "git-subtree" housed in
|
|
contrib/subtree hierarchy.
|
|
(merge 8454b42f94 ps/build-meson-subtree later to maint).
|
|
|
|
* It was possible for "git unpack-objects" and "git index-pack" to
|
|
make an unaligned access, which has been corrected.
|
|
(merge 98046591b9 jk/pack-header-parse-alignment-fix later to maint).
|
|
|
|
* The "cache" credential back-end did not handle authtype correctly,
|
|
which has been corrected.
|
|
(merge 0b43274850 mh/credential-cache-authtype-request-fix later to maint).
|
|
|
|
* "git branch --sort=..." and "git for-each-ref --format=... --sort=..."
|
|
did not work as expected with some atoms, which has been corrected.
|
|
(merge c5490ce9d1 rs/ref-fitler-used-atoms-value-fix later to maint).
|
|
|
|
* reflog entries for symbolic ref updates were broken, which has been
|
|
corrected.
|
|
(merge 3519492430 kn/reflog-symref-fix later to maint).
|
|
|
|
* The trace2 code was not prepared to show a configuration variable
|
|
that is set to true using the valueless true syntax, which has been
|
|
corrected.
|
|
(merge 2fd367cf63 am/trace2-with-valueless-true later to maint).
|
|
|
|
* The "git refs migrate" command did not migrate the reflog for
|
|
refs/stash, which is the contents of the stashes, which has been
|
|
corrected.
|
|
(merge a0bea0978f ps/reflog-migration-with-logall-fix later to maint).
|
|
|
|
* Doc and short-help text for "show-index" has been clarified to
|
|
stress that the command reads its data from the standard input.
|
|
(merge 49edce4ff9 jc/show-index-h-update later to maint).
|
|
|
|
* The API around choosing to use unsafe variant of SHA-1
|
|
implementation has been updated in an attempt to make it harder to
|
|
abuse.
|
|
(merge 04292c3796 tb/unsafe-hash-cleanup later to maint).
|
|
|
|
* Fix bugs in an earlier attempt to fix "git refs migration".
|
|
(merge f11f0a5a2d kn/reflog-migration-fix-fix later to maint).
|
|
|
|
* The code path used when "git fetch" fetches from a bundle file
|
|
closed the same file descriptor twice, which sometimes broke things
|
|
unexpectedly when the file descriptor was reused, which has been
|
|
corrected.
|
|
(merge 9a84794ad8 js/bundle-unbundle-fd-reuse-fix later to maint).
|
|
|
|
* "git init" to reinitialize a repository that already exists cannot
|
|
change the hash function and ref backends; such a request is
|
|
silently ignored now.
|
|
(merge 7e88640cd1 ps/setup-reinit-fixes later to maint).
|
|
|
|
* "git apply" internally uses unsigned long for line numbers and uses
|
|
strtoul() to parse numbers on the hunk headers. It however forgot
|
|
to check parse errors.
|
|
(merge a206058fda pw/apply-ulong-overflow-check later to maint).
|
|
|
|
* Two CI tasks, whitespace check and style check, work on the
|
|
difference from the base version and the version being checked, but
|
|
the base was computed incorrectly in GitLab CI in some cases, which
|
|
has been corrected.
|
|
(merge acc4fb302b jt/gitlab-ci-base-fix later to maint).
|
|
|
|
* "git repack --keep-unreachable" to send unreachable objects to the
|
|
main pack "git repack -ad" produces did not work when there is no
|
|
existing packs, which has been corrected.
|
|
(merge 414c82300a ps/repack-keep-unreachable-in-unpacked-repo later to maint).
|
|
|
|
* Going into a secondary worktree and asking "is the main worktree
|
|
bare?" did not work correctly when per-worktree configuration
|
|
option was in use, which has been corrected.
|
|
|
|
* Fetching into a bare repository incorrectly assumed it always used
|
|
a mirror layout when deciding to update remote-tracking HEAD, which
|
|
has been corrected.
|
|
(merge 93dc16483a bf/fetch-set-head-fix later to maint).
|
|
|
|
* A thunderbird helper script lost its bashism.
|
|
(merge 59d26bd961 bc/contrib-thunderbird-patch-inline-fix later to maint).
|
|
|
|
* The -G/-S options to the "diff" family of commands caused us to hit
|
|
a BUG() when they get no values; they have been corrected.
|
|
(merge a620046b29 bc/diff-reject-empty-arg-to-pickaxe later to maint).
|
|
|
|
* "git merge-tree --stdin" has been improved (including a workaround
|
|
for a deadlock).
|
|
(merge 6a9ae81015 pw/merge-tree-stdin-deadlock-fix later to maint).
|
|
|
|
* Correct the default target in Documentation/Makefile, and
|
|
future-proof all Makefiles from similar breakages by declaring the
|
|
default target (which happens to be "all") upfront.
|
|
(merge 5309c1e9fb ad/set-default-target-in-makefiles later to maint).
|
|
|
|
* "git check-mailmap" used to segfault when queried without human
|
|
readable name.
|
|
(merge bb60c52131 jk/check-mailmap-wo-name-fix later to maint).
|
|
|
|
* Support for renaming of symbolic links on Windows has been improved.
|
|
|
|
* "git rebase -i" failed to allow rewording an empty commit that has
|
|
been fast-forwarded.
|
|
(merge af8fc7be10 pw/rebase-i-ff-empty-commit later to maint).
|
|
|
|
* The use of "paste" command for aggregating the test results have
|
|
been corrected.
|
|
(merge ce98863204 dk/test-aggregate-results-paste-fix later to maint).
|
|
|
|
* Other code cleanup, docfix, build fix, etc.
|
|
(merge ddb5287894 jk/t7407-use-test-grep later to maint).
|
|
(merge 21e1b44865 aj/difftool-config-doc-fix later to maint).
|
|
(merge 6a63995335 mh/gitattr-doc-markup-fix later to maint).
|
|
(merge 43850dcf9c sk/unit-test-hash later to maint).
|
|
(merge 4ad47d2de3 jc/cli-doc-option-and-config later to maint).
|
|
(merge 2d0ff147e5 jp/t8002-printf-fix later to maint).
|
|
(merge 69666e6746 ja/doc-restore-markup-update later to maint).
|
|
(merge d11d003ba5 sk/strlen-returns-size_t later to maint).
|
|
(merge 77b2d29e91 ja/doc-notes-markup-updates later to maint).
|
|
(merge 6979bf6f8f jk/combine-diff-cleanup later to maint).
|
|
(merge 8705c9bd13 kn/pack-write-with-reduced-globals later to maint).
|
|
(merge 087740d65a ps/leakfixes-0129 later to maint).
|
|
(merge 6bba6f604b jp/doc-trailer-config later to maint).
|
|
(merge f1cc562b77 lo/t7603-path-is-file-update later to maint).
|
|
(merge 45761988ac en/doc-renormalize later to maint).
|
|
(merge 832f56f06a jc/doc-boolean-synonyms later to maint).
|
|
(merge 3eeed876a9 ac/doc-http-ssl-type-config later to maint).
|
|
(merge c268e3285d jc/breaking-changes-early-adopter-option later to maint).
|
|
(merge 0d03fda6a5 pb/doc-follow-remote-head later to maint).
|