Merge branch 'jk/diff-memuse-optim-with-stat-unmatch'
[git] / Documentation / RelNotes / 2.28.0.txt
1 Git 2.28 Release Notes
2 ======================
3
4 Updates since v2.27
5 -------------------
6
7 Backward compatibility notes
8
9  * "feature.experimental" configuration variable is to let volunteers
10    easily opt into a set of newer features, which use of the v2
11    transport protocol is now a part of.
12
13
14 UI, Workflows & Features
15
16  * The commands in the "diff" family learned to honor "diff.relative"
17    configuration variable.
18
19  * The check in "git fsck" to ensure that the tree objects are sorted
20    still had corner cases it missed unsorted entries.
21
22
23 Performance, Internal Implementation, Development Support etc.
24
25  * Code optimization for a common case.
26    (merge 8777616e4d an/merge-single-strategy-optim later to maint).
27
28  * We've adopted a convention that any on-stack structure can be
29    initialized to have zero values in all fields with "= { 0 }",
30    even when the first field happens to be a pointer, but sparse
31    complained that a null pointer should be spelled NULL for a long
32    time.  Start using -Wno-universal-initializer option to squelch
33    it (the latest sparse has it on by default).
34
35  * "git log -L..." now takes advantage of the "which paths are touched
36    by this commit?" info stored in the commit-graph system.
37
38  * As FreeBSD is not the only platform whose regexp library reports
39    a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that
40    automatically and skip the affected tests.
41
42  * "git bugreport" learns to report what shell is in use.
43
44  * Support for GIT_CURL_VERBOSE has been rewritten in terms of
45    GIT_TRACE_CURL.
46
47
48 Fixes since v2.27
49 -----------------
50
51  * The "--prepare-p4-only" option of "git p4" is supposed to stop
52    after replaying one changeset, but kept going (by mistake?)
53
54  * The error message from "git checkout -b foo -t bar baz" was
55    confusing.
56
57  * Some repositories in the wild have commits that record nonsense
58    committer timezone (e.g. rails.git); "git fast-import" learned an
59    option to pass these nonsense timestamps intact to allow recreating
60    existing repositories as-is.
61    (merge d42a2fb72f en/fast-import-looser-date later to maint).
62
63  * The command line completion script (in contrib/) tried to complete
64    "git stash -p" as if it were "git stash push -p", but it was too
65    aggressive and also affected "git stash show -p", which has been
66    corrected.
67    (merge fffd0cf520 vs/complete-stash-show-p-fix later to maint).
68
69  * On-the-wire protocol v2 easily falls into a deadlock between the
70    remote-curl helper and the fetch-pack process when the server side
71    prematurely throws an error and disconnects.  The communication has
72    been updated to make it more robust.
73
74  * "git checkout -p" did not handle a newly added path at all.
75    (merge 2c8bd8471a js/checkout-p-new-file later to maint).
76
77  * The code to parse "git bisect start" command line was lax in
78    validating the arguments.
79    (merge 4d9005ff5d cb/bisect-helper-parser-fix later to maint).
80
81  * Other code cleanup, docfix, build fix, etc.
82    (merge 2c31a7aa44 jx/pkt-line-doc-count-fix later to maint).
83    (merge d63ae31962 cb/t5608-cleanup later to maint).