]> git.ipfire.org Git - thirdparty/git.git/blob - Documentation/RelNotes/2.33.0.txt
diffcore-rename: move old_dir/new_dir definition to plug leak
[thirdparty/git.git] / Documentation / RelNotes / 2.33.0.txt
1 Git 2.33 Release Notes
2 ======================
3
4 Backward compatibility notes
5 ----------------------------
6
7 * The "-m" option in "git log -m" that does not specify which format,
8 if any, of diff is desired did not have any visible effect; it now
9 implies some form of diff (by default "--patch") is produced.
10
11 You can disable the diff output with "git log -m --no-patch", but
12 then there probably isn't much point in passing "-m" in the first
13 place ;-).
14
15
16 Updates since Git 2.32
17 ----------------------
18
19 UI, Workflows & Features
20
21 * "git send-email" learned the "--sendmail-cmd" command line option
22 and the "sendemail.sendmailCmd" configuration variable, which is a
23 more sensible approach than the current way of repurposing the
24 "smtp-server" that is meant to name the server to instead name the
25 command to talk to the server.
26
27 * The "-m" option in "git log -m" that does not specify which format,
28 if any, of diff is desired did not have any visible effect; it now
29 implies some form of diff (by default "--patch") is produced.
30
31 * The userdiff pattern for C# learned the token "record".
32
33 * "git rev-list" learns to omit the "commit <object-name>" header
34 lines from the output with the `--no-commit-header` option.
35
36
37 Performance, Internal Implementation, Development Support etc.
38
39 * The code to handle the "--format" option in "for-each-ref" and
40 friends made too many string comparisons on %(atom)s used in the
41 format string, which has been corrected by converting them into
42 enum when the format string is parsed.
43
44 * Use the hashfile API in the codepath that writes the index file to
45 reduce code duplication.
46
47 * Repeated rename detections in a sequence of mergy operations have
48 been optimize out.
49
50 * Preliminary clean-up of tests before the main reftable changes
51 hits the codebase.
52
53 * The backend for "diff -G/-S" has been updated to use pcre2 engine
54 when available.
55
56 * Use ".DELETE_ON_ERROR" pseudo target to simplify our Makefile.
57
58 * Code cleanup around struct_type_init() functions.
59
60 * "git send-email" optimization.
61
62 * GitHub Actions / CI update.
63 (merge 0dc787a9f2 js/ci-windows-update later to maint).
64
65
66 Fixes since v2.32
67 -----------------
68
69 * We historically rejected a very short string as an author name
70 while accepting a patch e-mail, which has been loosened.
71 (merge 72ee47ceeb ef/mailinfo-short-name later to maint).
72
73 * The parallel checkout codepath did not initialize object ID field
74 used to talk to the worker processes in a futureproof way.
75
76 * Rewrite code that triggers undefined behaviour warning.
77 (merge aafa5df0df jn/size-t-casted-to-off-t-fix later to maint).
78
79 * The description of "fast-forward" in the glossary has been updated.
80 (merge e22f2daed0 ry/clarify-fast-forward-in-glossary later to maint).
81
82 * Recent "git clone" left a temporary directory behind when the
83 transport layer returned an failure.
84 (merge 6aacb7d861 jk/clone-clean-upon-transport-error later to maint).
85
86 * "git fetch" over protocol v2 left its side of the socket open after
87 it finished speaking, which unnecessarily wasted the resource on
88 the other side.
89 (merge ae1a7eefff jk/fetch-pack-v2-half-close-early later to maint).
90
91 * The command line completion (in contrib/) learned that "git diff"
92 takes the "--anchored" option.
93 (merge d1e7c2cac9 tb/complete-diff-anchored later to maint).
94
95 * "git-svn" tests assumed that "locale -a", which is used to pick an
96 available UTF-8 locale, is available everywhere. A knob has been
97 introduced to allow testers to specify a suitable locale to use.
98 (merge 482c962de4 dd/svn-test-wo-locale-a later to maint).
99
100 * Update "git subtree" to work better on Windows.
101 (merge 77f37de39f js/subtree-on-windows-fix later to maint).
102
103 * Remove multimail from contrib/
104 (merge f74d11471f js/no-more-multimail later to maint).
105
106 * Make the codebase MSAN clean.
107 (merge 4dbc55e87d ah/uninitialized-reads-fix later to maint).
108
109 * Work around inefficient glob substitution in older versions of bash
110 by rewriting parts of a test.
111 (merge eb87c6f559 jx/t6020-with-older-bash later to maint).
112
113 * Avoid duplicated work while building reachability bitmaps.
114 (merge aa9ad6fee5 jk/bitmap-tree-optim later to maint).
115
116 * We broke "GIT_SKIP_TESTS=t?000" to skip certain tests in recent
117 update, which got fixed.
118
119 * The side-band demultiplexer that is used to display progress output
120 from the remote end did not clear the line properly when the end of
121 line hits at a packet boundary, which has been corrected.
122
123 * Some test scripts assumed that readlink(1) was universally
124 installed and available, which is not the case.
125 (merge 7c0afdf23c jk/test-without-readlink-1 later to maint).
126
127 * Recent update to completion script (in contrib/) broke those who
128 use the __git_complete helper to define completion to their custom
129 command.
130 (merge cea232194d fw/complete-cmd-idx-fix later to maint).
131
132 * Output from some of our tests were affected by the width of the
133 terminal that they were run in, which has been corrected by
134 exporting a fixed value in the COLUMNS environment.
135 (merge c49a177bec ab/fix-columns-to-80-during-tests later to maint).
136
137 * On Windows, mergetool has been taught to find kdiff3.exe just like
138 it finds winmerge.exe.
139 (merge 47eb4c6890 ms/mergetools-kdiff3-on-windows later to maint).
140
141 * When we cannot figure out how wide the terminal is, we use a
142 fallback value of 80 ourselves (which cannot be avoided), but when
143 we run the pager, we export it in COLUMNS, which forces the pager
144 to use the hardcoded value, even when the pager is perfectly
145 capable to figure it out itself. Stop exporting COLUMNS when we
146 fall back on the hardcoded default value for our own use.
147 (merge 9b6e2c8b98 js/stop-exporting-bogus-columns later to maint).
148
149 * "git cat-file --batch-all-objects"" misbehaved when "--batch" is in
150 use and did not ask for certain object traits.
151 (merge ee02ac6164 zh/cat-file-batch-fix later to maint).
152
153 * Some code and doc clarification around "git push".
154
155 * The "union" conflict resultion variant misbehaved when used with
156 binary merge driver.
157 (merge 382b601acd jk/union-merge-binary later to maint).
158
159 * Prevent "git p4" from failing to submit changes to binary file.
160 (merge 54662d5958 dc/p4-binary-submit-fix later to maint).
161
162 * "git grep --and -e foo" ought to have been diagnosed as an error
163 but instead segfaulted, which has been corrected.
164 (merge fe7fe62d8d rs/grep-parser-fix later to maint).
165
166 * The merge code had funny interactions between content based rename
167 detection and directory rename detection.
168 (merge 3585d0ea23 en/merge-dir-rename-corner-case-fix later to maint).
169
170 * When rebuilding the multi-pack index file reusing an existing one,
171 we used to blindly trust the existing file and ended up carrying
172 corrupted data into the updated file, which has been corrected.
173 (merge f89ecf7988 tb/midx-use-checksum later to maint).
174
175 * Update the location of system-side configuration file on Windows.
176 (merge e355307692 js/gfw-system-config-loc-fix later to maint).
177
178 * Code recently added to support common ancestry negotiation during
179 "git push" did not sanity check its arguments carefully enough.
180 (merge eff40457a4 ab/fetch-negotiate-segv-fix later to maint).
181
182 * Update the documentation not to assume users are of certain gender
183 and adds to guidelines to do so.
184 (merge 46a237f42f ds/gender-neutral-doc later to maint).
185
186 * Other code cleanup, docfix, build fix, etc.
187 (merge bfe35a6165 ah/doc-describe later to maint).
188 (merge f302c1e4aa jc/clarify-revision-range later to maint).
189 (merge 3127ff90ea tl/fix-packfile-uri-doc later to maint).
190 (merge a84216c684 jk/doc-color-pager later to maint).
191 (merge 4e0a64a713 ab/trace2-squelch-gcc-warning later to maint).
192 (merge 225f7fa847 ps/rev-list-object-type-filter later to maint).
193 (merge 5317dfeaed dd/honor-users-tar-in-tests later to maint).
194 (merge ace6d8e3d6 tk/partial-clone-repack-doc later to maint).
195 (merge 7ba68e0cf1 js/trace2-discard-event-docfix later to maint).
196 (merge 8603c419d3 fc/doc-default-to-upstream-config later to maint).
197 (merge 1d72b604ef jk/revision-squelch-gcc-warning later to maint).
198 (merge abcb66c614 ar/typofix later to maint).
199 (merge 9853830787 ah/graph-typofix later to maint).
200 (merge aac578492d ab/config-hooks-path-testfix later to maint).
201 (merge 98c7656a18 ar/more-typofix later to maint).
202 (merge 6fb9195f6c jk/doc-max-pack-size later to maint).
203 (merge 4184cbd635 ar/mailinfo-memcmp-to-skip-prefix later to maint).
204 (merge 91d2347033 ar/doc-libera-chat-in-my-first-contrib later to maint).
205 (merge 338abb0f04 ab/cmd-foo-should-return later to maint).
206 (merge 546096a5cb ab/xdiff-bug-cleanup later to maint).
207 (merge b7b793d1e7 ab/progress-cleanup later to maint).
208 (merge d94f9b8e90 ba/object-info later to maint).
209 (merge 52ff891c03 ar/test-code-cleanup later to maint).
210 (merge a0538e5c8b dd/document-log-decorate-default later to maint).
211 (merge ce24797d38 mr/cmake later to maint).
212 (merge 9eb542f2ee ab/pre-auto-gc-hook-test later to maint).
213 (merge 9fffc38583 bk/doc-commit-typofix later to maint).
214 (merge 1cf823d8f0 ks/submodule-cleanup later to maint).
215 (merge ebbf5d2b70 js/config-mak-windows-pcre-fix later to maint).
216 (merge 617480d75b hn/refs-iterator-peel-returns-boolean later to maint).
217 (merge 6a24cc71ed ar/submodule-helper-include-cleanup later to maint).
218 (merge 5632e838f8 rs/khash-alloc-cleanup later to maint).
219 (merge b1d87fbaf1 jk/typofix later to maint).
220 (merge e04170697a ab/gitignore-discovery-doc later to maint).