]> git.ipfire.org Git - thirdparty/git.git/blob - Documentation/RelNotes/2.36.0.txt
Merge branch 'ab/ambiguous-object-name'
[thirdparty/git.git] / Documentation / RelNotes / 2.36.0.txt
1 Git 2.36 Release Notes
2 ======================
3
4 Updates since Git 2.35
5 ----------------------
6
7 Backward compatibility warts
8
9 * "git name-rev --stdin" has been deprecated and issues a warning
10 when used; use "git name-rev --annotate-stdin" instead.
11
12
13 Note to those who build from the source
14
15 *
16
17
18 UI, Workflows & Features
19
20 * Assorted updates to "git cat-file", especially "-h".
21
22 * The command line completion (in contrib/) learns to complete
23 arguments to give to "git sparse-checkout" command.
24
25 * "git log --remerge-diff" shows the difference from mechanical merge
26 result and the result that is actually recorded in a merge commit.
27
28 * "git log" and friends learned an option --exclude-first-parent-only
29 to propagate UNINTERESTING bit down only along the first-parent
30 chain, just like --first-parent option shows commits that lack the
31 UNINTERESTING bit only along the first-parent chain.
32
33 * The command line completion script (in contrib/) learned to
34 complete all Git subcommands, including the ones that are normally
35 hidden, when GIT_COMPLETION_SHOW_ALL_COMMANDS is used.
36
37 * "git branch" learned the "--recurse-submodules" option.
38
39
40 Performance, Internal Implementation, Development Support etc.
41
42 * "git apply" (ab)used the util pointer of the string-list to keep
43 track of how each symbolic link needs to be handled, which has been
44 simplified by using strset.
45
46 * Fix a hand-rolled alloca() imitation that may have violated
47 alignment requirement of data being sorted in compatibility
48 implementation of qsort_s() and stable qsort().
49
50 * Use the parse-options API in "git reflog" command.
51
52 * The conditional inclusion mechanism of configuration files using
53 "[includeIf <condition>]" learns to base its decision on the
54 URL of the remote repository the repository interacts with.
55 (merge 399b198489 jt/conditional-config-on-remote-url later to maint).
56
57 * "git name-rev --stdin" does not behave like usual "--stdin" at
58 all. Start the process of renaming it to "--annotate-stdin".
59 (merge a2585719b3 jc/name-rev-stdin later to maint).
60
61 * "git update-index", "git checkout-index", and "git clean" are
62 taught to work better with the sparse checkout feature.
63
64 * Use an internal call to reset_head() helper function instead of
65 spawning "git checkout" in "rebase", and update code paths that are
66 involved in the change.
67
68
69 Fixes since v2.35
70 -----------------
71
72 * "rebase" and "stash" in secondary worktrees are broken in
73 Git 2.35.0, which has been corrected.
74
75 * "git pull --rebase" ignored the rebase.autostash configuration
76 variable when the remote history is a descendant of our history,
77 which has been corrected.
78 (merge 3013d98d7a pb/pull-rebase-autostash-fix later to maint).
79
80 * "git update-index --refresh" has been taught to deal better with
81 racy timestamps (just like "git status" already does).
82 (merge 2ede073fd2 ms/update-index-racy later to maint).
83
84 * Avoid tests that are run under GIT_TRACE2 set from failing
85 unnecessarily.
86 (merge 944d808e42 js/test-unset-trace2-parents later to maint).
87
88 * The merge-ort misbehaved when merge.renameLimit configuration is
89 set too low and failed to find all renames.
90 (merge 9ae39fef7f en/merge-ort-restart-optim-fix later to maint).
91
92 * We explain that revs come first before the pathspec among command
93 line arguments, but did not spell out that dashed options come
94 before other args, which has been corrected.
95 (merge c11f95010c tl/doc-cli-options-first later to maint).
96
97 * "git add -p" rewritten in C regressed hunk splitting in some cases,
98 which has been corrected.
99 (merge 7008ddc645 pw/add-p-hunk-split-fix later to maint).
100
101 * "git fetch --negotiate-only" is an internal command used by "git
102 push" to figure out which part of our history is missing from the
103 other side. It should never recurse into submodules even when
104 fetch.recursesubmodules configuration variable is set, nor it
105 should trigger "gc". The code has been tightened up to ensure it
106 only does common ancestry discovery and nothing else.
107 (merge de4eaae63a gc/fetch-negotiate-only-early-return later to maint).
108
109 * The code path that verifies signatures made with ssh were made to
110 work better on a system with CRLF line endings.
111 (merge caeef01ea7 fs/ssh-signing-crlf later to maint).
112
113 * "git sparse-checkout init" failed to write into $GIT_DIR/info
114 directory when the repository was created without one, which has
115 been corrected to auto-create it.
116 (merge 7f44842ac1 jt/sparse-checkout-leading-dir-fix later to maint).
117
118 * Cloning from a repository that does not yet have any branches or
119 tags but has other refs resulted in a "remote transport reported
120 error", which has been corrected.
121 (merge dccea605b6 jt/clone-not-quite-empty later to maint).
122
123 * Mark in various places in the code that the sparse index and the
124 split index features are mutually incompatible.
125 (merge 451b66c533 js/sparse-vs-split-index later to maint).
126
127 * Update the logic to compute alignment requirement for our mem-pool.
128 (merge e38bcc66d8 jc/mem-pool-alignment later to maint).
129
130 * Pick a better random number generator and use it when we prepare
131 temporary filenames.
132 (merge 47efda967c bc/csprng-mktemps later to maint).
133
134 * Update the contributor-facing documents on proposed log messages.
135 (merge cdba0295b0 jc/doc-log-messages later to maint).
136
137 * When "git fetch --prune" failed to prune the refs it wanted to
138 prune, the command issued error messages but exited with exit
139 status 0, which has been corrected.
140 (merge c9e04d905e tg/fetch-prune-exit-code-fix later to maint).
141
142 * Problems identified by Coverity in the reftable code have been
143 corrected.
144 (merge 01033de49f hn/reftable-coverity-fixes later to maint).
145
146 * A bug that made multi-pack bitmap and the object order out-of-sync,
147 making the .midx data corrupt, has been fixed.
148 (merge f8b60cf99b tb/midx-bitmap-corruption-fix later to maint).
149
150 * The build procedure has been taught to notice older version of zlib
151 and enable our replacement uncompress2() automatically.
152 (merge 07564773c2 ab/auto-detect-zlib-compress2 later to maint).
153
154 * Interaction between fetch.negotiationAlgorithm and
155 feature.experimental configuration variables has been corrected.
156 (merge 714edc620c en/fetch-negotiation-default-fix later to maint).
157
158 * "git diff --diff-filter=aR" is now parsed correctly.
159 (merge 75408ca949 js/diff-filter-negation-fix later to maint).
160
161 * When "git subtree" wants to create a merge, it used "git merge" and
162 let it be affected by end-user's "merge.ff" configuration, which
163 has been corrected.
164 (merge 9158a3564a tk/subtree-merge-not-ff-only later to maint).
165
166 * Unlike "git apply", "git patch-id" did not handle patches with
167 hunks that has only 1 line in either preimage or postimage, which
168 has been corrected.
169 (merge 757e75c81e jz/patch-id-hunk-header-parsing-fix later to maint).
170
171 * "receive-pack" checks if it will do any ref updates (various
172 conditions could reject a push) before received objects are taken
173 out of the temporary directory used for quarantine purposes, so
174 that a push that is known-to-fail will not leave crufts that a
175 future "gc" needs to clean up.
176 (merge 5407764069 cb/clear-quarantine-early-on-all-ref-update-errors later to maint).
177
178 * Because a deletion of ref would need to remove it from both the
179 loose ref store and the packed ref store, a delete-ref operation
180 that logically removes one ref may end up invoking ref-transaction
181 hook twice, which has been corrected.
182 (merge 2ed1b64ebd ps/avoid-unnecessary-hook-invocation-with-packed-refs later to maint).
183
184 * When there is no object to write .bitmap file for, "git
185 multi-pack-index" triggered an error, instead of just skipping,
186 which has been corrected.
187 (merge eb57277ba3 tb/midx-no-bitmap-for-no-objects later to maint).
188
189 * "git cmd -h" outside a repository should error out cleanly for many
190 commands, but instead it hit a BUG(), which has been corrected.
191 (merge 87ad07d735 js/short-help-outside-repo-fix later to maint).
192
193 * "working tree" and "per-worktree ref" were in glossary, but
194 "worktree" itself wasn't, which has been corrected.
195 (merge 2df5387ed0 jc/glossary-worktree later to maint).
196
197 * L10n support for a few error messages.
198 (merge 3d3c23b3a7 bs/forbid-i18n-of-protocol-token-in-fetch-pack later to maint).
199
200 * Test modernization.
201 (merge d4fe066e4b sy/t0001-use-path-is-helper later to maint).
202
203 * "git log --graph --graph" used to leak a graph structure, and there
204 was no way to countermand "--graph" that appear earlier on the
205 command line. A "--no-graph" option has been added and resource
206 leakage has been plugged.
207
208 * Other code cleanup, docfix, build fix, etc.
209 (merge cfc5cf428b jc/find-header later to maint).
210 (merge 40e7cfdd46 jh/p4-fix-use-of-process-error-exception later to maint).
211 (merge 727e6ea350 jh/p4-spawning-external-commands-cleanup later to maint).
212 (merge 0a6adc26e2 rs/grep-expr-cleanup later to maint).
213 (merge 4ed7dfa713 po/readme-mention-contributor-hints later to maint).
214 (merge 6046f7a91c en/plug-leaks-in-merge later to maint).
215 (merge 8c591dbfce bc/clarify-eol-attr later to maint).
216 (merge 518e15db74 rs/parse-options-lithelp-help later to maint).
217 (merge cbac0076ef gh/doc-typos later to maint).
218 (merge ce14de03db ab/no-errno-from-resolve-ref-unsafe later to maint).
219 (merge 2826ffad8c rc/negotiate-only-typofix later to maint).
220 (merge 0f03f04c5c en/sparse-checkout-leakfix later to maint).
221 (merge 74f3390dde sy/diff-usage-typofix later to maint).
222 (merge 45d0212a71 ll/doc-mktree-typofix later to maint).
223 (merge e9b272e4c1 js/no-more-legacy-stash later to maint).
224 (merge 6798b08e84 ab/do-not-hide-failures-in-git-dot-pm later to maint).
225 (merge 9325285df4 po/doc-check-ignore-markup-fix later to maint).
226 (merge cd26cd6c7c sy/modernize-t-lib-read-tree-m-3way later to maint).
227 (merge d17294a05e ab/hash-object-leakfix later to maint).
228 (merge b8403129d3 jd/t0015-modernize later to maint).
229 (merge 332acc248d ds/mailmap later to maint).