What's cooking (2023/12 #01)

Junio C Hamano committed Dec 8, 2023 at 17:41 UTC 4dec8a351ade6aefad370ec747f669743b02411c
1 file changed +243 -53
whats-cooking.txt
+243 -53
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Nov 2023, #09; Mon, 27)
2 +Subject: What's cooking in git.git (Dec 2023, #01; Sat, 9)
3 X-master-at: 564d0252ca632e0264ed670534a51d18a689ef5d
4 X-next-at: 3155946c3afb0941e6e01302cf86e4489bffc968
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Nov 2023, #09; Mon, 27)
7 +What's cooking in git.git (Dec 2023, #01; Sat, 9)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -48,13 +48,227 @@ Release tarballs are available at:
48 --------------------------------------------------
49 [New Topics]
50
51 +* jp/use-diff-index-in-pre-commit-sample (2023-12-03) 1 commit
52 + - hooks--pre-commit: detect non-ASCII when renaming
53 +
54 + The sample pre-commit hook that tries to catch introduction of new
55 + paths that use potentially non-portable characters did not notice
56 + an existing path getting renamed to such a problematic path, when
57 + rename detection was enabled.
58 +
59 + Will merge to 'next'.
60 + source: <pull.1291.v2.git.git.1701360836307.gitgitgadget@gmail.com>
61 +
62 +
63 +* mk/doc-gitfile-more (2023-12-03) 1 commit
64 + - doc: make the gitfile syntax easier to discover
65 +
66 + Doc update.
67 +
68 + Will merge to 'next'.
69 + source: <20231128065558.1061206-1-mk+copyleft@pimpmybyte.de>
70 +
71 +
72 +* ps/ref-tests-update-more (2023-12-03) 10 commits
73 + - t6301: write invalid object ID via `test-tool ref-store`
74 + - t5551: stop writing packed-refs directly
75 + - t5401: speed up creation of many branches
76 + - t4013: simplify magic parsing and drop "failure"
77 + - t3310: stop checking for reference existence via `test -f`
78 + - t1417: make `reflog --updateref` tests backend agnostic
79 + - t1410: use test-tool to create empty reflog
80 + - t1401: stop treating FETCH_HEAD as real reference
81 + - t1400: split up generic reflog tests from the reffile-specific ones
82 + - t0410: mark tests to require the reffiles backend
83 +
84 + Tests update.
85 +
86 + Will merge to 'next'.
87 + source: <cover.1701242407.git.ps@pks.im>
88 +
89 +
90 +* sh/completion-with-reftable (2023-12-03) 2 commits
91 + - completion: stop checking for reference existence via `test -f`
92 + - completion: refactor existence checks for special refs
93 +
94 + Command line completion script (in contrib/) learned to work better
95 + with the reftable backend.
96 +
97 + Expecting a reroll.
98 + source: <20231130202404.89791-1-stanhu@gmail.com>
99 +
100 +
101 +* en/header-cleanup (2023-12-03) 12 commits
102 + - treewide: remove unnecessary includes in source files
103 + - treewide: add direct includes currently only pulled in transitively
104 + - trace2/tr2_tls.h: remove unnecessary include
105 + - submodule-config.h: remove unnecessary include
106 + - pkt-line.h: remove unnecessary include
107 + - line-log.h: remove unnecessary include
108 + - http.h: remove unnecessary include
109 + - fsmonitor--daemon.h: remove unnecessary includes
110 + - blame.h: remove unnecessary includes
111 + - archive.h: remove unnecessary include
112 + - treewide: remove unnecessary includes in source files
113 + - treewide: remove unnecessary includes from header files
114 +
115 + Remove unused header "#include".
116 +
117 + Has a few interactions with topics in flight.
118 + source: <pull.1617.git.1701585682.gitgitgadget@gmail.com>
119 +
120 +
121 +* jc/revision-parse-int (2023-12-09) 1 commit
122 + - revision: parse integer arguments to --max-count, --skip, etc., more carefully
123 +
124 + The command line parser for the "log" family of commands was too
125 + loose when parsing certain numbers, e.g., silently ignoring the
126 + extra 'q' in "git log -n 1q" without complaining, which has been
127 + tightened up.
128 +
129 + Will merge to 'next'.
130 + source: <xmqq5y181fx0.fsf_-_@gitster.g>
131 +
132 +
133 +* jk/bisect-reset-fix (2023-12-09) 1 commit
134 + - bisect: always clean on reset
135 +
136 + "git bisect reset" has been taught to clean up state files and refs
137 + even when BISECT_START file is gone.
138 +
139 + Will merge to 'next'.
140 + source: <20231207065341.GA778781@coredump.intra.peff.net>
141 +
142 +
143 +* jk/implicit-true (2023-12-09) 7 commits
144 + - fsck: handle NULL value when parsing message config
145 + - trailer: handle NULL value when parsing trailer-specific config
146 + - submodule: handle NULL value when parsing submodule.*.branch
147 + - help: handle NULL value for alias.* config
148 + - trace2: handle NULL values in tr2_sysenv config callback
149 + - setup: handle NULL value when parsing extensions
150 + - config: handle NULL value when parsing non-bools
151 + (this branch is used by jk/config-cleanup.)
152 +
153 + Some codepaths did not correctly parse configuration variables
154 + specified with valueless "true", which has been corrected.
155 +
156 + Will merge to 'next'.
157 + source: <20231207071030.GA1275835@coredump.intra.peff.net>
158 +
159 +
160 +* jk/config-cleanup (2023-12-09) 9 commits
161 + - sequencer: simplify away extra git_config_string() call
162 + - gpg-interface: drop pointless config_error_nonbool() checks
163 + - push: drop confusing configset/callback redundancy
164 + - config: use git_config_string() for core.checkRoundTripEncoding
165 + - diff: give more detailed messages for bogus diff.* config
166 + - config: use config_error_nonbool() instead of custom messages
167 + - imap-send: don't use git_die_config() inside callback
168 + - git_xmerge_config(): prefer error() to die()
169 + - config: reject bogus values for core.checkstat
170 + (this branch uses jk/implicit-true.)
171 +
172 + Code clean-up around use of configuration variables.
173 +
174 + Will merge to 'next'.
175 + source: <20231207071030.GA1275835@coredump.intra.peff.net>
176 + source: <20231207072338.GA1277727@coredump.intra.peff.net>
177 +
178 +
179 +* jk/end-of-options (2023-12-09) 1 commit
180 + - parse-options: decouple "--end-of-options" and "--"
181 +
182 + "git log --end-of-options --rev -- --path" learned to interpret
183 + "--rev" as a rev, and "--path" as a path, as expected.
184 +
185 + Will merge to 'next'.
186 + source: <20231206222145.GA136253@coredump.intra.peff.net>
187 +
188 +
189 +* ps/clone-into-reftable-repository (2023-12-09) 7 commits
190 + - builtin/clone: create the refdb with the correct object format
191 + - builtin/clone: skip reading HEAD when retrieving remote
192 + - builtin/clone: set up sparse checkout later
193 + - builtin/clone: fix bundle URIs with mismatching object formats
194 + - remote-curl: rediscover repository when fetching refs
195 + - setup: allow skipping creation of the refdb
196 + - setup: extract function to create the refdb
197 +
198 + "git clone" has been prepared to allow cloning a repository with
199 + non-default hash function into a repository that uses the reftable
200 + backend.
201 +
202 + Will merge to 'next'?
203 + source: <cover.1701863960.git.ps@pks.im>
204 +
205 +
206 +* rs/incompatible-options-messages (2023-12-09) 7 commits
207 + - worktree: simplify incompatibility message for --orphan and commit-ish
208 + - worktree: standardize incompatibility messages
209 + - clean: factorize incompatibility message
210 + - revision, rev-parse: factorize incompatibility messages about - -exclude-hidden
211 + - revision: use die_for_incompatible_opt3() for - -graph/--reverse/--walk-reflogs
212 + - repack: use die_for_incompatible_opt3() for -A/-k/--cruft
213 + - push: use die_for_incompatible_opt4() for - -delete/--tags/--all/--mirror
214 +
215 + Clean-up code that handles combinations of incompatible options.
216 +
217 + Will merge to 'next'.
218 + source: <20231206115215.94467-1-l.s.r@web.de>
219 +
220 +--------------------------------------------------
221 +[Stalled]
222 +
223 +* pw/rebase-sigint (2023-09-07) 1 commit
224 + - rebase -i: ignore signals when forking subprocesses
225 +
226 + If the commit log editor or other external programs (spawned via
227 + "exec" insn in the todo list) receive internactive signal during
228 + "git rebase -i", it caused not just the spawned program but the
229 + "Git" process that spawned them, which is often not what the end
230 + user intended. "git" learned to ignore SIGINT and SIGQUIT while
231 + waiting for these subprocesses.
232 +
233 + Expecting a reroll.
234 + cf. <12c956ea-330d-4441-937f-7885ab519e26@gmail.com>
235 + source: <pull.1581.git.1694080982621.gitgitgadget@gmail.com>
236 +
237 +
238 +* tk/cherry-pick-sequence-requires-clean-worktree (2023-06-01) 1 commit
239 + - cherry-pick: refuse cherry-pick sequence if index is dirty
240 +
241 + "git cherry-pick A" that replays a single commit stopped before
242 + clobbering local modification, but "git cherry-pick A..B" did not,
243 + which has been corrected.
244 +
245 + Expecting a reroll.
246 + cf. <999f12b2-38d6-f446-e763-4985116ad37d@gmail.com>
247 + source: <pull.1535.v2.git.1685264889088.gitgitgadget@gmail.com>
248 +
249 +
250 +* jc/diff-cached-fsmonitor-fix (2023-09-15) 3 commits
251 + - diff-lib: fix check_removed() when fsmonitor is active
252 + - Merge branch 'jc/fake-lstat' into jc/diff-cached-fsmonitor-fix
253 + - Merge branch 'js/diff-cached-fsmonitor-fix' into jc/diff-cached-fsmonitor-fix
254 + (this branch uses jc/fake-lstat.)
255 +
256 + The optimization based on fsmonitor in the "diff --cached"
257 + codepath is resurrected with the "fake-lstat" introduced earlier.
258 +
259 + It is unknown if the optimization is worth resurrecting, but in case...
260 + source: <xmqqr0n0h0tw.fsf@gitster.g>
261 +
262 +--------------------------------------------------
263 +[Cooking]
264 +
265 * ad/merge-file-diff-algo (2023-11-22) 1 commit
266 - merge-file: add --diff-algorithm option
267
268 "git merge-file" learned to take the "--diff-algorithm" option to
269 use algorithm different from the default "myers" diff.
270
57 - Will merge to 'next'?
271 + Will merge to 'next'.
272 source: <pull.1606.v2.git.git.1700507932937.gitgitgadget@gmail.com>
273
274
@@ -65,7 +279,8 @@ Release tarballs are available at:
279 source: <pull.1609.git.git.1700639764041.gitgitgadget@gmail.com>
280
281
68 -* jc/checkout-B-branch-in-use (2023-11-23) 2 commits
282 +* jc/checkout-B-branch-in-use (2023-12-09) 3 commits
283 + - fixup! checkout: forbid "-B <branch>" from touching a branch used elsewhere
284 - checkout: forbid "-B <branch>" from touching a branch used elsewhere
285 - checkout: refactor die_if_checked_out() caller
286
@@ -76,7 +291,7 @@ Release tarballs are available at:
291 unbreak you, if you are used to the current behaviour that "-B"
292 overrides the safety.
293
79 - Needs review and documentation updates.
294 + Needs review.
295 source: <xmqqjzq9cl70.fsf@gitster.g>
296
297
@@ -121,18 +336,26 @@ Release tarballs are available at:
336 source: <cover.1700549493.git.ps@pks.im>
337
338
124 -* en/complete-sparse-checkout (2023-11-27) 4 commits
339 +* en/complete-sparse-checkout (2023-12-03) 4 commits
340 - completion: avoid user confusion in non-cone mode
341 - completion: avoid misleading completions in cone mode
342 - completion: fix logic for determining whether cone mode is active
343 - completion: squelch stray errors in sparse-checkout completion
344
130 - source: <pull.1349.v2.git.1700985086.gitgitgadget@gmail.com>
345 + Command line completion (in contrib/) learned to complete path
346 + arguments to the "add/set" subcommands of "git sparse-checkout"
347 + better.
348 +
349 + Will merge to 'next'.
350 + source: <pull.1349.v3.git.1701583024.gitgitgadget@gmail.com>
351
352
353 * jb/reflog-expire-delete-dry-run-options (2023-11-26) 1 commit
354 - builtin/reflog.c: fix dry-run option short name
355
356 + Command line parsing fix for "git reflog".
357 +
358 + Will merge to 'next'.
359 source: <20231126000514.85509-1-josh@brob.st>
360
361
@@ -140,71 +363,36 @@ Release tarballs are available at:
363 - orphan/unborn: fix use of 'orphan' in end-user facing messages
364 - orphan/unborn: add to the glossary and use them consistently
365
366 + Doc updates to clarify what an "unborn branch" means.
367 +
368 + Comments?
369 source: <xmqq4jhb977x.fsf@gitster.g>
370
371
372 * rs/column-leakfix (2023-11-27) 1 commit
373 - column: release strbuf and string_list after use
374
375 + Leakfix.
376 +
377 + Will merge to 'next'.
378 source: <f087137d-a5aa-487e-a1cb-0ad7117b38ed@web.de>
379
380
381 * rs/i18n-cannot-be-used-together (2023-11-27) 1 commit
382 - i18n: factorize even more 'incompatible options' messages
383
155 - source: <e6eb12e4-bb63-473c-9c2f-965a4d5981ad@web.de>
156 -
157 ---------------------------------------------------
158 -[Stalled]
159 -
160 -* pw/rebase-sigint (2023-09-07) 1 commit
161 - - rebase -i: ignore signals when forking subprocesses
384 + Clean-up code that handles combinations of incompatible options.
385
163 - If the commit log editor or other external programs (spawned via
164 - "exec" insn in the todo list) receive internactive signal during
165 - "git rebase -i", it caused not just the spawned program but the
166 - "Git" process that spawned them, which is often not what the end
167 - user intended. "git" learned to ignore SIGINT and SIGQUIT while
168 - waiting for these subprocesses.
169 -
170 - Expecting a reroll.
171 - cf. <12c956ea-330d-4441-937f-7885ab519e26@gmail.com>
172 - source: <pull.1581.git.1694080982621.gitgitgadget@gmail.com>
173 -
174 -
175 -* tk/cherry-pick-sequence-requires-clean-worktree (2023-06-01) 1 commit
176 - - cherry-pick: refuse cherry-pick sequence if index is dirty
177 -
178 - "git cherry-pick A" that replays a single commit stopped before
179 - clobbering local modification, but "git cherry-pick A..B" did not,
180 - which has been corrected.
181 -
182 - Expecting a reroll.
183 - cf. <999f12b2-38d6-f446-e763-4985116ad37d@gmail.com>
184 - source: <pull.1535.v2.git.1685264889088.gitgitgadget@gmail.com>
185 -
186 -
187 -* jc/diff-cached-fsmonitor-fix (2023-09-15) 3 commits
188 - - diff-lib: fix check_removed() when fsmonitor is active
189 - - Merge branch 'jc/fake-lstat' into jc/diff-cached-fsmonitor-fix
190 - - Merge branch 'js/diff-cached-fsmonitor-fix' into jc/diff-cached-fsmonitor-fix
191 - (this branch uses jc/fake-lstat.)
192 -
193 - The optimization based on fsmonitor in the "diff --cached"
194 - codepath is resurrected with the "fake-lstat" introduced earlier.
195 -
196 - It is unknown if the optimization is worth resurrecting, but in case...
197 - source: <xmqqr0n0h0tw.fsf@gitster.g>
386 + Will merge to 'next'.
387 + source: <e6eb12e4-bb63-473c-9c2f-965a4d5981ad@web.de>
388
199 ---------------------------------------------------
200 -[Cooking]
389
390 * ac/fuzz-show-date (2023-11-20) 1 commit
391 - fuzz: add new oss-fuzz fuzzer for date.c / date.h
392
205 - Subject approxidate() and show_date() macchinery to OSS-Fuzz.
393 + Subject approxidate() and show_date() machinery to OSS-Fuzz.
394
207 - Will merge to 'next'?
395 + Will merge to 'next'.
396 source: <pull.1612.v4.git.1700243267653.gitgitgadget@gmail.com>
397
398
@@ -225,6 +413,8 @@ Release tarballs are available at:
413 without adding anything in .gitattributes files, which would be
414 useful in magic pathspec, e.g., ":(attr:builtin_objectmode=100755)"
415 to limit to executables.
416 +
417 + Will merge to 'next' after squashing the fix-up in?
418 source: <20231116054437.2343549-1-jojwang@google.com>
419
420