What's cooking (2022/01 #02)

Junio C Hamano committed Jan 5, 2022 at 14:55 UTC e09a8b5320fdf7f57c11d82be40635b64f318e20
1 file changed +339 -366
whats-cooking.txt
+339 -366
@@ -1,12 +1,22 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jan 2022, #01; Mon, 3)
4 -X-master-at: dcc0cd074f0c639a0df20461a301af6d45bd582e
5 -X-next-at: 194610f4cf2df839ebfd040c5da187c8c0162620
3 +Subject: What's cooking in git.git (Jan 2022, #02; Wed, 5)
4 +X-master-at: e83ba647f7c61cf945690d6a0bd8c172a6498dc8
5 +X-next-at: 24525b3c66f3a5878e67d92b3e0fd082dc1d905e
6
7 -What's cooking in git.git (Jan 2022, #01; Mon, 3)
7 +What's cooking in git.git (Jan 2022, #02; Wed, 5)
8 --------------------------------------------------
9
10 +It's a bit early to publish another issue of this report, but a
11 +bunch of topics have graduated to 'master' and a handful of topics
12 +have joined 'next', so here is the second installment of the month.
13 +
14 +About 25 topics are cooking in 'next', all of which hopefully can be
15 +in the upcoming release. Those not yet in may need bumping, but it
16 +was expected to be a slow cycle due to end-of-year holidays, so it
17 +is also OK to give them enough time to get polished into good enough
18 +shape, rather than merging them prematurely.
19 +
20 Here are the topics that have been cooking in my tree. Commits
21 prefixed with '+' are in 'next' (being in 'next' is a sign that a
22 topic is stable enough to be used and are candidate to be in a
@@ -18,11 +28,6 @@ useful"). Do not read too much into a topic being in (or not in)
28 'seen'. The ones marked with '.' do not appear in any of the
29 integration branches, but I am still holding onto them.
30
21 -Hopefully this will be the last issue of "What's cooking" report of
22 -this year. Please expect my tree will be slow moving this week and
23 -whereever you are on the globe, relax and enjoy the remainder of
24 -this year.
25 -
31 Copies of the source code to Git live in many repositories, and the
32 following is a list of the ones I push into or their mirrors. Some
33 repositories have only a subset of branches.
@@ -54,103 +59,252 @@ Release tarballs are available at:
59 --------------------------------------------------
60 [Graduated to 'master']
61
57 -* en/sparse-checkout-set (2021-12-23) 11 commits
58 - (merged to 'next' on 2021-12-25 at 510f9eba9a)
59 - + sparse-checkout: remove stray trailing space
60 - (merged to 'next' on 2021-12-21 at 36a98aed11)
61 - + clone: avoid using deprecated `sparse-checkout init`
62 - + Documentation: clarify/correct a few sparsity related statements
63 - + git-sparse-checkout.txt: update to document init/set/reapply changes
64 - + sparse-checkout: enable reapply to take --[no-]{cone,sparse-index}
65 - + sparse-checkout: enable `set` to initialize sparse-checkout mode
66 - + sparse-checkout: split out code for tweaking settings config
67 - + sparse-checkout: disallow --no-stdin as an argument to set
68 - + sparse-checkout: add sanity-checks on initial sparsity state
69 - + sparse-checkout: break apart functions for sparse_checkout_(set|add)
70 - + sparse-checkout: pass use_stdin as a parameter instead of as a global
71 -
72 - The "init" and "set" subcommands in "git sparse-checkout" have been
73 - unified for a better user experience and performance.
74 - source: <pull.1151.v4.git.git.1639454952.gitgitgadget@gmail.com>
75 -
76 -
77 -* es/test-chain-lint (2021-12-13) 19 commits
78 - (merged to 'next' on 2021-12-21 at d6f56f3248)
79 - + t6000-t9999: detect and signal failure within loop
80 - + t5000-t5999: detect and signal failure within loop
81 - + t4000-t4999: detect and signal failure within loop
82 - + t0000-t3999: detect and signal failure within loop
83 - + tests: simplify by dropping unnecessary `for` loops
84 - + tests: apply modern idiom for exiting loop upon failure
85 - + tests: apply modern idiom for signaling test failure
86 - + tests: fix broken &&-chains in `{...}` groups
87 - + tests: fix broken &&-chains in `$(...)` command substitutions
88 - + tests: fix broken &&-chains in compound statements
89 - + tests: use test_write_lines() to generate line-oriented output
90 - + tests: simplify construction of large blocks of text
91 - + t9107: use shell parameter expansion to avoid breaking &&-chain
92 - + t6300: make `%(raw:size) --shell` test more robust
93 - + t5516: drop unnecessary subshell and command invocation
94 - + t4202: clarify intent by creating expected content less cleverly
95 - + t1020: avoid aborting entire test script when one test fails
96 - + t1010: fix unnoticed failure on Windows
97 - + t/lib-pager: use sane_unset() to avoid breaking &&-chain
98 -
99 - Broken &&-chains in the test scripts have been corrected.
100 - source: <20211209051115.52629-1-sunshine@sunshineco.com>
101 -
102 -
103 -* jc/unleak-log (2021-12-16) 1 commit
104 - (merged to 'next' on 2021-12-21 at c39506ec86)
105 - + format-patch: mark rev_info with UNLEAK
106 -
107 - "git format-patch" uses a single rev_info instance and then exits.
108 - Mark the structure with UNLEAK() macro to squelch leak sanitizer.
109 - source: <xmqqee6dz5s9.fsf@gitster.g>
110 -
111 -
112 -* ns/tmp-objdir (2021-12-08) 2 commits
113 - (merged to 'next' on 2021-12-21 at d316ff36fc)
114 - + tmp-objdir: disable ref updates when replacing the primary odb
115 - + tmp-objdir: new API for creating temporary writable databases
116 - (this branch is used by en/remerge-diff.)
117 -
118 - New interface into the tmp-objdir API to help in-core use of the
119 - quarantine feature.
120 - source: <pull.1091.v3.git.1638828305.gitgitgadget@gmail.com>
62 +* ds/repack-fixlets (2021-12-20) 2 commits
63 + (merged to 'next' on 2021-12-27 at 8f8474ae84)
64 + + repack: make '--quiet' disable progress
65 + + repack: respect kept objects with '--write-midx -b'
66 +
67 + Two fixes around "git repack".
68 + source: <pull.1098.v2.git.1640011691.gitgitgadget@gmail.com>
69 +
70 +
71 +* en/keep-cwd (2021-12-09) 11 commits
72 + (merged to 'next' on 2021-12-27 at 7cd8f7fdc0)
73 + + t2501: simplify the tests since we can now assume desired behavior
74 + + dir: new flag to remove_dir_recurse() to spare the original_cwd
75 + + dir: avoid incidentally removing the original_cwd in remove_path()
76 + + stash: do not attempt to remove startup_info->original_cwd
77 + + rebase: do not attempt to remove startup_info->original_cwd
78 + + clean: do not attempt to remove startup_info->original_cwd
79 + + symlinks: do not include startup_info->original_cwd in dir removal
80 + + unpack-trees: add special cwd handling
81 + + unpack-trees: refuse to remove startup_info->original_cwd
82 + + setup: introduce startup_info->original_cwd
83 + + t2501: add various tests for removing the current working directory
84 +
85 + Many git commands that deal with working tree files try to remove a
86 + directory that becomes empty (i.e. "git switch" from a branch that
87 + has the directory to another branch that does not would attempt
88 + remove all files in the directory and the directory itself). This
89 + drops users into an unfamiliar situation if the command was run in
90 + a subdirectory that becomes subject to removal due to the command.
91 + The commands have been taught to keep an empty directory if it is
92 + the directory they were started in to avoid surprising users.
93 + source: <pull.1140.v6.git.git.1639026515.gitgitgadget@gmail.com>
94 +
95 +
96 +* gh/gpg-doc-markup-fix (2021-12-17) 1 commit
97 + (merged to 'next' on 2021-12-27 at 7988d71a27)
98 + + docs: add missing colon to Documentation/config/gpg.txt
99 +
100 + Doc markup fix.
101 + source: <20211217161718.15767-1-greg@hurrell.net>
102 +
103 +
104 +* jc/flex-array-definition (2021-12-08) 1 commit
105 + (merged to 'next' on 2021-12-27 at 9db6a814b7)
106 + + flex-array: simplify compiler-specific workaround
107 +
108 + The conditions to choose different definitions of the FLEX_ARRAY
109 + macro for vendor compilers has been simplified to make it easier to
110 + maintain.
111 + source: <xmqqee6mv9no.fsf@gitster.g>
112 +
113 +
114 +* jc/merge-detached-head-name (2021-12-20) 1 commit
115 + (merged to 'next' on 2021-12-27 at 01f9fe17b9)
116 + + merge: allow to pretend a merge is made into a different branch
117 +
118 + The default merge message prepared by "git merge" records the name
119 + of the current branch; the name can be overridden with a new option
120 + to allow users to pretend a merge is made on a different branch.
121 + source: <xmqqee66ubuw.fsf_-_@gitster.g>
122 +
123 +
124 +* jc/t4204-do-not-write-git-on-upstream-of-pipe (2021-12-16) 1 commit
125 + (merged to 'next' on 2021-12-27 at dc2c5db807)
126 + + t4204 is not sanitizer clean at all
127 +
128 + Test fixes.
129 + source: <xmqqtuf86t7z.fsf_-_@gitster.g>
130 +
131 +
132 +* jh/p4-rcs-expansion-in-bytestring (2021-12-16) 5 commits
133 + (merged to 'next' on 2021-12-27 at 650cb248ea)
134 + + git-p4: resolve RCS keywords in bytes not utf-8
135 + + git-p4: open temporary patch file for write only
136 + + git-p4: add raw option to read_pipelines
137 + + git-p4: pre-compile RCS keyword regexes
138 + + git-p4: use with statements to close files after use in patchRCSKeywords
139 +
140 + The RCS keyword substitution in "git p4" used to be done assuming
141 + that the contents are UTF-8 text, which can trigger decoding
142 + errors. We now treat the contents as a bytestring for robustness
143 + and correctness.
144 + source: <20211216134619.2048348-1-jholdsworth@nvidia.com>
145 +
146 +
147 +* jk/ssh-signing-doc-markup-fix (2021-12-15) 1 commit
148 + (merged to 'next' on 2021-12-27 at 2188dc2023)
149 + + doc/config: mark ssh allowedSigners example as literal
150 +
151 + Docfix.
152 + source: <YboWlOG3vZD/7Osx@coredump.intra.peff.net>
153 +
154 +
155 +* jv/use-larger-buffer-in-upload-pack (2021-12-15) 1 commit
156 + (merged to 'next' on 2021-12-27 at 3a1afc1ef8)
157 + + upload-pack.c: increase output buffer size
158 +
159 + "git upload-pack" (the other side of "git fetch") used a 8kB buffer
160 + but most of its payload came on 64kB "packets". The buffer size
161 + has been enlarged so that such a packet fits.
162 + source: <20211214194626.33814-1-jacob@gitlab.com>
163 +
164 +
165 +* km/help-prompt-fix (2021-12-16) 1 commit
166 + (merged to 'next' on 2021-12-27 at a16d8fa62a)
167 + + help: make auto-correction prompt more consistent
168 +
169 + Among some code paths that ask an yes/no question, only one place
170 + gave a prompt that looked different from the others, which has been
171 + updated to match what the others create.
172 + source: <xmqqy24k8c0j.fsf@gitster.g>
173 +
174 +
175 +* pw/diff-color-moved-fix (2021-12-09) 15 commits
176 + (merged to 'next' on 2021-12-27 at 443dd9f97f)
177 + + diff --color-moved: intern strings
178 + + diff: use designated initializers for emitted_diff_symbol
179 + + diff --color-moved-ws=allow-indentation-change: improve hash lookups
180 + + diff --color-moved: stop clearing potential moved blocks
181 + + diff --color-moved: shrink potential moved blocks as we go
182 + + diff --color-moved: unify moved block growth functions
183 + + diff --color-moved: call comparison function directly
184 + + diff --color-moved-ws=allow-indentation-change: simplify and optimize
185 + + diff: simplify allow-indentation-change delta calculation
186 + + diff --color-moved: avoid false short line matches and bad zebra coloring
187 + + diff --color-moved=zebra: fix alternate coloring
188 + + diff --color-moved: rewind when discarding pmb
189 + + diff --color-moved: factor out function
190 + + diff --color-moved: clear all flags on blocks that are too short
191 + + diff --color-moved: add perf tests
192 +
193 + Correctness and performance update to "diff --color-moved" feature.
194 + source: <pull.981.v5.git.1639045809.gitgitgadget@gmail.com>
195 +
196 +
197 +* rs/daemon-plug-leak (2021-12-20) 1 commit
198 + (merged to 'next' on 2021-12-27 at 55b058a8bb)
199 + + daemon: plug memory leak on overlong path
200 +
201 + Plug a memory leak.
202 + source: <5b151dc3-d4c7-29d3-71ed-a79033693d5d@web.de>
203 +
204 +
205 +* rs/log-invert-grep-with-headers (2021-12-17) 1 commit
206 + (merged to 'next' on 2021-12-27 at 861648fe8c)
207 + + log: let --invert-grep only invert --grep
208 +
209 + "git log --invert-grep --author=<name>" used to exclude commits
210 + written by the given author, but now "--invert-grep" only affects
211 + the matches made by the "--grep=<pattern>" option.
212 + source: <xmqqee6cbalb.fsf@gitster.g>
213 +
214 +
215 +* rs/pcre2-utf (2021-12-20) 2 commits
216 + (merged to 'next' on 2021-12-27 at 5dc740c331)
217 + + grep/pcre2: factor out literal variable
218 + + grep/pcre2: use PCRE2_UTF even with ASCII patterns
219 +
220 + "git grep --perl-regexp" failed to match UTF-8 characters with
221 + wildcard when the pattern consists only of ASCII letters, which has
222 + been corrected.
223 + source: <5fa6962e-3c1c-6dbc-f6d7-589151a9baec@web.de>
224 +
225 +
226 +* rs/t4202-invert-grep-test-fix (2021-12-17) 1 commit
227 + (merged to 'next' on 2021-12-27 at b09cee1626)
228 + + t4202: fix patternType setting in --invert-grep test
229 +
230 + Test fix.
231 + source: <79dcebc0-e569-cc8a-4702-c572b062ed6d@web.de>
232 +
233 +
234 +* xw/am-empty (2021-12-15) 3 commits
235 + (merged to 'next' on 2021-12-27 at 562e1552f6)
236 + + am: support --allow-empty to record specific empty patches
237 + + am: support --empty=<option> to handle empty patches
238 + + doc: git-format-patch: describe the option --always
239 +
240 + "git am" learns "--empty=(stop|drop|keep)" option to tweak what is
241 + done to a piece of e-mail without a patch in it.
242 + source: <pull.1076.v19.git.1639034755.gitgitgadget@gmail.com>
243
244 --------------------------------------------------
245 [New Topics]
246
125 -* en/merge-ort-renorm-with-rename-delete-conflict-fix (2021-12-30) 1 commit
126 - - merge-ort: fix bug with renormalization and rename/delete conflicts
247 +* bc/csprng-mktemps (2022-01-04) 2 commits
248 + - wrapper: use a CSPRNG to generate random file names
249 + - wrapper: add a helper to generate numbers from a CSPRNG
250
128 - A corner case bug in the ort merge strategy has been corrected.
251 + Pick a better random number generator and use it when we prepare
252 + temporary filenames.
253
130 - Will merge to 'next'.
131 - source: <pull.1174.git.git.1640650846612.gitgitgadget@gmail.com>
254 + Expecting a reroll.
255 + cf. <YdTQodIhZ9273nJE@camp.crustytoothpaste.net>
256 + source: <20220104015555.3387101-1-sandals@crustytoothpaste.net>
257
258
134 -* jc/find-header (2022-01-03) 1 commit
135 - - receive-pack.c: consolidate find header logic
259 +* jc/reflog-parse-options (2022-01-05) 2 commits
260 + - builtin/reflog.c: use parse-options api for expire, delete subcommands
261 + - Merge branch 'ab/reflog-prep' into jc/reflog-parse-options
262 + (this branch uses ab/reflog-prep.)
263
137 - Code clean-up.
264 + Use the parse-options API in "git reflog" command.
265 + source: <pull.1175.v3.git.git.1641318061821.gitgitgadget@gmail.com>
266
139 - Will merge to 'next'?
140 - source: <pull.1125.v2.git.git.1640758765723.gitgitgadget@gmail.com>
267
268 +* vd/sparse-clean-etc (2022-01-04) 9 commits
269 + - update-index: reduce scope of index expansion in do_reupdate
270 + - update-index: integrate with sparse index
271 + - update-index: add tests for sparse-checkout compatibility
272 + - checkout-index: integrate with sparse index
273 + - checkout-index: add --ignore-skip-worktree-bits option
274 + - checkout-index: expand sparse checkout compatibility tests
275 + - clean: integrate with sparse index
276 + - reset: reorder wildcard pathspec conditions
277 + - reset: fix validation in sparse index test
278
143 -* jc/name-rev-stdin (2022-01-03) 4 commits
144 - - fixup! name-rev.c: use strbuf_getline instead of limited size buffer
145 - - fixup! name-rev: deprecate --stdin in favor of --annotate-text
146 - - name-rev.c: use strbuf_getline instead of limited size buffer
147 - - name-rev: deprecate --stdin in favor of --annotate-text
279 + "git update-index", "git checkout-index", and "git clean" are
280 + taught to work better with the sparse checkout feature.
281 + source: <pull.1109.git.1641317820.gitgitgadget@gmail.com>
282
149 - "git name-rev --stdin" does not behave like usual "--stdin" at
150 - all. Start the process of renaming it to "--annotate-stdin".
283
152 - Expecting a reroll.
153 - source: <pull.1171.v3.git.git.1641221261.gitgitgadget@gmail.com>
284 +* en/stash-df-fix (2022-01-04) 1 commit
285 + - stash: do not return before restoring untracked files
286 +
287 + "git stash apply" forgot to attempt restoring untracked files when
288 + it failed to restore changes to tracked ones.
289 +
290 + Will merge to 'next'.
291 + source: <pull.1180.git.git.1641337498996.gitgitgadget@gmail.com>
292 +
293 +
294 +* ms/t-readme-typofix (2022-01-04) 1 commit
295 + - t/README: fix typo
296 +
297 + Typofix.
298 +
299 + Will merge to 'next'.
300 + source: <pull.1110.git.1641338224631.gitgitgadget@gmail.com>
301 +
302 +
303 +* ms/update-index-racy (2022-01-05) 2 commits
304 + - update-index: refresh should rewrite index in case of racy timestamps
305 + - t7508: add tests capturing racy timestamp handling
306 +
307 + source: <pull.1105.v2.git.1641388523.gitgitgadget@gmail.com>
308
309 --------------------------------------------------
310 [Stalled]
@@ -205,6 +359,36 @@ Release tarballs are available at:
359 --------------------------------------------------
360 [Cooking]
361
362 +* en/merge-ort-renorm-with-rename-delete-conflict-fix (2021-12-30) 1 commit
363 + (merged to 'next' on 2022-01-05 at bb81dd432d)
364 + + merge-ort: fix bug with renormalization and rename/delete conflicts
365 +
366 + A corner case bug in the ort merge strategy has been corrected.
367 +
368 + Will merge to 'master'.
369 + source: <pull.1174.git.git.1640650846612.gitgitgadget@gmail.com>
370 +
371 +
372 +* jc/find-header (2022-01-03) 1 commit
373 + - receive-pack.c: consolidate find header logic
374 +
375 + Code clean-up.
376 +
377 + Will merge to 'next'?
378 + source: <pull.1125.v2.git.git.1640758765723.gitgitgadget@gmail.com>
379 +
380 +
381 +* jc/name-rev-stdin (2022-01-05) 2 commits
382 + - name-rev.c: use strbuf_getline instead of limited size buffer
383 + - name-rev: deprecate --stdin in favor of --annotate-stdin
384 +
385 + "git name-rev --stdin" does not behave like usual "--stdin" at
386 + all. Start the process of renaming it to "--annotate-stdin".
387 +
388 + Not quite ready yet.
389 + source: <pull.1171.v5.git.git.1641356439.gitgitgadget@gmail.com>
390 +
391 +
392 * ab/makefile-hook-list-dependency-fix (2021-12-25) 1 commit
393 (merged to 'next' on 2022-01-03 at 8c8ca0cbce)
394 + Makefile: correct the dependency graph of hook-list.h
@@ -245,27 +429,15 @@ Release tarballs are available at:
429 source: <patch-v3-1.1-6b33b104c84-20211216T125317Z-avarab@gmail.com>
430
431
248 -* km/help-prompt-fix (2021-12-16) 1 commit
249 - (merged to 'next' on 2021-12-27 at a16d8fa62a)
250 - + help: make auto-correction prompt more consistent
251 -
252 - Among some code paths that ask an yes/no question, only one place
253 - gave a prompt that looked different from the others, which has been
254 - updated to match what the others create.
255 -
256 - Will merge to 'master'.
257 - source: <xmqqy24k8c0j.fsf@gitster.g>
258 -
259 -
260 -* lh/use-gnu-color-in-grep (2021-12-16) 1 commit
261 - - grep: align default colors with GNU grep ones
432 +* lh/use-gnu-color-in-grep (2022-01-05) 1 commit
433 + (merged to 'next' on 2022-01-05 at a0e2068cb7)
434 + + grep: align default colors with GNU grep ones
435
436 The color palette used by "git grep" has been updated to match that
437 of GNU grep.
438
266 - On hold.
267 - cf. <xmqqh7b88b3o.fsf@gitster.g>
268 - source: <20211216115622.85506-1-lenaic@lhuard.fr>
439 + Will merge to 'master'.
440 + source: <20220105081835.4949-1-lenaic@lhuard.fr>
441
442
443 * ws/fast-export-with-revision-options (2021-12-21) 1 commit
@@ -281,49 +453,6 @@ Release tarballs are available at:
453 source: <pull.1084.v2.git.1639037637231.gitgitgadget@gmail.com>
454
455
284 -* jc/t4204-do-not-write-git-on-upstream-of-pipe (2021-12-16) 1 commit
285 - (merged to 'next' on 2021-12-27 at dc2c5db807)
286 - + t4204 is not sanitizer clean at all
287 -
288 - Test fixes.
289 -
290 - Will merge to 'master'.
291 - source: <xmqqtuf86t7z.fsf_-_@gitster.g>
292 -
293 -
294 -* ds/repack-fixlets (2021-12-20) 2 commits
295 - (merged to 'next' on 2021-12-27 at 8f8474ae84)
296 - + repack: make '--quiet' disable progress
297 - + repack: respect kept objects with '--write-midx -b'
298 -
299 - Two fixes around "git repack".
300 -
301 - Will merge to 'master'.
302 - source: <pull.1098.v2.git.1640011691.gitgitgadget@gmail.com>
303 -
304 -
305 -* gh/gpg-doc-markup-fix (2021-12-17) 1 commit
306 - (merged to 'next' on 2021-12-27 at 7988d71a27)
307 - + docs: add missing colon to Documentation/config/gpg.txt
308 -
309 - Doc markup fix.
310 -
311 - Will merge to 'master'.
312 - source: <20211217161718.15767-1-greg@hurrell.net>
313 -
314 -
315 -* jc/merge-detached-head-name (2021-12-20) 1 commit
316 - (merged to 'next' on 2021-12-27 at 01f9fe17b9)
317 - + merge: allow to pretend a merge is made into a different branch
318 -
319 - The default merge message prepared by "git merge" records the name
320 - of the current branch; the name can be overridden with a new option
321 - to allow users to pretend a merge is made on a different branch.
322 -
323 - Will merge to 'master'.
324 - source: <xmqqee66ubuw.fsf_-_@gitster.g>
325 -
326 -
456 * jh/p4-human-unit-numbers (2021-12-20) 2 commits
457 (merged to 'next' on 2022-01-03 at c385766ff4)
458 + git-p4: show progress as an integer
@@ -359,51 +488,6 @@ Release tarballs are available at:
488 source: <pull.1100.git.1640010777.gitgitgadget@gmail.com>
489
490
362 -* rs/daemon-plug-leak (2021-12-20) 1 commit
363 - (merged to 'next' on 2021-12-27 at 55b058a8bb)
364 - + daemon: plug memory leak on overlong path
365 -
366 - Plug a memory leak.
367 -
368 - Will merge to 'master'.
369 - source: <5b151dc3-d4c7-29d3-71ed-a79033693d5d@web.de>
370 -
371 -
372 -* rs/log-invert-grep-with-headers (2021-12-17) 1 commit
373 - (merged to 'next' on 2021-12-27 at 861648fe8c)
374 - + log: let --invert-grep only invert --grep
375 -
376 - "git log --invert-grep --author=<name>" used to exclude commits
377 - written by the given author, but now "--invert-grep" only affects
378 - the matches made by the "--grep=<pattern>" option.
379 -
380 - Will merge to 'master'.
381 - source: <xmqqee6cbalb.fsf@gitster.g>
382 -
383 -
384 -* rs/pcre2-utf (2021-12-20) 2 commits
385 - (merged to 'next' on 2021-12-27 at 5dc740c331)
386 - + grep/pcre2: factor out literal variable
387 - + grep/pcre2: use PCRE2_UTF even with ASCII patterns
388 -
389 - "git grep --perl-regexp" failed to match UTF-8 characters with
390 - wildcard when the pattern consists only of ASCII letters, which has
391 - been corrected.
392 -
393 - Will merge to 'master'.
394 - source: <5fa6962e-3c1c-6dbc-f6d7-589151a9baec@web.de>
395 -
396 -
397 -* rs/t4202-invert-grep-test-fix (2021-12-17) 1 commit
398 - (merged to 'next' on 2021-12-27 at b09cee1626)
399 - + t4202: fix patternType setting in --invert-grep test
400 -
401 - Test fix.
402 -
403 - Will merge to 'master'.
404 - source: <79dcebc0-e569-cc8a-4702-c572b062ed6d@web.de>
405 -
406 -
491 * ds/sparse-checkout-requires-per-worktree-config (2021-12-21) 5 commits
492 . sparse-checkout: use repo_config_set_worktree_gently()
493 . config: add repo_config_set_worktree_gently()
@@ -497,6 +581,7 @@ Release tarballs are available at:
581 + reflog: change one->many worktree->refnames to use a string_list
582 + reflog expire: narrow scope of "cb" in cmd_reflog_expire()
583 + reflog delete: narrow scope of "cmd" passed to count_reflog_ent()
584 + (this branch is used by jc/reflog-parse-options.)
585
586 Code refactoring in the reflog part of refs API.
587
@@ -550,23 +635,6 @@ Release tarballs are available at:
635 source: <pull.1164.git.git.1640287790.gitgitgadget@gmail.com>
636
637
553 -* jh/p4-rcs-expansion-in-bytestring (2021-12-16) 5 commits
554 - (merged to 'next' on 2021-12-27 at 650cb248ea)
555 - + git-p4: resolve RCS keywords in bytes not utf-8
556 - + git-p4: open temporary patch file for write only
557 - + git-p4: add raw option to read_pipelines
558 - + git-p4: pre-compile RCS keyword regexes
559 - + git-p4: use with statements to close files after use in patchRCSKeywords
560 -
561 - The RCS keyword substitution in "git p4" used to be done assuming
562 - that the contents are UTF-8 text, which can trigger decoding
563 - errors. We now treat the contents as a bytestring for robustness
564 - and correctness.
565 -
566 - Will merge to 'master'.
567 - source: <20211216134619.2048348-1-jholdsworth@nvidia.com>
568 -
569 -
638 * ds/sparse-checkout-malformed-pattern-fix (2021-12-30) 3 commits
639 (merged to 'next' on 2021-12-30 at c8b2ade48c)
640 + sparse-checkout: refuse to add to bad patterns
@@ -596,28 +664,6 @@ Release tarballs are available at:
664 source: <20211220233459.45739-1-chooglen@google.com>
665
666
599 -* jk/ssh-signing-doc-markup-fix (2021-12-15) 1 commit
600 - (merged to 'next' on 2021-12-27 at 2188dc2023)
601 - + doc/config: mark ssh allowedSigners example as literal
602 -
603 - Docfix.
604 -
605 - Will merge to 'master'.
606 - source: <YboWlOG3vZD/7Osx@coredump.intra.peff.net>
607 -
608 -
609 -* jv/use-larger-buffer-in-upload-pack (2021-12-15) 1 commit
610 - (merged to 'next' on 2021-12-27 at 3a1afc1ef8)
611 - + upload-pack.c: increase output buffer size
612 -
613 - "git upload-pack" (the other side of "git fetch") used a 8kB buffer
614 - but most of its payload came on 64kB "packets". The buffer size
615 - has been enlarged so that such a packet fits.
616 -
617 - Will merge to 'master'.
618 - source: <20211214194626.33814-1-jacob@gitlab.com>
619 -
620 -
667 * hn/reftable-coverity-fixes (2021-12-22) 18 commits
668 - reftable: be more paranoid about 0-length memcpy calls
669 - reftable: add print functions to the record types
@@ -641,11 +687,13 @@ Release tarballs are available at:
687 Problems identified by Coverity in the reftable code have been
688 corrected.
689
644 - Will merge to 'next'?
690 + Expecting a reroll.
691 + cf. <211228.86lf04j0lg.gmgdl@evledraar.gmail.com>
692 source: <pull.1152.v5.git.git.1640199396.gitgitgadget@gmail.com>
693
694
648 -* tb/midx-bitmap-corruption-fix (2021-12-23) 9 commits
695 +* tb/midx-bitmap-corruption-fix (2022-01-04) 9 commits
696 + - pack-bitmap.c: gracefully fallback after opening pack/MIDX
697 - midx: read `RIDX` chunk when present
698 - t/lib-bitmap.sh: parameterize tests over reverse index source
699 - t5326: move tests to t/lib-bitmap.sh
@@ -654,26 +702,10 @@ Release tarballs are available at:
702 - pack-revindex.c: instrument loading on-disk reverse index
703 - midx.c: make changing the preferred pack safe
704 - t5326: demonstrate bitmap corruption after permutation
657 - - Merge branch 'tb/cruft-packs' into tb/midx-bitmap-corruption-fix
658 - (this branch uses tb/cruft-packs.)
705
706 A bug that made multi-pack bitmap and the object order out-of-sync
707 (hence the .midx data gets corrupted) has been fixed.
662 -
663 - What's the status of this thing?
664 - source: <cover.1639446906.git.me@ttaylorr.com>
665 -
666 -
667 -* jc/flex-array-definition (2021-12-08) 1 commit
668 - (merged to 'next' on 2021-12-27 at 9db6a814b7)
669 - + flex-array: simplify compiler-specific workaround
670 -
671 - The conditions to choose different definitions of the FLEX_ARRAY
672 - macro for vendor compilers has been simplified to make it easier to
673 - maintain.
674 -
675 - Will merge to 'master'.
676 - source: <xmqqee6mv9no.fsf@gitster.g>
708 + source: <cover.1641320129.git.me@ttaylorr.com>
709
710
711 * pw/fix-some-issues-in-reset-head (2021-12-08) 14 commits
@@ -703,7 +735,7 @@ Release tarballs are available at:
735 source: <pull.1049.v2.git.1638975481.gitgitgadget@gmail.com>
736
737
706 -* ja/i18n-similar-messages (2022-01-03) 11 commits
738 +* ja/i18n-similar-messages (2022-01-05) 11 commits
739 - i18n: turn even more messages into "cannot be used together" ones
740 - i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom"
741 - i18n: factorize "--foo outside a repository"
@@ -719,8 +751,8 @@ Release tarballs are available at:
751 Similar message templates have been consolidated so that
752 translators need to work on fewer number of messages.
753
722 - cf. <48262743.WQR3eRXon5@cayenne>
723 - source: <pull.1088.v4.git.1641143745.gitgitgadget@gmail.com>
754 + Will merge to 'next'.
755 + source: <pull.1088.v5.git.1641412944.gitgitgadget@gmail.com>
756
757
758 * ab/usage-die-message (2021-12-07) 6 commits
@@ -739,20 +771,21 @@ Release tarballs are available at:
771
772
773 * ab/cat-file (2021-12-30) 10 commits
742 - - cat-file: use GET_OID_ONLY_TO_DIE in --(textconv|filters)
743 - - object-name.c: don't have GET_OID_ONLY_TO_DIE imply *_QUIETLY
744 - - cat-file: correct and improve usage information
745 - - cat-file: fix remaining usage bugs
746 - - cat-file: make --batch-all-objects a CMDMODE
747 - - cat-file: move "usage" variable to cmd_cat_file()
748 - - cat-file docs: fix SYNOPSIS and "-h" output
749 - - parse-options API: add a usage_msg_optf()
750 - - cat-file tests: test messaging on bad objects/paths
751 - - cat-file tests: test bad usage
774 + (merged to 'next' on 2022-01-05 at e145efa605)
775 + + cat-file: use GET_OID_ONLY_TO_DIE in --(textconv|filters)
776 + + object-name.c: don't have GET_OID_ONLY_TO_DIE imply *_QUIETLY
777 + + cat-file: correct and improve usage information
778 + + cat-file: fix remaining usage bugs
779 + + cat-file: make --batch-all-objects a CMDMODE
780 + + cat-file: move "usage" variable to cmd_cat_file()
781 + + cat-file docs: fix SYNOPSIS and "-h" output
782 + + parse-options API: add a usage_msg_optf()
783 + + cat-file tests: test messaging on bad objects/paths
784 + + cat-file tests: test bad usage
785
786 Assorted updates to "git cat-file", especially "-h".
787
755 - Will merge to 'next'.
788 + Will merge to 'master'.
789 source: <cover-v6-00.10-00000000000-20211228T132637Z-avarab@gmail.com>
790
791
@@ -799,24 +832,23 @@ Release tarballs are available at:
832
833
834 * tb/cruft-packs (2021-11-29) 17 commits
802 - - sha1-file.c: don't freshen cruft packs
803 - - builtin/gc.c: conditionally avoid pruning objects via loose
804 - - builtin/repack.c: add cruft packs to MIDX during geometric repack
805 - - builtin/repack.c: use named flags for existing_packs
806 - - builtin/repack.c: allow configuring cruft pack generation
807 - - builtin/repack.c: support generating a cruft pack
808 - - builtin/pack-objects.c: --cruft with expiration
809 - - reachable: report precise timestamps from objects in cruft packs
810 - - reachable: add options to add_unseen_recent_objects_to_traversal
811 - - builtin/pack-objects.c: --cruft without expiration
812 - - builtin/pack-objects.c: return from create_object_entry()
813 - - t/helper: add 'pack-mtimes' test-tool
814 - - pack-mtimes: support writing pack .mtimes files
815 - - chunk-format.h: extract oid_version()
816 - - pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles'
817 - - pack-mtimes: support reading .mtimes files
818 - - Documentation/technical: add cruft-packs.txt
819 - (this branch is used by tb/midx-bitmap-corruption-fix.)
835 + . sha1-file.c: don't freshen cruft packs
836 + . builtin/gc.c: conditionally avoid pruning objects via loose
837 + . builtin/repack.c: add cruft packs to MIDX during geometric repack
838 + . builtin/repack.c: use named flags for existing_packs
839 + . builtin/repack.c: allow configuring cruft pack generation
840 + . builtin/repack.c: support generating a cruft pack
841 + . builtin/pack-objects.c: --cruft with expiration
842 + . reachable: report precise timestamps from objects in cruft packs
843 + . reachable: add options to add_unseen_recent_objects_to_traversal
844 + . builtin/pack-objects.c: --cruft without expiration
845 + . builtin/pack-objects.c: return from create_object_entry()
846 + . t/helper: add 'pack-mtimes' test-tool
847 + . pack-mtimes: support writing pack .mtimes files
848 + . chunk-format.h: extract oid_version()
849 + . pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles'
850 + . pack-mtimes: support reading .mtimes files
851 + . Documentation/technical: add cruft-packs.txt
852
853 Instead of leaving unreachable objects in loose form when packing,
854 or ejecting them into loose form when repacking, gather them in a
@@ -830,14 +862,14 @@ Release tarballs are available at:
862 source: <cover.1638224692.git.me@ttaylorr.com>
863
864
833 -* jl/subtree-check-parents-argument-passing-fix (2021-12-05) 1 commit
834 - - subtree: fix argument handling in check_parents
865 +* jl/subtree-check-parents-argument-passing-fix (2022-01-04) 1 commit
866 + (merged to 'next' on 2022-01-05 at 7dc995f026)
867 + + subtree: fix argument handling in check_parents
868
869 Fix performance-releated bug in "git subtree" (in contrib/).
870
838 - Expecting a reroll.
839 - cf. <nycvar.QRO.7.76.6.2112072243310.90@tvgsbejvaqbjf.bet>
840 - source: <pull.1086.v3.git.1638758742741.gitgitgadget@gmail.com>
871 + Will merge to 'master'.
872 + source: <pull.1086.v4.git.1638929518657.gitgitgadget@gmail.com>
873
874
875 * ab/ambiguous-object-name (2021-12-30) 6 commits
@@ -853,44 +885,21 @@ Release tarballs are available at:
885 source: <cover-v6-0.6-00000000000-20211228T143223Z-avarab@gmail.com>
886
887
856 -* en/keep-cwd (2021-12-09) 11 commits
857 - (merged to 'next' on 2021-12-27 at 7cd8f7fdc0)
858 - + t2501: simplify the tests since we can now assume desired behavior
859 - + dir: new flag to remove_dir_recurse() to spare the original_cwd
860 - + dir: avoid incidentally removing the original_cwd in remove_path()
861 - + stash: do not attempt to remove startup_info->original_cwd
862 - + rebase: do not attempt to remove startup_info->original_cwd
863 - + clean: do not attempt to remove startup_info->original_cwd
864 - + symlinks: do not include startup_info->original_cwd in dir removal
865 - + unpack-trees: add special cwd handling
866 - + unpack-trees: refuse to remove startup_info->original_cwd
867 - + setup: introduce startup_info->original_cwd
868 - + t2501: add various tests for removing the current working directory
869 -
870 - Many git commands that deal with working tree files try to remove a
871 - directory that becomes empty (i.e. "git switch" from a branch that
872 - has the directory to another branch that does not would attempt
873 - remove all files in the directory and the directory itself). This
874 - drops users into an unfamiliar situation if the command was run in
875 - a subdirectory that becomes subject to removal due to the command.
876 - The commands have been taught to keep an empty directory if it is
877 - the directory they were started in to avoid surprising users.
878 -
879 - Will merge to 'master'.
880 - source: <pull.1140.v6.git.git.1639026515.gitgitgadget@gmail.com>
881 -
882 -
888 * tl/ls-tree-oid-only (2022-01-03) 8 commits
884 - - ls-tree.c: introduce "--format" option
885 - - ls-tree.c: introduce struct "shown_data"
886 - - ls-tree.c: support --object-only option for "git-ls-tree"
887 - - ls-tree: split up the "init" part of show_tree()
888 - - ls-tree: use "size_t", not "int" for "struct strbuf"'s "len"
889 - - ls-tree: use "enum object_type", not {blob,tree,commit}_type
890 - - ls-tree: add missing braces to "else" arms
891 - - ls-tree: remove commented-out code
889 + . ls-tree.c: introduce "--format" option
890 + . ls-tree.c: introduce struct "shown_data"
891 + . ls-tree.c: support --object-only option for "git-ls-tree"
892 + . ls-tree: split up the "init" part of show_tree()
893 + . ls-tree: use "size_t", not "int" for "struct strbuf"'s "len"
894 + . ls-tree: use "enum object_type", not {blob,tree,commit}_type
895 + . ls-tree: add missing braces to "else" arms
896 + . ls-tree: remove commented-out code
897
898 "git ls-tree" learns "--oid-only" option, similar to "--name-only".
899 +
900 + Expecting a reroll.
901 + cf. <nycvar.QRO.7.76.6.2201041533540.7076@tvgsbejvaqbjf.bet>
902 + cf. <nycvar.QRO.7.76.6.2201041615560.7076@tvgsbejvaqbjf.bet>
903 source: <cover.1641043500.git.dyroneteng@gmail.com>
904
905
@@ -909,50 +918,14 @@ Release tarballs are available at:
918 source: <pull.1080.v4.git.1640182856.gitgitgadget@gmail.com>
919
920
912 -* xw/am-empty (2021-12-15) 3 commits
913 - (merged to 'next' on 2021-12-27 at 562e1552f6)
914 - + am: support --allow-empty to record specific empty patches
915 - + am: support --empty=<option> to handle empty patches
916 - + doc: git-format-patch: describe the option --always
917 -
918 - "git am" learns "--empty=(stop|drop|keep)" option to tweak what is
919 - done to a piece of e-mail without a patch in it.
920 -
921 - Will merge to 'master'.
922 - source: <pull.1076.v19.git.1639034755.gitgitgadget@gmail.com>
923 -
924 -
925 -* pw/diff-color-moved-fix (2021-12-09) 15 commits
926 - (merged to 'next' on 2021-12-27 at 443dd9f97f)
927 - + diff --color-moved: intern strings
928 - + diff: use designated initializers for emitted_diff_symbol
929 - + diff --color-moved-ws=allow-indentation-change: improve hash lookups
930 - + diff --color-moved: stop clearing potential moved blocks
931 - + diff --color-moved: shrink potential moved blocks as we go
932 - + diff --color-moved: unify moved block growth functions
933 - + diff --color-moved: call comparison function directly
934 - + diff --color-moved-ws=allow-indentation-change: simplify and optimize
935 - + diff: simplify allow-indentation-change delta calculation
936 - + diff --color-moved: avoid false short line matches and bad zebra coloring
937 - + diff --color-moved=zebra: fix alternate coloring
938 - + diff --color-moved: rewind when discarding pmb
939 - + diff --color-moved: factor out function
940 - + diff --color-moved: clear all flags on blocks that are too short
941 - + diff --color-moved: add perf tests
942 -
943 - Correctness and performance update to "diff --color-moved" feature.
944 -
945 - Will merge to 'master'.
946 - source: <pull.981.v5.git.1639045809.gitgitgadget@gmail.com>
947 -
948 -
921 * jc/doc-submitting-patches-choice-of-base (2021-12-30) 1 commit
950 - - SubmittingPatchs: clarify choice of base and testing
922 + (merged to 'next' on 2022-01-05 at eb97c01c24)
923 + + SubmittingPatchs: clarify choice of base and testing
924
925 Extend the guidance to choose the base commit to build your work
926 on, and hint/nudge contributors to read others' changes.
927
955 - Will merge to 'next'.
928 + Will merge to 'master'.
929 source: <xmqqh7apsv6s.fsf_-_@gitster.g>
930
931