226 lines
9.3 KiB
226 lines
9.3 KiB
Git 2.24 Release Notes |
|
====================== |
|
|
|
Updates since v2.23 |
|
------------------- |
|
|
|
Backward compatibility note |
|
|
|
* Although it is not officially deprecated, "filter-branch" is |
|
showing its age and alternatives are available. From this release, |
|
we started to discourage its uses and hint people about |
|
filter-repo. |
|
|
|
UI, Workflows & Features |
|
|
|
* We now have an active interim maintainer for the Git-Gui part of |
|
the system. Praise and thank Pratyush Yadav for volunteering. |
|
|
|
* The command line parser learned "--end-of-options" notation; the |
|
standard convention for scripters to have hardcoded set of options |
|
first on the command line, and force the command to treat end-user |
|
input as non-options, has been to use "--" as the delimiter, but |
|
that would not work for commands that use "--" as a delimiter |
|
between revs and pathspec. |
|
|
|
* A mechanism to affect the default setting for a (related) group of |
|
configuration variables is introduced. |
|
|
|
* "git fetch" learned "--set-upstream" option to help those who first |
|
clone from their private fork they intend to push to, add the true |
|
upstream via "git remote add" and then "git fetch" from it. |
|
|
|
* Device-tree files learned their own userdiff patterns. |
|
(merge 3c81760bc6 sb/userdiff-dts later to maint). |
|
|
|
* "git rebase --rebase-merges" learned to drive different merge |
|
strategies and pass strategy specific options to them. |
|
|
|
* A new "pre-merge-commit" hook has been introduced. |
|
|
|
* Command line completion updates for "git -c var.name=val" have been |
|
added. |
|
|
|
* The lazy clone machinery has been taught that there can be more |
|
than one promisor remote and consult them in order when downloading |
|
missing objects on demand. |
|
|
|
* The list-objects-filter API (used to create a sparse/lazy clone) |
|
learned to take a combined filter specification. |
|
|
|
* The documentation and tests for "git format-patch" have been |
|
cleaned up. |
|
|
|
* On Windows, the root level of UNC share is now allowed to be used |
|
just like any other directory. |
|
|
|
* The command line completion support (in contrib/) learned about the |
|
"--skip" option of "git revert" and "git cherry-pick". |
|
|
|
* "git rebase --keep-base <upstream>" tries to find the original base |
|
of the topic being rebased and rebase on top of that same base, |
|
which is useful when running the "git rebase -i" (and its limited |
|
variant "git rebase -x"). |
|
|
|
The command also has learned to fast-forward in more cases where it |
|
can instead of replaying to recreate identical commits. |
|
|
|
* A configuration variable tells "git fetch" to write the commit |
|
graph after finishing. |
|
|
|
|
|
Performance, Internal Implementation, Development Support etc. |
|
|
|
* The code to write commit-graph over given commit object names has |
|
been made a bit more robust. |
|
|
|
* The first line of verbose output from each test piece now carries |
|
the test name and number to help scanning with eyeballs. |
|
|
|
* Further clean-up of the initialization code. |
|
|
|
* xmalloc() used to have a mechanism to ditch memory and address |
|
space resources as the last resort upon seeing an allocation |
|
failure from the underlying malloc(), which made the code complex |
|
and thread-unsafe with dubious benefit, as major memory resource |
|
users already do limit their uses with various other mechanisms. |
|
It has been simplified away. |
|
|
|
* Unnecessary full-tree diff in "git log -L" machinery has been |
|
optimized away. |
|
|
|
* The http transport lacked some optimization the native transports |
|
learned to avoid unnecessary ref advertisement, which has been |
|
corrected. |
|
|
|
* Preparation for SHA-256 upgrade continues in the test department. |
|
(merge 0c37c41d13 bc/hash-independent-tests-part-5 later to maint). |
|
|
|
* The memory ownership model of the "git fast-import" got |
|
straightened out. |
|
|
|
* Output from trace2 subsystem is formatted more prettily now. |
|
|
|
* The internal code originally invented for ".gitignore" processing |
|
got reshuffled and renamed to make it less tied to "excluding" and |
|
stress more that it is about "matching", as it has been reused for |
|
things like sparse checkout specification that want to check if a |
|
path is "included". |
|
|
|
|
|
|
|
Fixes since v2.23 |
|
----------------- |
|
|
|
* "git grep --recurse-submodules" that looks at the working tree |
|
files looked at the contents in the index in submodules, instead of |
|
files in the working tree. |
|
(merge 6a289d45c0 mt/grep-submodules-working-tree later to maint). |
|
|
|
* Codepaths to walk tree objects have been audited for integer |
|
overflows and hardened. |
|
(merge 5aa02f9868 jk/tree-walk-overflow later to maint). |
|
|
|
* "git pack-refs" can lose refs that are created while running, which |
|
is getting corrected. |
|
(merge a613d4f817 sc/pack-refs-deletion-racefix later to maint). |
|
|
|
* "git checkout" and "git restore" to re-populate the index from a |
|
tree-ish (typically HEAD) did not work correctly for a path that |
|
was removed and then added again with the intent-to-add bit, when |
|
the corresponding working tree file was empty. This has been |
|
corrected. |
|
|
|
* Compilation fix. |
|
(merge 70597e8386 rs/nedalloc-fixlets later to maint). |
|
|
|
* "git gui" learned to call the clean-up procedure before exiting. |
|
(merge 0d88f3d2c5 py/git-gui-do-quit later to maint). |
|
|
|
* We promoted the "indent heuristics" that decides where to split |
|
diff hunks from experimental to the default a few years ago, but |
|
some stale documentation still marked it as experimental, which has |
|
been corrected. |
|
(merge 64e5e1fba1 sg/diff-indent-heuristic-non-experimental later to maint). |
|
|
|
* Fix a mismerge that happened in 2.22 timeframe. |
|
(merge acb7da05ac en/checkout-mismerge-fix later to maint). |
|
|
|
* "git archive" recorded incorrect length in extended pax header in |
|
some corner cases, which has been corrected. |
|
(merge 71d41ff651 rs/pax-extended-header-length-fix later to maint). |
|
|
|
* On-demand object fetching in lazy clone incorrectly tried to fetch |
|
commits from submodule projects, while still working in the |
|
superproject, which has been corrected. |
|
(merge a63694f523 jt/diff-lazy-fetch-submodule-fix later to maint). |
|
|
|
* Prepare get_short_oid() codepath to be thread-safe. |
|
(merge 7cfcb16b0e rs/sort-oid-array-thread-safe later to maint). |
|
|
|
* "for-each-ref" and friends that show refs did not protect themselves |
|
against ancient tags that did not record tagger names when asked to |
|
show "%(taggername)", which have been corrected. |
|
(merge 8b3f33ef11 mp/for-each-ref-missing-name-or-email later to maint). |
|
|
|
* The "git am" based backend of "git rebase" ignored the result of |
|
updating ".gitattributes" done in one step when replaying |
|
subsequent steps. |
|
(merge 2c65d90f75 bc/reread-attributes-during-rebase later to maint). |
|
|
|
* Tell cURL library to use the same malloc() implementation, with the |
|
xmalloc() wrapper, as the rest of the system, for consistency. |
|
(merge 93b980e58f cb/curl-use-xmalloc later to maint). |
|
|
|
* Build fix to adjust .gitignore to unignore a path that we started to track. |
|
(merge aac6ff7b5b js/visual-studio later to maint). |
|
|
|
* A few implementation fixes in the notes API. |
|
(merge 60fe477a0b mh/notes-duplicate-entries later to maint). |
|
|
|
* Fix an earlier regression to "git push --all" which should have |
|
been forbidden when the target remote repository is set to be a |
|
mirror. |
|
(merge 8e4c8af058 tg/push-all-in-mirror-forbidden later to maint). |
|
|
|
* Fix an earlier regression in the test suite, which mistakenly |
|
stopped running HTTPD tests. |
|
(merge 3960290675 sg/git-test-boolean later to maint). |
|
|
|
* "git rebase --autostash <upstream> <branch>", when <branch> is |
|
different from the current branch, incorrectly moved the tip of the |
|
current branch, which has been corrected. |
|
(merge bf1e28e0ad bw/rebase-autostash-keep-current-branch later to maint). |
|
|
|
* Update support for Asciidoctor documentation toolchain. |
|
(merge 83b0b8953e ma/asciidoctor-refmiscinfo later to maint). |
|
|
|
* Start using DocBook 5 (instead of DocBook 4.5) as Asciidoctor 2.0 |
|
no longer works with the older one. |
|
(merge f6461b82b9 bc/doc-use-docbook-5 later to maint). |
|
|
|
* The markup used in user-manual has been updated to work better with |
|
asciidoctor. |
|
(merge c4d2f6143a ma/user-manual-markup-update later to maint). |
|
|
|
* Make sure the grep machinery does not abort when seeing a payload |
|
that is not UTF-8 even when JIT is not in use with PCRE1. |
|
(merge ad7c543e3b cb/skip-utf8-check-with-pcre1 later to maint). |
|
|
|
* Other code cleanup, docfix, build fix, etc. |
|
(merge d1387d3895 en/fast-import-merge-doc later to maint). |
|
(merge 1c24a54ea4 bm/repository-layout-typofix later to maint). |
|
(merge 415b770b88 ds/midx-expire-repack later to maint). |
|
(merge 19800bdc3f nd/diff-parseopt later to maint). |
|
(merge 58166c2e9d tg/t0021-racefix later to maint). |
|
(merge 7027f508c7 dl/compat-cleanup later to maint). |
|
(merge e770fbfeff jc/test-cleanup later to maint). |
|
(merge 1fd881d404 rs/trace2-dst-warning later to maint). |
|
(merge 7e92756751 mh/http-urlmatch-cleanup later to maint). |
|
(merge 9784f97321 mh/release-commit-memory-fix later to maint). |
|
(merge 60d198d022 tb/banned-vsprintf-namefix later to maint). |
|
(merge 80e3658647 rs/help-unknown-ref-does-not-return later to maint). |
|
(merge 0a8bc7068f dt/remote-helper-doc-re-lock-option later to maint). |
|
(merge 27fd1e4ea7 en/merge-options-ff-and-friends later to maint). |
|
(merge 502c386ff9 sg/clean-nested-repo-with-ignored later to maint). |
|
(merge 26e3d1cbea am/mailmap-andrey-mazo later to maint).
|
|
|