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