Declare that the next one will be named 2.20
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
f84b9b09d4
commit
2efbb7f521
167
Documentation/RelNotes/2.20.0.txt
Normal file
167
Documentation/RelNotes/2.20.0.txt
Normal file
@ -0,0 +1,167 @@
|
||||
Git Release Notes
|
||||
=================
|
||||
|
||||
Backward Compatibility Notes
|
||||
----------------------------
|
||||
|
||||
* "git branch -l <foo>" used to be a way to ask a reflog to be
|
||||
created while creating a new branch, but that is no longer the
|
||||
case. It is a short-hand for "git branch --list <foo>" now.
|
||||
|
||||
* "git push" into refs/tags/* hierarchy is rejected without getting
|
||||
forced, but "git fetch" (misguidedly) used the "fast forwarding"
|
||||
rule used for the refs/heads/* hierarchy; this has been corrected,
|
||||
which means some fetches of tags that did not fail with older
|
||||
version of Git will fail without "--force" with this version.
|
||||
|
||||
|
||||
Updates since v2.19
|
||||
-------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* Running "git clone" against a project that contain two files with
|
||||
pathnames that differ only in cases on a case insensitive
|
||||
filesystem would result in one of the files lost because the
|
||||
underlying filesystem is incapable of holding both at the same
|
||||
time. An attempt is made to detect such a case and warn.
|
||||
|
||||
* "git checkout -b newbranch [HEAD]" should not have to do as much as
|
||||
checking out a commit different from HEAD. An attempt is made to
|
||||
optimize this special case.
|
||||
|
||||
* "git rev-list --stdin </dev/null" used to be an error; it now shows
|
||||
no output without an error. "git rev-list --stdin --default HEAD"
|
||||
still falls back to the given default when nothing is given on the
|
||||
standard input.
|
||||
|
||||
* Lift code from GitHub to restrict delta computation so that an
|
||||
object that exists in one fork is not made into a delta against
|
||||
another object that does not appear in the same forked repository.
|
||||
|
||||
* "git format-patch" learned new "--interdiff" and "--range-diff"
|
||||
options to explain the difference between this version and the
|
||||
previous attempt in the cover letter (or after the tree-dashes as
|
||||
a comment).
|
||||
|
||||
* "git mailinfo" used in "git am" learned to make a best-effort
|
||||
recovery of a patch corrupted by MUA that sends text/plain with
|
||||
format=flawed option.
|
||||
(merge 3aa4d81f88 rs/mailinfo-format-flowed later to maint).
|
||||
|
||||
* The rules used by "git push" and "git fetch" to determine if a ref
|
||||
can or cannot be updated were inconsistent; specifically, fetching
|
||||
to update existing tags were allowed even though tags are supposed
|
||||
to be unmoving anchoring points. "git fetch" was taught to forbid
|
||||
updates to existing tags without the "--force" option.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* When there are too many packfiles in a repository (which is not
|
||||
recommended), looking up an object in these would require
|
||||
consulting many pack .idx files; a new mechanism to have a single
|
||||
file that consolidates all of these .idx files is introduced.
|
||||
|
||||
* "git submodule update" is getting rewritten piece-by-piece into C.
|
||||
|
||||
* The code for computing history reachability has been shuffled,
|
||||
obtained a bunch of new tests to cover them, and then being
|
||||
improved.
|
||||
|
||||
* The unpack_trees() API used in checking out a branch and merging
|
||||
walks one or more trees along with the index. When the cache-tree
|
||||
in the index tells us that we are walking a tree whose flattened
|
||||
contents is known (i.e. matches a span in the index), as linearly
|
||||
scanning a span in the index is much more efficient than having to
|
||||
open tree objects recursively and listing their entries, the walk
|
||||
can be optimized, which has been done.
|
||||
|
||||
* When creating a thin pack, which allows objects to be made into a
|
||||
delta against another object that is not in the resulting pack but
|
||||
is known to be present on the receiving end, the code learned to
|
||||
take advantage of the reachability bitmap; this allows the server
|
||||
to send a delta against a base beyond the "boundary" commit.
|
||||
|
||||
* spatch transformation to replace boolean uses of !hashcmp() to
|
||||
newly introduced oideq() is added, and applied, to regain
|
||||
performance lost due to support of multiple hash algorithms.
|
||||
|
||||
* Fix a bug in which the same path could be registered under multiple
|
||||
worktree entries if the path was missing (for instance, was removed
|
||||
manually). Also, as a convenience, expand the number of cases in
|
||||
which --force is applicable.
|
||||
|
||||
|
||||
Fixes since v2.19
|
||||
-----------------
|
||||
|
||||
* "git interpret-trailers" and its underlying machinery had a buggy
|
||||
code that attempted to ignore patch text after commit log message,
|
||||
which triggered in various codepaths that will always get the log
|
||||
message alone and never get such an input.
|
||||
(merge 66e83d9b41 jk/trailer-fixes later to maint).
|
||||
|
||||
* Malformed or crafted data in packstream can make our code attempt
|
||||
to read or write past the allocated buffer and abort, instead of
|
||||
reporting an error, which has been fixed.
|
||||
|
||||
* "git rebase -i" did not clear the state files correctly when a run
|
||||
of "squash/fixup" is aborted and then the user manually amended the
|
||||
commit instead, which has been corrected.
|
||||
(merge 10d2f35436 js/rebase-i-autosquash-fix later to maint).
|
||||
|
||||
* When fsmonitor is in use, after operation on submodules updates
|
||||
.gitmodules, we lost track of the fact that we did so and relied on
|
||||
stale fsmonitor data.
|
||||
(merge 43f1180814 bp/mv-submodules-with-fsmonitor later to maint).
|
||||
|
||||
* Fix for a long-standing bug that leaves the index file corrupt when
|
||||
it shrinks during a partial commit.
|
||||
(merge 6c003d6ffb jk/reopen-tempfile-truncate later to maint).
|
||||
|
||||
* Further fix for O_APPEND emulation on Windows
|
||||
(merge eeaf7ddac7 js/mingw-o-append later to maint).
|
||||
|
||||
* A corner case bugfix in "git rerere" code.
|
||||
(merge ad2bf0d9b4 en/rerere-multi-stage-1-fix later to maint).
|
||||
|
||||
* "git add ':(attr:foo)'" is not supported and is supposed to be
|
||||
rejected while the command line arguments are parsed, but we fail
|
||||
to reject such a command line upfront.
|
||||
(merge 84d938b732 nd/attr-pathspec-fix later to maint).
|
||||
|
||||
* Recent update broke the reachability algorithm when refs (e.g.
|
||||
tags) that point at objects that are not commit were involved,
|
||||
which has been fixed.
|
||||
|
||||
* "git rebase" etc. in Git 2.19 fails to abort when given an empty
|
||||
commit log message as result of editing, which has been corrected.
|
||||
(merge a3ec9eaf38 en/sequencer-empty-edit-result-aborts later to maint).
|
||||
|
||||
* The code to backfill objects in lazily cloned repository did not
|
||||
work correctly, which has been corrected.
|
||||
(merge e68302011c jt/lazy-object-fetch-fix later to maint).
|
||||
|
||||
* Update error messages given by "git remote" and make them consistent.
|
||||
(merge 5025425dff ms/remote-error-message-update later to maint).
|
||||
|
||||
* "git update-ref" learned to make both "--no-deref" and "--stdin"
|
||||
work at the same time.
|
||||
(merge d345e9fbe7 en/update-ref-no-deref-stdin later to maint).
|
||||
|
||||
* Recently added "range-diff" had a corner-case bug to cause it
|
||||
segfault, which has been corrected.
|
||||
(merge e467a90c7a tg/range-diff-corner-case-fix later to maint).
|
||||
|
||||
* Code cleanup, docfix, build fix, etc.
|
||||
(merge 96a7501aad ts/doc-build-manpage-xsl-quietly later to maint).
|
||||
(merge b9b07efdb2 tg/conflict-marker-size later to maint).
|
||||
(merge fa0aeea770 sg/doc-trace-appends later to maint).
|
||||
(merge d64324cb60 tb/void-check-attr later to maint).
|
||||
(merge c3b9bc94b9 en/double-semicolon-fix later to maint).
|
||||
(merge 79336116f5 sg/t3701-tighten-trace later to maint).
|
||||
(merge 801fa63a90 jk/dev-build-format-security later to maint).
|
||||
(merge 0597dd62ba sb/string-list-remove-unused later to maint).
|
||||
(merge db2d36fad8 bw/protocol-v2 later to maint).
|
||||
(merge 456d7cd3a9 sg/split-index-test later to maint).
|
167
RelNotes
167
RelNotes
@ -1,167 +0,0 @@
|
||||
Git Release Notes
|
||||
=================
|
||||
|
||||
Backward Compatibility Notes
|
||||
----------------------------
|
||||
|
||||
* "git branch -l <foo>" used to be a way to ask a reflog to be
|
||||
created while creating a new branch, but that is no longer the
|
||||
case. It is a short-hand for "git branch --list <foo>" now.
|
||||
|
||||
* "git push" into refs/tags/* hierarchy is rejected without getting
|
||||
forced, but "git fetch" (misguidedly) used the "fast forwarding"
|
||||
rule used for the refs/heads/* hierarchy; this has been corrected,
|
||||
which means some fetches of tags that did not fail with older
|
||||
version of Git will fail without "--force" with this version.
|
||||
|
||||
|
||||
Updates since v2.19
|
||||
-------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* Running "git clone" against a project that contain two files with
|
||||
pathnames that differ only in cases on a case insensitive
|
||||
filesystem would result in one of the files lost because the
|
||||
underlying filesystem is incapable of holding both at the same
|
||||
time. An attempt is made to detect such a case and warn.
|
||||
|
||||
* "git checkout -b newbranch [HEAD]" should not have to do as much as
|
||||
checking out a commit different from HEAD. An attempt is made to
|
||||
optimize this special case.
|
||||
|
||||
* "git rev-list --stdin </dev/null" used to be an error; it now shows
|
||||
no output without an error. "git rev-list --stdin --default HEAD"
|
||||
still falls back to the given default when nothing is given on the
|
||||
standard input.
|
||||
|
||||
* Lift code from GitHub to restrict delta computation so that an
|
||||
object that exists in one fork is not made into a delta against
|
||||
another object that does not appear in the same forked repository.
|
||||
|
||||
* "git format-patch" learned new "--interdiff" and "--range-diff"
|
||||
options to explain the difference between this version and the
|
||||
previous attempt in the cover letter (or after the tree-dashes as
|
||||
a comment).
|
||||
|
||||
* "git mailinfo" used in "git am" learned to make a best-effort
|
||||
recovery of a patch corrupted by MUA that sends text/plain with
|
||||
format=flawed option.
|
||||
(merge 3aa4d81f88 rs/mailinfo-format-flowed later to maint).
|
||||
|
||||
* The rules used by "git push" and "git fetch" to determine if a ref
|
||||
can or cannot be updated were inconsistent; specifically, fetching
|
||||
to update existing tags were allowed even though tags are supposed
|
||||
to be unmoving anchoring points. "git fetch" was taught to forbid
|
||||
updates to existing tags without the "--force" option.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* When there are too many packfiles in a repository (which is not
|
||||
recommended), looking up an object in these would require
|
||||
consulting many pack .idx files; a new mechanism to have a single
|
||||
file that consolidates all of these .idx files is introduced.
|
||||
|
||||
* "git submodule update" is getting rewritten piece-by-piece into C.
|
||||
|
||||
* The code for computing history reachability has been shuffled,
|
||||
obtained a bunch of new tests to cover them, and then being
|
||||
improved.
|
||||
|
||||
* The unpack_trees() API used in checking out a branch and merging
|
||||
walks one or more trees along with the index. When the cache-tree
|
||||
in the index tells us that we are walking a tree whose flattened
|
||||
contents is known (i.e. matches a span in the index), as linearly
|
||||
scanning a span in the index is much more efficient than having to
|
||||
open tree objects recursively and listing their entries, the walk
|
||||
can be optimized, which has been done.
|
||||
|
||||
* When creating a thin pack, which allows objects to be made into a
|
||||
delta against another object that is not in the resulting pack but
|
||||
is known to be present on the receiving end, the code learned to
|
||||
take advantage of the reachability bitmap; this allows the server
|
||||
to send a delta against a base beyond the "boundary" commit.
|
||||
|
||||
* spatch transformation to replace boolean uses of !hashcmp() to
|
||||
newly introduced oideq() is added, and applied, to regain
|
||||
performance lost due to support of multiple hash algorithms.
|
||||
|
||||
* Fix a bug in which the same path could be registered under multiple
|
||||
worktree entries if the path was missing (for instance, was removed
|
||||
manually). Also, as a convenience, expand the number of cases in
|
||||
which --force is applicable.
|
||||
|
||||
|
||||
Fixes since v2.19
|
||||
-----------------
|
||||
|
||||
* "git interpret-trailers" and its underlying machinery had a buggy
|
||||
code that attempted to ignore patch text after commit log message,
|
||||
which triggered in various codepaths that will always get the log
|
||||
message alone and never get such an input.
|
||||
(merge 66e83d9b41 jk/trailer-fixes later to maint).
|
||||
|
||||
* Malformed or crafted data in packstream can make our code attempt
|
||||
to read or write past the allocated buffer and abort, instead of
|
||||
reporting an error, which has been fixed.
|
||||
|
||||
* "git rebase -i" did not clear the state files correctly when a run
|
||||
of "squash/fixup" is aborted and then the user manually amended the
|
||||
commit instead, which has been corrected.
|
||||
(merge 10d2f35436 js/rebase-i-autosquash-fix later to maint).
|
||||
|
||||
* When fsmonitor is in use, after operation on submodules updates
|
||||
.gitmodules, we lost track of the fact that we did so and relied on
|
||||
stale fsmonitor data.
|
||||
(merge 43f1180814 bp/mv-submodules-with-fsmonitor later to maint).
|
||||
|
||||
* Fix for a long-standing bug that leaves the index file corrupt when
|
||||
it shrinks during a partial commit.
|
||||
(merge 6c003d6ffb jk/reopen-tempfile-truncate later to maint).
|
||||
|
||||
* Further fix for O_APPEND emulation on Windows
|
||||
(merge eeaf7ddac7 js/mingw-o-append later to maint).
|
||||
|
||||
* A corner case bugfix in "git rerere" code.
|
||||
(merge ad2bf0d9b4 en/rerere-multi-stage-1-fix later to maint).
|
||||
|
||||
* "git add ':(attr:foo)'" is not supported and is supposed to be
|
||||
rejected while the command line arguments are parsed, but we fail
|
||||
to reject such a command line upfront.
|
||||
(merge 84d938b732 nd/attr-pathspec-fix later to maint).
|
||||
|
||||
* Recent update broke the reachability algorithm when refs (e.g.
|
||||
tags) that point at objects that are not commit were involved,
|
||||
which has been fixed.
|
||||
|
||||
* "git rebase" etc. in Git 2.19 fails to abort when given an empty
|
||||
commit log message as result of editing, which has been corrected.
|
||||
(merge a3ec9eaf38 en/sequencer-empty-edit-result-aborts later to maint).
|
||||
|
||||
* The code to backfill objects in lazily cloned repository did not
|
||||
work correctly, which has been corrected.
|
||||
(merge e68302011c jt/lazy-object-fetch-fix later to maint).
|
||||
|
||||
* Update error messages given by "git remote" and make them consistent.
|
||||
(merge 5025425dff ms/remote-error-message-update later to maint).
|
||||
|
||||
* "git update-ref" learned to make both "--no-deref" and "--stdin"
|
||||
work at the same time.
|
||||
(merge d345e9fbe7 en/update-ref-no-deref-stdin later to maint).
|
||||
|
||||
* Recently added "range-diff" had a corner-case bug to cause it
|
||||
segfault, which has been corrected.
|
||||
(merge e467a90c7a tg/range-diff-corner-case-fix later to maint).
|
||||
|
||||
* Code cleanup, docfix, build fix, etc.
|
||||
(merge 96a7501aad ts/doc-build-manpage-xsl-quietly later to maint).
|
||||
(merge b9b07efdb2 tg/conflict-marker-size later to maint).
|
||||
(merge fa0aeea770 sg/doc-trace-appends later to maint).
|
||||
(merge d64324cb60 tb/void-check-attr later to maint).
|
||||
(merge c3b9bc94b9 en/double-semicolon-fix later to maint).
|
||||
(merge 79336116f5 sg/t3701-tighten-trace later to maint).
|
||||
(merge 801fa63a90 jk/dev-build-format-security later to maint).
|
||||
(merge 0597dd62ba sb/string-list-remove-unused later to maint).
|
||||
(merge db2d36fad8 bw/protocol-v2 later to maint).
|
||||
(merge 456d7cd3a9 sg/split-index-test later to maint).
|
Loading…
Reference in New Issue
Block a user