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