Skip to content

Commit 2d3b1c5

Browse files
committed
Initial batch post 2.19
1 parent 1966cda commit 2d3b1c5

File tree

2 files changed

+113
-2
lines changed

2 files changed

+113
-2
lines changed

GIT-VERSION-GEN

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22

33
GVF=GIT-VERSION-FILE
4-
DEF_VER=v2.19.0
4+
DEF_VER=v2.19.GIT
55

66
LF='
77
'

RelNotes

Lines changed: 0 additions & 1 deletion
This file was deleted.

RelNotes

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
Git Release Notes
2+
=================
3+
4+
Backward Compatibility Notes
5+
----------------------------
6+
7+
* "git branch -l <foo>" used to be a way to ask a reflog to be
8+
created while creating a new branch, but that is no longer the
9+
case. It is a short-hand for "git branch --list <foo>" now.
10+
11+
* "git push" into refs/tags/* hierarchy is rejected without getting
12+
forced, but "git fetch" (misguidedly) used the "fast forwarding"
13+
rule used for the refs/heads/* hierarchy; this has been corrected,
14+
which means some fetches of tags that did not fail with older
15+
version of Git will fail without "--force" with this version.
16+
17+
18+
Updates since v2.19
19+
-------------------
20+
21+
UI, Workflows & Features
22+
23+
* Running "git clone" against a project that contain two files with
24+
pathnames that differ only in cases on a case insensitive
25+
filesystem would result in one of the files lost because the
26+
underlying filesystem is incapable of holding both at the same
27+
time. An attempt is made to detect such a case and warn.
28+
29+
* "git checkout -b newbranch [HEAD]" should not have to do as much as
30+
checking out a commit different from HEAD. An attempt is made to
31+
optimize this special case.
32+
33+
* "git rev-list --stdin </dev/null" used to be an error; it now shows
34+
no output without an error. "git rev-list --stdin --default HEAD"
35+
still falls back to the given default when nothing is given on the
36+
standard input.
37+
38+
* Lift code from GitHub to restrict delta computation so that an
39+
object that exists in one fork is not made into a delta against
40+
another object that does not appear in the same forked repository.
41+
42+
* "git format-patch" learned new "--interdiff" and "--range-diff"
43+
options to explain the difference between this version and the
44+
previous attempt in the cover letter (or after the tree-dashes as
45+
a comment).
46+
47+
* "git mailinfo" used in "git am" learned to make a best-effort
48+
recovery of a patch corrupted by MUA that sends text/plain with
49+
format=flawed option.
50+
(merge 3aa4d81f88 rs/mailinfo-format-flowed later to maint).
51+
52+
* The rules used by "git push" and "git fetch" to determine if a ref
53+
can or cannot be updated were inconsistent; specifically, fetching
54+
to update existing tags were allowed even though tags are supposed
55+
to be unmoving anchoring points. "git fetch" was taught to forbid
56+
updates to existing tags without the "--force" option.
57+
58+
59+
Performance, Internal Implementation, Development Support etc.
60+
61+
* When there are too many packfiles in a repository (which is not
62+
recommended), looking up an object in these would require
63+
consulting many pack .idx files; a new mechanism to have a single
64+
file that consolidates all of these .idx files is introduced.
65+
66+
* "git submodule update" is getting rewritten piece-by-piece into C.
67+
68+
* The code for computing history reachability has been shuffled,
69+
obtained a bunch of new tests to cover them, and then being
70+
improved.
71+
72+
* The unpack_trees() API used in checking out a branch and merging
73+
walks one or more trees along with the index. When the cache-tree
74+
in the index tells us that we are walking a tree whose flattened
75+
contents is known (i.e. matches a span in the index), as linearly
76+
scanning a span in the index is much more efficient than having to
77+
open tree objects recursively and listing their entries, the walk
78+
can be optimized, which has been done.
79+
80+
* When creating a thin pack, which allows objects to be made into a
81+
delta against another object that is not in the resulting pack but
82+
is known to be present on the receiving end, the code learned to
83+
take advantage of the reachability bitmap; this allows the server
84+
to send a delta against a base beyond the "boundary" commit.
85+
86+
* spatch transformation to replace boolean uses of !hashcmp() to
87+
newly introduced oideq() is added, and applied, to regain
88+
performance lost due to support of multiple hash algorithms.
89+
90+
* Fix a bug in which the same path could be registered under multiple
91+
worktree entries if the path was missing (for instance, was removed
92+
manually). Also, as a convenience, expand the number of cases in
93+
which --force is applicable.
94+
95+
96+
Fixes since v2.19
97+
-----------------
98+
99+
* "git interpret-trailers" and its underlying machinery had a buggy
100+
code that attempted to ignore patch text after commit log message,
101+
which triggered in various codepaths that will always get the log
102+
message alone and never get such an input.
103+
(merge 66e83d9b41 jk/trailer-fixes later to maint).
104+
105+
* Malformed or crafted data in packstream can make our code attempt
106+
to read or write past the allocated buffer and abort, instead of
107+
reporting an error, which has been fixed.
108+
109+
* Code cleanup, docfix, build fix, etc.
110+
(merge 96a7501aad ts/doc-build-manpage-xsl-quietly later to maint).
111+
(merge b9b07efdb2 tg/conflict-marker-size later to maint).
112+
(merge fa0aeea770 sg/doc-trace-appends later to maint).

0 commit comments

Comments
 (0)