]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/RelNotes/2.28.0.txt
The seventh batch
[thirdparty/git.git] / Documentation / RelNotes / 2.28.0.txt
CommitLineData
20514004
JH
1Git 2.28 Release Notes
2======================
3
4Updates since v2.27
5-------------------
6
7Backward 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
a08a83db
JH
13 * It used to be that setting extensions.* configuration variables
14 alone, while leaving core.repositoryFormatVersion=0, made these
15 settings effective, which was a wrong thing to do. In version 0,
16 there was no special meaning in extensions.* configuration
17 variables. This has been corrected. If you need these repository
18 extensions to be effective, the core.repositoryFormatVersion
19 variable needs to be updated to 1 after vetting these extensions.*
20 variables are set correctly.
21
20514004
JH
22
23UI, Workflows & Features
24
25 * The commands in the "diff" family learned to honor "diff.relative"
26 configuration variable.
27
0313f36c
JH
28 * The check in "git fsck" to ensure that the tree objects are sorted
29 still had corner cases it missed unsorted entries.
20514004 30
c9c318d6
JH
31 * The interface to redact sensitive information in the trace output
32 has been simplified.
33
f402ea68
JH
34 * The command line completion (in contrib/) learned to complete
35 options that the "git switch" command takes.
36
37 * "git diff" used to take arguments in random and nonsense range
38 notation, e.g. "git diff A..B C", "git diff A..B C...D", etc.,
39 which has been cleaned up.
40
a08a83db
JH
41 * "git diff-files" has been taught to say paths that are marked as
42 intent-to-add are new files, not modified from an empty blob.
43
4a0fcf9f
JH
44 * "git status" learned to report the status of sparse checkout.
45
46 * "git difftool" has trouble dealing with paths added to the index
47 with the intent-to-add bit.
48
49 * "git fast-export --anonymize" learned to take customized mapping to
50 allow its users to tweak its output more usable for debugging.
51
20514004
JH
52
53Performance, Internal Implementation, Development Support etc.
54
55 * Code optimization for a common case.
56 (merge 8777616e4d an/merge-single-strategy-optim later to maint).
57
58 * We've adopted a convention that any on-stack structure can be
59 initialized to have zero values in all fields with "= { 0 }",
60 even when the first field happens to be a pointer, but sparse
61 complained that a null pointer should be spelled NULL for a long
62 time. Start using -Wno-universal-initializer option to squelch
63 it (the latest sparse has it on by default).
64
0313f36c
JH
65 * "git log -L..." now takes advantage of the "which paths are touched
66 by this commit?" info stored in the commit-graph system.
67
68 * As FreeBSD is not the only platform whose regexp library reports
69 a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that
70 automatically and skip the affected tests.
71
72 * "git bugreport" learns to report what shell is in use.
73
74 * Support for GIT_CURL_VERBOSE has been rewritten in terms of
75 GIT_TRACE_CURL.
20514004 76
101b3204
JH
77 * Preliminary clean-ups around refs API, plus file format
78 specification documentation for the reftable backend.
79
80 * Workaround breakage in MSVC build, where "curl-config --cflags"
81 gives settings appropriate for GCC build.
82
f402ea68
JH
83 * Code clean-up of "git clean" resulted in a fix of recent
84 performance regression.
85
86 * Code clean-up in the codepath that serves "git fetch" continues.
87
88 * "git merge-base --is-ancestor" is taught to take advantage of the
89 commit graph.
90
91 * Rewrite of parts of the scripted "git submodule" Porcelain command
92 continues; this time it is "git submodule set-branch" subcommand's
93 turn.
94
95 * The "fetch/clone" protocol has been updated to allow the server to
96 instruct the clients to grab pre-packaged packfile(s) in addition
97 to the packed object data coming over the wire.
98
a08a83db
JH
99 * A misdesigned strbuf_write_fd() function has been retired.
100
4a0fcf9f
JH
101 * SHA-256 migration work continues, including CVS/SVN interface.
102
103 * A few fields in "struct commit" that do not have to always be
104 present have been moved to commit slabs.
105
106 * API cleanup for get_worktrees()
107
108 * By renumbering object flag bits, "struct object" managed to lose
109 bloated inter-field padding.
110
111 * The name of the primary branch in existing repositories, and the
112 default name used for the first branch in newly created
113 repositories, is made configurable, so that we can eventually wean
114 ourselves off of the hardcoded 'master'.
115
116 * The effort to avoid using test_must_fail on non-git command continues.
a08a83db 117
20514004
JH
118
119Fixes since v2.27
120-----------------
121
122 * The "--prepare-p4-only" option of "git p4" is supposed to stop
123 after replaying one changeset, but kept going (by mistake?)
124
125 * The error message from "git checkout -b foo -t bar baz" was
126 confusing.
127
128 * Some repositories in the wild have commits that record nonsense
129 committer timezone (e.g. rails.git); "git fast-import" learned an
130 option to pass these nonsense timestamps intact to allow recreating
131 existing repositories as-is.
132 (merge d42a2fb72f en/fast-import-looser-date later to maint).
133
0313f36c
JH
134 * The command line completion script (in contrib/) tried to complete
135 "git stash -p" as if it were "git stash push -p", but it was too
136 aggressive and also affected "git stash show -p", which has been
137 corrected.
138 (merge fffd0cf520 vs/complete-stash-show-p-fix later to maint).
139
140 * On-the-wire protocol v2 easily falls into a deadlock between the
141 remote-curl helper and the fetch-pack process when the server side
142 prematurely throws an error and disconnects. The communication has
143 been updated to make it more robust.
144
145 * "git checkout -p" did not handle a newly added path at all.
146 (merge 2c8bd8471a js/checkout-p-new-file later to maint).
147
148 * The code to parse "git bisect start" command line was lax in
149 validating the arguments.
150 (merge 4d9005ff5d cb/bisect-helper-parser-fix later to maint).
151
101b3204
JH
152 * Reduce memory usage during "diff --quiet" in a worktree with too
153 many stat-unmatched paths.
154 (merge d2d7fbe129 jk/diff-memuse-optim-with-stat-unmatch later to maint).
155
156 * The reflog entries for "git clone" and "git fetch" did not
157 anonymize the URL they operated on.
158 (merge 46da295a77 js/reflog-anonymize-for-clone-and-fetch later to maint).
159
160 * The behaviour of "sparse-checkout" in the state "git clone
161 --no-checkout" left was changed accidentally in 2.27, which has
162 been corrected.
163
164 * Use of negative pathspec, while collecting paths including
165 untracked ones in the working tree, was broken.
166
c9c318d6
JH
167 * The same worktree directory must be registered only once, but
168 "git worktree move" allowed this invariant to be violated, which
169 has been corrected.
170 (merge 810382ed37 es/worktree-duplicate-paths later to maint).
171
172 * The effect of sparse checkout settings on submodules is documented.
173 (merge e7d7c73249 en/sparse-with-submodule-doc later to maint).
174
f402ea68
JH
175 * Code clean-up around "git branch" with a minor bugfix.
176 (merge dc44639904 dl/branch-cleanup later to maint).
177
178 * A branch name used in a test has been clarified to match what is
179 going on.
180 (merge 08dc26061f pb/t4014-unslave later to maint).
181
a08a83db
JH
182 * An in-code comment in "git diff" has been updated.
183 (merge c592fd4c83 dl/diff-usage-comment-update later to maint).
184
4a0fcf9f
JH
185 * The documentation and some tests have been adjusted for the recent
186 renaming of "pu" branch to "seen".
187 (merge 6dca5dbf93 js/pu-to-seen later to maint).
188
189 * The code to push changes over "dumb" HTTP had a bad interaction
190 with the commit reachability code due to incorrect allocation of
191 object flag bits, which has been corrected.
192 (merge 64472d15e9 bc/http-push-flagsfix later to maint).
193
20514004
JH
194 * Other code cleanup, docfix, build fix, etc.
195 (merge 2c31a7aa44 jx/pkt-line-doc-count-fix later to maint).
196 (merge d63ae31962 cb/t5608-cleanup later to maint).
101b3204
JH
197 (merge 788db145c7 dl/t-readme-spell-git-correctly later to maint).
198 (merge 45a87a83bb dl/python-2.7-is-the-floor-version later to maint).
199 (merge b75a219904 es/advertise-contribution-doc later to maint).
a08a83db
JH
200 (merge 0c9a4f638a rs/pull-leakfix later to maint).
201 (merge d546fe2874 rs/commit-reach-leakfix later to maint).
4a0fcf9f
JH
202 (merge 087bf5409c mk/pb-pretty-email-without-domain-part-fix later to maint).
203 (merge 5f4ee57ad9 es/worktree-code-cleanup later to maint).