]> git.ipfire.org Git - thirdparty/git.git/blob - whats-cooking.txt
b3895b182e9ddb578d67610b66216cac0c0d4e0d
[thirdparty/git.git] / whats-cooking.txt
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Mar 2024, #02; Thu, 7)
3 X-master-at: e09f1254c54329773904fe25d7c545a1fb4fa920
4 X-next-at: c1ea87d7ee147b4fd526f238b8e20889c532d10d
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 What's cooking in git.git (Mar 2024, #02; Thu, 7)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
11 prefixed with '+' are in 'next' (being in 'next' is a sign that a
12 topic is stable enough to be used and are candidate to be in a
13 future release). Commits prefixed with '-' are only in 'seen', and
14 aren't considered "accepted" at all and may be annotated with an URL
15 to a message that raises issues but they are no means exhaustive. A
16 topic without enough support may be discarded after a long period of
17 no activity (of course they can be resubmit when new interests
18 arise).
19
20 The 'maint' branch now points at the 2.44 maintenance track.
21
22 Copies of the source code to Git live in many repositories, and the
23 following is a list of the ones I push into or their mirrors. Some
24 repositories have only a subset of branches.
25
26 With maint, master, next, seen, todo:
27
28 git://git.kernel.org/pub/scm/git/git.git/
29 git://repo.or.cz/alt-git.git/
30 https://kernel.googlesource.com/pub/scm/git/git/
31 https://github.com/git/git/
32 https://gitlab.com/git-vcs/git/
33
34 With all the integration branches and topics broken out:
35
36 https://github.com/gitster/git/
37
38 Even though the preformatted documentation in HTML and man format
39 are not sources, they are published in these repositories for
40 convenience (replace "htmldocs" with "manpages" for the manual
41 pages):
42
43 git://git.kernel.org/pub/scm/git/git-htmldocs.git/
44 https://github.com/gitster/git-htmldocs.git/
45
46 Release tarballs are available at:
47
48 https://www.kernel.org/pub/software/scm/git/
49
50 --------------------------------------------------
51 [Graduated to 'master']
52
53 * ak/rebase-autosquash (2024-02-27) 1 commit
54 (merged to 'next' on 2024-03-01 at 57a34830b7)
55 + rebase: fix typo in autosquash documentation
56
57 Originally merged to 'next' on 2024-02-27
58
59 Typofix.
60 source: <pull.1676.git.1709015578890.gitgitgadget@gmail.com>
61
62
63 * cc/rev-list-allow-missing-tips (2024-02-28) 5 commits
64 (merged to 'next' on 2024-03-01 at fd7b109d04)
65 + revision: fix --missing=[print|allow*] for annotated tags
66 (merged to 'next' on 2024-03-01 at ac0fc94378)
67 + rev-list: allow missing tips with --missing=[print|allow*]
68 + t6022: fix 'test' style and 'even though' typo
69 + oidset: refactor oidset_insert_from_set()
70 + revision: clarify a 'return NULL' in get_reference()
71
72 Originally merged to 'next' on 2024-02-28
73
74 "git rev-list --missing=print" has learned to optionally take
75 "--allow-missing-tips", which allows the objects at the starting
76 points to be missing.
77 source: <20240214142513.4002639-1-christian.couder@gmail.com>
78
79
80 * eg/add-uflags (2024-02-29) 1 commit
81 (merged to 'next' on 2024-03-01 at 5dbc997561)
82 + add: use unsigned type for collection of bits
83
84 Originally merged to 'next' on 2024-02-29
85
86 Code clean-up practice.
87 source: <20240229194444.8499-2-giganteeugenio2@gmail.com>
88
89
90 * jc/doc-compat-util (2024-02-27) 1 commit
91 (merged to 'next' on 2024-03-01 at 89b76c65d7)
92 + doc: clarify the wording on <git-compat-util.h> requirement
93
94 Originally merged to 'next' on 2024-02-27
95
96 Clarify wording in the CodingGuidelines that requires <git-compat-util.h>
97 to be the first header file.
98 source: <xmqqle76kdpr.fsf_-_@gitster.g>
99
100
101 * jc/no-include-of-compat-util-from-headers (2024-02-24) 1 commit
102 (merged to 'next' on 2024-03-01 at ebb921087e)
103 + compat: drop inclusion of <git-compat-util.h>
104
105 Originally merged to 'next' on 2024-02-26
106
107 Header file clean-up.
108 source: <xmqqwmqtli18.fsf@gitster.g>
109
110
111 * jc/no-lazy-fetch (2024-02-27) 3 commits
112 (merged to 'next' on 2024-03-01 at 14303cdbfe)
113 + git: extend --no-lazy-fetch to work across subprocesses
114 + git: document GIT_NO_REPLACE_OBJECTS environment variable
115 + git: --no-lazy-fetch option
116
117 Originally merged to 'next' on 2024-02-29
118
119 "git --no-lazy-fetch cmd" allows to run "cmd" while disabling lazy
120 fetching of objects from the promisor remote, which may be handy
121 for debugging.
122 source: <xmqq1q8xx38i.fsf@gitster.g>
123 source: <xmqq1q9cl3xv.fsf@gitster.g>
124 source: <xmqq1q9mmtpw.fsf@gitster.g>
125
126
127 * jk/reflog-special-cases-fix (2024-02-26) 3 commits
128 (merged to 'next' on 2024-03-01 at 2b67f6e668)
129 + read_ref_at(): special-case ref@{0} for an empty reflog
130 + get_oid_basic(): special-case ref@{n} for oldest reflog entry
131 + Revert "refs: allow @{n} to work with n-sized reflog"
132
133 Originally merged to 'next' on 2024-02-27
134
135 The logic to access reflog entries by date and number had ugly
136 corner cases at the boundaries, which have been cleaned up.
137 source: <20240226100010.GA1214708@coredump.intra.peff.net>
138
139
140 * jk/textconv-cache-outside-repo-fix (2024-02-26) 1 commit
141 (merged to 'next' on 2024-03-01 at 8508b83758)
142 + userdiff: skip textconv caching when not in a repository
143
144 Originally merged to 'next' on 2024-02-26
145
146 The code incorrectly attempted to use textconv cache when asked,
147 even when we are not running in a repository, which has been
148 corrected.
149 source: <20240226102729.GB2685773@coredump.intra.peff.net>
150
151
152 * jk/upload-pack-bounded-resources (2024-02-28) 9 commits
153 (merged to 'next' on 2024-03-01 at b70b6f0913)
154 + upload-pack: free tree buffers after parsing
155 + upload-pack: use PARSE_OBJECT_SKIP_HASH_CHECK in more places
156 + upload-pack: always turn off save_commit_buffer
157 + upload-pack: disallow object-info capability by default
158 + upload-pack: accept only a single packfile-uri line
159 + upload-pack: use a strmap for want-ref lines
160 + upload-pack: use oidset for deepen_not list
161 + upload-pack: switch deepen-not list to an oid_array
162 + upload-pack: drop separate v2 "haves" array
163
164 Originally merged to 'next' on 2024-02-29
165
166 Various parts of upload-pack has been updated to bound the resource
167 consumption relative to the size of the repository to protect from
168 abusive clients.
169 source: <20240228223700.GA1157826@coredump.intra.peff.net>
170
171
172 * jk/upload-pack-v2-capability-cleanup (2024-02-29) 4 commits
173 (merged to 'next' on 2024-03-01 at 2750893db7)
174 + upload-pack: only accept packfile-uris if we advertised it
175 + upload-pack: use existing config mechanism for advertisement
176 + upload-pack: centralize setup of sideband-all config
177 + upload-pack: use repository struct to get config
178
179 Originally merged to 'next' on 2024-02-29
180
181 The upload-pack program, when talking over v2, accepted the
182 packfile-uris protocol extension from the client, even if it did
183 not advertise the capability, which has been corrected.
184 source: <20240228224625.GA1158651@coredump.intra.peff.net>
185
186
187 * js/merge-tree-3-trees (2024-02-23) 7 commits
188 (merged to 'next' on 2024-03-01 at a75dc95f04)
189 + fill_tree_descriptor(): mark error message for translation
190 + cache-tree: avoid an unnecessary check
191 + Always check `parse_tree*()`'s return value
192 + t4301: verify that merge-tree fails on missing blob objects
193 + merge-ort: do check `parse_tree()`'s return value
194 + merge-tree: fail with a non-zero exit code on missing tree objects
195 + merge-tree: accept 3 trees as arguments
196
197 Originally merged to 'next' on 2024-02-28
198
199 "git merge-tree" has learned that the three trees involved in the
200 3-way merge only need to be trees, not necessarily commits.
201 source: <pull.1647.git.1706277694231.gitgitgadget@gmail.com>
202 source: <pull.1651.v4.git.1708677266.gitgitgadget@gmail.com>
203
204
205 * js/remove-cruft-files (2024-02-26) 1 commit
206 (merged to 'next' on 2024-03-01 at 63100a274b)
207 + neue: remove a bogus empty file
208
209 Originally merged to 'next' on 2024-02-26
210
211 Remove an empty file that shouldn't have been added in the first
212 place.
213 source: <pull.1674.git.1708958183225.gitgitgadget@gmail.com>
214
215
216 * jt/commit-redundant-scissors-fix (2024-02-27) 2 commits
217 (merged to 'next' on 2024-03-01 at e5983498f1)
218 + commit: unify logic to avoid multiple scissors lines when merging
219 + commit: avoid redundant scissor line with --cleanup=scissors -v
220
221 Originally merged to 'next' on 2024-02-29
222
223 "git commit -v --cleanup=scissors" used to add the scissors line
224 twice in the log message buffer, which has been corrected.
225 source: <Zd2eLxPelxvP8FDk@localhost>
226
227
228 * kn/for-all-refs (2024-02-23) 6 commits
229 (merged to 'next' on 2024-03-01 at 76a1297ace)
230 + for-each-ref: add new option to include root refs
231 + ref-filter: rename 'FILTER_REFS_ALL' to 'FILTER_REFS_REGULAR'
232 + refs: introduce `refs_for_each_include_root_refs()`
233 + refs: extract out `loose_fill_ref_dir_regular_file()`
234 + refs: introduce `is_pseudoref()` and `is_headref()`
235 + Merge branch 'ps/reftable-backend' into kn/for-all-refs
236
237 Originally merged to 'next' on 2024-02-27
238
239 "git for-each-ref" learned "--include-root-refs" option to show
240 even the stuff outside the 'refs/' hierarchy.
241 source: <20240223100112.44127-1-karthik.188@gmail.com>
242
243
244 * ml/log-merge-with-cherry-pick-and-other-pseudo-heads (2024-02-28) 2 commits
245 (merged to 'next' on 2024-03-01 at 339111ec08)
246 + revision: implement `git log --merge` also for rebase/cherry-pick/revert
247 + revision: ensure MERGE_HEAD is a ref in prepare_show_merge
248
249 Originally merged to 'next' on 2024-02-29
250
251 "git log --merge" learned to pay attention to CHERRY_PICK_HEAD and
252 other kinds of *_HEAD pseudorefs.
253 source: <20240228-ml-log-merge-with-cherry-pick-and-other-pseudo-heads-v6-0-8ec34c052b39@gmail.com>
254
255
256 * pb/ort-make-submodule-conflict-message-an-advice (2024-02-26) 1 commit
257 (merged to 'next' on 2024-03-01 at df880cde2e)
258 + merge-ort: turn submodule conflict suggestions into an advice
259
260 Originally merged to 'next' on 2024-02-27
261
262 When a merge conflicted at a submodule, merge-ort backend used to
263 unconditionally give a lengthy message to suggest how to resolve
264 it. Now the message can be squelched as an advice message.
265 source: <pull.1661.v2.git.git.1708954048301.gitgitgadget@gmail.com>
266
267
268 * ps/reftable-repo-init-fix (2024-02-27) 2 commits
269 (merged to 'next' on 2024-03-01 at abbf85051b)
270 + refs/reftable: don't fail empty transactions in repo without HEAD
271 + Merge branch 'ps/remote-helper-repo-initialization-fix' into ps/reftable-repo-init-fix
272 (this branch uses ps/remote-helper-repo-initialization-fix.)
273
274 Originally merged to 'next' on 2024-02-29
275
276 Clear the fallout from a fix for 2.44 regression.
277 source: <95be968e10bd02c64448786e690bbefe5c082577.1709041721.git.ps@pks.im>
278
279
280 * ps/remote-helper-repo-initialization-fix (2024-02-27) 1 commit
281 (merged to 'next' on 2024-03-01 at 7b79ffbd8f)
282 + builtin/clone: allow remote helpers to detect repo
283 (this branch is used by ps/reftable-repo-init-fix.)
284
285 Originally merged to 'next' on 2024-02-29
286
287 A custom remote helper no longer cannot access the newly created
288 repository during "git clone", which is a regression in Git 2.44.
289 This has been corrected.
290 source: <9d888adf92e9a8af7c18847219f97d3e595e3e36.1709041721.git.ps@pks.im>
291
292
293 * rs/fetch-simplify-with-starts-with (2024-02-26) 1 commit
294 (merged to 'next' on 2024-03-01 at 000e015fff)
295 + fetch: convert strncmp() with strlen() to starts_with()
296
297 Originally merged to 'next' on 2024-02-27
298
299 Code simplification.
300 source: <cb94b938-03f9-4dd3-84c1-f5244ca81be3@web.de>
301
302
303 * rs/name-rev-with-mempool (2024-02-26) 2 commits
304 (merged to 'next' on 2024-03-01 at d53eac1836)
305 + name-rev: use mem_pool_strfmt()
306 + mem-pool: add mem_pool_strfmt()
307
308 Originally merged to 'next' on 2024-02-27
309
310 Many small allocations "git name-rev" makes have been updated to
311 allocate from a mem-pool.
312 source: <20240225113947.89357-1-l.s.r@web.de>
313
314
315 * rs/submodule-prefix-simplify (2024-02-26) 1 commit
316 (merged to 'next' on 2024-03-01 at 05d4d90201)
317 + submodule: use strvec_pushf() for --submodule-prefix
318
319 Originally merged to 'next' on 2024-02-27
320
321 Code simplification.
322 source: <8cd983fb-32b9-41c6-a9e7-a485b190488c@web.de>
323
324
325 * sg/upload-pack-error-message-fix (2024-02-26) 1 commit
326 (merged to 'next' on 2024-03-01 at b94664a7a0)
327 + upload-pack: don't send null character in abort message to the client
328
329 Originally merged to 'next' on 2024-02-27
330
331 An error message from "git upload-pack", which responds to "git
332 fetch" requests, had a trialing NUL in it, which has been
333 corrected.
334 source: <20240225183452.1939334-1-szeder.dev@gmail.com>
335
336 --------------------------------------------------
337 [New Topics]
338
339 * ag/t0010-modernize (2024-03-05) 1 commit
340 (merged to 'next' on 2024-03-07 at 38339abc2d)
341 + tests: modernize the test script t0010-racy-git.sh
342
343 GSoC practice to modernize a test script.
344
345 Will merge to 'master'.
346 source: <pull.1675.v3.git.1709676557639.gitgitgadget@gmail.com>
347
348
349 * fs/find-end-of-log-message-fix (2024-03-07) 1 commit
350 - wt-status: don't find scissors line beyond buf len
351
352 The code to find the effective end of log message can fall into an
353 endless loop, which has been corrected.
354
355 Waiting for review response.
356 source: <20240307183743.219951-1-flosch@nutanix.com>
357
358
359 * hd/config-mak-os390 (2024-03-06) 1 commit
360 (merged to 'next' on 2024-03-07 at 289d3ab691)
361 + build: support z/OS (OS/390).
362
363 Platform specific tweaks for OS/390 has been added to
364 config.mak.uname.
365
366 Will merge to 'master'.
367 source: <pull.1663.v4.git.git.1709703857881.gitgitgadget@gmail.com>
368
369
370 * jk/core-comment-string (2024-03-07) 15 commits
371 - config: allow multi-byte core.commentChar
372 - environment: drop comment_line_char compatibility macro
373 - wt-status: drop custom comment-char stringification
374 - sequencer: handle multi-byte comment characters when writing todo list
375 - find multi-byte comment chars in unterminated buffers
376 - find multi-byte comment chars in NUL-terminated strings
377 - prefer comment_line_str to comment_line_char for printing
378 - strbuf: accept a comment string for strbuf_add_commented_lines()
379 - strbuf: accept a comment string for strbuf_commented_addf()
380 - strbuf: accept a comment string for strbuf_stripspace()
381 - environment: store comment_line_char as a string
382 - strbuf: avoid shadowing global comment_line_char name
383 - commit: refactor base-case of adjust_comment_line_char()
384 - strbuf: avoid static variables in strbuf_add_commented_lines()
385 - strbuf: simplify comment-handling in add_lines() helper
386
387 core.commentChar used to be limited to a single byte, but has been
388 updated to allow an arbitrary multi-byte sequence.
389
390 Will merge to 'next'?
391 source: <20240307091407.GA2072522@coredump.intra.peff.net>
392
393
394 * jk/doc-remote-helpers-markup-fix (2024-03-07) 1 commit
395 - doc/gitremote-helpers: fix missing single-quote
396
397 Doc mark-up fix.
398
399 Will merge to 'next'.
400 source: <20240307084313.GA2072022@coredump.intra.peff.net>
401
402
403 * js/build-fuzz-more-often (2024-03-05) 3 commits
404 - SQUASH???
405 - fuzz: link fuzz programs with `make all` on Linux
406 - ci: also define CXX environment variable
407
408 In addition to building the objects needed, try to link the objects
409 that are used in fuzzer tests, to make sure at least they build
410 without bitrot, in Linux CI runs.
411
412 Comments?
413 source: <cover.1709673020.git.steadmon@google.com>
414
415
416 * kh/branch-ref-syntax-advice (2024-03-05) 5 commits
417 (merged to 'next' on 2024-03-07 at 914f01967b)
418 + branch: advise about ref syntax rules
419 + advice: use double quotes for regular quoting
420 + advice: use backticks for verbatim
421 + advice: make all entries stylistically consistent
422 + t3200: improve test style
423
424 When git refuses to create a branch because the proposed branch
425 name is not a valid refname, an advice message is given to refer
426 the user to exact naming rules.
427
428 Will merge to 'master'.
429 source: <cover.1709670287.git.code@khaugsbakk.name>
430
431
432 * kh/doc-commentchar-is-a-byte (2024-03-05) 1 commit
433 (merged to 'next' on 2024-03-06 at 5941655c04)
434 + config: document `core.commentChar` as ASCII-only
435
436 The "core.commentChar" configuration variable only allows an ASCII
437 character, which was not clearly documented, which has been
438 corrected.
439
440 Will merge to 'master'.
441 source: <9633f9be5ddd9ab3df4b79ee934e1ed47e90bd1d.1709656683.git.code@khaugsbakk.name>
442
443
444 * ps/reftable-block-search-fix (2024-03-07) 2 commits
445 - reftable/block: fix binary search over restart counter
446 - reftable/record: fix memory leak when decoding object records
447
448 The reftable code has its own custom binary search function whose
449 comparison callback has an unusual interface, which caused the
450 binary search to degenerate into a linear search, which has been
451 corrected.
452
453 Will merge to 'next'?
454 source: <cover.1709843663.git.ps@pks.im>
455
456
457 * ps/reftable-reflog-iteration-perf (2024-03-05) 8 commits
458 - refs/reftable: track last log record name via strbuf
459 - reftable/record: use scratch buffer when decoding records
460 - reftable/record: reuse message when decoding log records
461 - reftable/record: reuse refnames when decoding log records
462 - reftable/record: avoid copying author info
463 - reftable/record: convert old and new object IDs to arrays
464 - refs/reftable: reload correct stack when creating reflog iter
465 - Merge branch 'ps/reftable-iteration-perf-part2' into ps/reftable-reflog-iteration-perf
466 (this branch uses ps/reftable-iteration-perf-part2.)
467
468 The code to iterate over reflogs in the reftable has been optimized
469 to reduce memory allocation and deallocation.
470
471 Needs review.
472 source: <cover.1709640322.git.ps@pks.im>
473
474
475 * sj/userdiff-c-sharp (2024-03-06) 1 commit
476 - userdiff: better method/property matching for C#
477
478 The userdiff patterns for C# has been updated.
479
480 Needs review.
481 source: <pull.1682.v2.git.git.1709756493673.gitgitgadget@gmail.com>
482
483 --------------------------------------------------
484 [Cooking]
485
486 * es/config-doc-sort-sections (2024-02-29) 1 commit
487 (merged to 'next' on 2024-03-04 at 0752144ed7)
488 + docs: sort configuration variable groupings alphabetically
489
490 Doc updates.
491
492 Will merge to 'master'.
493 source: <20240229190229.20222-1-ericsunshine@charter.net>
494
495
496 * kh/doc-dashed-commands-have-not-worked-for-a-long-time (2024-03-01) 1 commit
497 (merged to 'next' on 2024-03-04 at 7e070c67f9)
498 + gitcli: drop mention of “non-dashed form”
499
500 Doc update.
501
502 Will merge to 'master'.
503 source: <5b34bc4e22816f7f19bd26c15a08fe4c749b72f8.1709316230.git.code@khaugsbakk.name>
504
505
506 * jc/xwrite-cleanup (2024-03-02) 3 commits
507 (merged to 'next' on 2024-03-07 at 43e66f7e4d)
508 + repack: check error writing to pack-objects subprocess
509 + sideband: avoid short write(2)
510 + unpack: replace xwrite() loop with write_in_full()
511
512 Uses of xwrite() helper have been audited and updated for better
513 error checking and simpler code.
514
515 Will merge to 'master'.
516 source: <20240302190348.3946569-1-gitster@pobox.com>
517
518
519 * jc/test-i18ngrep (2024-03-02) 1 commit
520 (merged to 'next' on 2024-03-06 at 2c57ebc706)
521 + test_i18ngrep: hard deprecate and forbid its use
522
523 With release 2.44 we got rid of all uses of test_i18ngrep and there
524 is no in-flight topic that adds a new use of it. Make a call to
525 test_i18ngrep a hard failure, so that we can remove it at the end
526 of this release cycle.
527
528 Will merge to 'master'.
529 source: <xmqq5xy4zhdc.fsf@gitster.g>
530
531
532 * gt/core-bare-in-templates (2024-03-04) 1 commit
533 (merged to 'next' on 2024-03-06 at e54ac5acf9)
534 + setup: remove unnecessary variable
535
536 Code simplification.
537
538 Will merge to 'master'.
539 source: <20240304151811.511780-1-shyamthakkar001@gmail.com>
540
541
542 * so/clean-dry-run-without-force (2024-03-04) 2 commits
543 (merged to 'next' on 2024-03-06 at ccf2e123be)
544 + clean: further clean-up of implementation around "--force"
545 + clean: improve -n and -f implementation and documentation
546
547 The implementation in "git clean" that makes "-n" and "-i" ignore
548 clean.requireForce has been simplified, together with the
549 documentation.
550
551 Will merge to 'master'.
552 source: <87le6ziqzb.fsf_-_@osv.gnss.ru>
553 source: <20240303220600.2491792-1-gitster@pobox.com>
554
555
556 * jh/trace2-missing-def-param-fix (2024-03-07) 3 commits
557 - trace2: emit 'def_param' set with 'cmd_name' event
558 - trace2: avoid emitting 'def_param' set more than once
559 - t0211: demonstrate missing 'def_param' events for certain commands
560
561 Some trace2 events that lacked def_param have learned to show it,
562 enriching the output.
563
564 Reviewed-by: Josh Steadmon <steadmon@google.com>
565 cf. <ZejkVOVQBZhLVfHW@google.com>
566
567 Will merge to 'next'.
568 source: <pull.1679.v2.git.1709824949.gitgitgadget@gmail.com>
569
570
571 * ps/reftable-stack-tempfile (2024-03-07) 4 commits
572 - reftable/stack: register compacted tables as tempfiles
573 - reftable/stack: register lockfiles during compaction
574 - reftable/stack: register new tables as tempfiles
575 - lockfile: report when rollback fails
576
577 The code in reftable backend that creates new table files works
578 better with the tempfile framework to avoid leaving cruft after a
579 failure.
580
581 Will merge to 'next'?
582 source: <cover.1709816483.git.ps@pks.im>
583
584
585 * rs/opt-parse-long-fixups (2024-03-03) 6 commits
586 - parse-options: rearrange long_name matching code
587 - parse-options: normalize arg and long_name before comparison
588 - parse-options: detect ambiguous self-negation
589 - parse-options: factor out register_abbrev() and struct parsed_option
590 - parse-options: set arg of abbreviated option lazily
591 - parse-options: recognize abbreviated negated option with arg
592
593 The parse-options code that deals with abbreviated long option
594 names have been cleaned up.
595
596 Needs review.
597 source: <20240303121944.20627-1-l.s.r@web.de>
598
599
600 * sj/t9117-path-is-file (2024-03-04) 1 commit
601 (merged to 'next' on 2024-03-04 at de5f6a74cb)
602 + t9117: prefer test_path_* helper functions
603
604 GSoC practice to replace "test -f" with "test_path_is_file".
605
606 Will merge to 'master'.
607 source: <20240304095436.56399-2-shejialuo@gmail.com>
608
609
610 * vm/t7301-use-test-path-helpers (2024-03-06) 1 commit
611 (merged to 'next' on 2024-03-07 at e638654635)
612 + t7301: use test_path_is_(missing|file)
613
614 GSoC practice to replace "test -f" with "test_path_is_file".
615
616 Will merge to 'master'.
617 source: <20240304171732.64457-2-vincenzo.mezzela@gmail.com>
618
619
620 * cw/git-std-lib (2024-02-28) 4 commits
621 . SQUASH??? get rid of apparent debugging crufts
622 . test-stdlib: show that git-std-lib is independent
623 . git-std-lib: introduce Git Standard Library
624 . pager: include stdint.h because uintmax_t is used
625
626 Split libgit.a out to a separate git-std-lib tor easier reuse.
627
628 Expecting a reroll.
629 source: <cover.1696021277.git.jonathantanmy@google.com>
630
631
632 * js/merge-base-with-missing-commit (2024-02-29) 11 commits
633 (merged to 'next' on 2024-03-01 at 3e3eabaee9)
634 + commit-reach(repo_get_merge_bases_many_dirty): pass on errors
635 + commit-reach(repo_get_merge_bases_many): pass on "missing commits" errors
636 + commit-reach(get_octopus_merge_bases): pass on "missing commits" errors
637 + commit-reach(repo_get_merge_bases): pass on "missing commits" errors
638 + commit-reach(get_merge_bases_many_0): pass on "missing commits" errors
639 + commit-reach(merge_bases_many): pass on "missing commits" errors
640 + commit-reach(paint_down_to_common): start reporting errors
641 + commit-reach(paint_down_to_common): prepare for handling shallow commits
642 + commit-reach(repo_in_merge_bases_many): report missing commits
643 + commit-reach(repo_in_merge_bases_many): optionally expect missing commits
644 + commit-reach(paint_down_to_common): plug two memory leaks
645
646 Originally merged to 'next' on 2024-02-29
647
648 Make sure failure return from merge_bases_many() is properly caught.
649
650 Needs an incremental fix-up.
651 cf.<20240301065805.GB2680308@coredump.intra.peff.net>
652 source: <pull.1657.v4.git.1709113457.gitgitgadget@gmail.com>
653
654
655 * rj/complete-worktree-paths-fix (2024-02-27) 1 commit
656 (merged to 'next' on 2024-03-06 at b6ba949383)
657 + completion: fix __git_complete_worktree_paths
658
659 The logic to complete the command line arguments to "git worktree"
660 subcommand (in contrib/) has been updated to correctly honor things
661 like "git -C dir" etc.
662
663 Will merge to 'master'.
664 source: <b8f09e20-d0d3-4e0b-afe2-31affeb61052@gmail.com>
665
666
667 * rs/t-ctype-simplify (2024-03-03) 4 commits
668 (merged to 'next' on 2024-03-04 at 9bd84a8877)
669 + t-ctype: avoid duplicating class names
670 + t-ctype: align output of i
671 + t-ctype: simplify EOF check
672 + t-ctype: allow NUL anywhere in the specification string
673
674 Code simplification to one unit-test program.
675
676 Will merge to 'master'.
677 source: <20240303101330.20187-1-l.s.r@web.de>
678
679
680 * pw/rebase-i-ignore-cherry-pick-help-environment (2024-02-27) 1 commit
681 - rebase -i: stop setting GIT_CHERRY_PICK_HELP
682
683 Code simplification by getting rid of code that sets an environment
684 variable that is no longer used.
685
686 Will merge to 'next'.
687 source: <pull.1678.git.1709042783847.gitgitgadget@gmail.com>
688
689
690 * as/option-names-in-messages (2024-03-05) 4 commits
691 (merged to 'next' on 2024-03-07 at 73ab51faba)
692 + revision.c: trivial fix to message
693 + builtin/clone.c: trivial fix of message
694 + builtin/remote.c: trivial fix of error message
695 + transport-helper.c: trivial fix of error message
696
697 Error message updates.
698
699 Will merge to 'master'.
700 source: <20240216101647.28837-1-ash@kambanaria.org>
701
702
703 * jh/fsmonitor-icase-corner-case-fix (2024-03-06) 14 commits
704 (merged to 'next' on 2024-03-06 at 356eafea7e)
705 + fsmonitor: support case-insensitive events
706 + fsmonitor: refactor bit invalidation in refresh callback
707 + fsmonitor: trace the new invalidated cache-entry count
708 + fsmonitor: return invalidated cache-entry count on non-directory event
709 + fsmonitor: remove custom loop from non-directory path handler
710 + fsmonitor: return invalidated cache-entry count on directory event
711 + fsmonitor: move untracked-cache invalidation into helper functions
712 + fsmonitor: refactor untracked-cache invalidation
713 + dir: create untracked_cache_invalidate_trimmed_path()
714 + fsmonitor: refactor refresh callback for non-directory events
715 + fsmonitor: clarify handling of directory events in callback helper
716 + fsmonitor: refactor refresh callback on directory events
717 + t7527: add case-insensitve test for FSMonitor
718 + name-hash: add index_dir_find()
719
720 FSMonitor client code was confused when FSEvents were given in a
721 different case on a case-insensitive filesystem, which has been
722 corrected.
723
724 Acked-by: Patrick Steinhardt <ps@pks.im>
725 cf. <ZehofMaSZyUq8S1N@tanuki>
726
727 Will merge to 'master'.
728 source: <pull.1662.v3.git.1708983565.gitgitgadget@gmail.com>
729
730
731 * ps/reftable-iteration-perf-part2 (2024-03-04) 13 commits
732 (merged to 'next' on 2024-03-06 at e8ba314585)
733 + refs/reftable: precompute prefix length
734 + reftable: allow inlining of a few functions
735 + reftable/record: decode keys in place
736 + reftable/record: reuse refname when copying
737 + reftable/record: reuse refname when decoding
738 + reftable/merged: avoid duplicate pqueue emptiness check
739 + reftable/merged: circumvent pqueue with single subiter
740 + reftable/merged: handle subiter cleanup on close only
741 + reftable/merged: remove unnecessary null check for subiters
742 + reftable/merged: make subiters own their records
743 + reftable/merged: advance subiter on subsequent iteration
744 + reftable/merged: make `merged_iter` structure private
745 + reftable/pq: use `size_t` to track iterator index
746 (this branch is used by ps/reftable-reflog-iteration-perf.)
747
748 The code to iterate over refs with the reftable backend has seen
749 some optimization.
750
751 Will merge to 'master'.
752 source: <cover.1709548907.git.ps@pks.im>
753
754
755 * js/cmake-with-test-tool (2024-02-23) 2 commits
756 - cmake: let `test-tool` run the unit tests, too
757 - Merge branch 'js/unit-test-suite-runner' into js/cmake-with-test-tool
758 (this branch uses js/unit-test-suite-runner.)
759
760 "test-tool" is now built in CMake build to also run the unit tests.
761
762 May want to roll it into the base topic.
763 source: <pull.1666.git.1708038924522.gitgitgadget@gmail.com>
764
765
766 * js/unit-test-suite-runner (2024-02-23) 8 commits
767 - ci: use test-tool as unit test runner on Windows
768 - t/Makefile: run unit tests alongside shell tests
769 - unit tests: add rule for running with test-tool
770 - test-tool run-command testsuite: support unit tests
771 - test-tool run-command testsuite: remove hardcoded filter
772 - test-tool run-command testsuite: get shell from env
773 - t0080: turn t-basic unit test into a helper
774 - Merge branch 'jk/unit-tests-buildfix' into js/unit-test-suite-runner
775 (this branch is used by js/cmake-with-test-tool.)
776
777 The "test-tool" has been taught to run testsuite tests in parallel,
778 bypassing the need to use the "prove" tool.
779
780 Needs review.
781 source: <cover.1708728717.git.steadmon@google.com>
782
783
784 * rj/complete-reflog (2024-03-03) 5 commits
785 (merged to 'next' on 2024-03-06 at 0f1a25debc)
786 + completion: reflog subcommands and options
787 + completion: factor out __git_resolve_builtins
788 + completion: introduce __git_find_subcommand
789 + completion: reflog show <log-options>
790 + completion: reflog with implicit "show"
791
792 The command line completion script (in contrib/) learned to
793 complete "git reflog" better.
794
795 Will merge to 'master'.
796 source: <ea6c8890-9ff3-46c9-b933-6a52083b1001@gmail.com>
797
798
799 * bk/complete-dirname-for-am-and-format-patch (2024-01-12) 1 commit
800 - completion: dir-type optargs for am, format-patch
801
802 Command line completion support (in contrib/) has been
803 updated for a few commands to complete directory names where a
804 directory name is expected.
805
806 Expecting a reroll.
807 cf. <40c3a824-a961-490b-94d4-4eb23c8f713d@gmail.com>
808 cf. <6683f24e-7e56-489d-be2d-8afe1fc38d2b@gmail.com>
809 source: <d37781c3-6af2-409b-95a8-660a9b92d20b@smtp-relay.sendinblue.com>
810
811
812 * bk/complete-send-email (2024-01-12) 1 commit
813 - completion: don't complete revs when --no-format-patch
814
815 Command line completion support (in contrib/) has been taught to
816 avoid offering revision names as candidates to "git send-email" when
817 the command is used to send pre-generated files.
818
819 Expecting a reroll.
820 cf. <CAC4O8c88Z3ZqxH2VVaNPpEGB3moL5dJcg3cOWuLWwQ_hLrJMtA@mail.gmail.com>
821 source: <a718b5ee-afb0-44bd-a299-3208fac43506@smtp-relay.sendinblue.com>
822
823
824 * la/trailer-api (2024-03-01) 9 commits
825 (merged to 'next' on 2024-03-06 at f119923ff6)
826 + format_trailers_from_commit(): indirectly call trailer_info_get()
827 + format_trailer_info(): move "fast path" to caller
828 + format_trailers(): use strbuf instead of FILE
829 + trailer_info_get(): reorder parameters
830 + trailer: move interpret_trailers() to interpret-trailers.c
831 + trailer: reorder format_trailers_from_commit() parameters
832 + trailer: rename functions to use 'trailer'
833 + shortlog: add test for de-duplicating folded trailers
834 + trailer: free trailer_info _after_ all related usage
835
836 Trailer API updates.
837
838 Acked-by: Christian Couder <christian.couder@gmail.com>
839 cf. <CAP8UFD1Zd+9q0z1JmfOf60S2vn5-sD3SafDvAJUzRFwHJKcb8A@mail.gmail.com>
840
841 Will merge to 'master'.
842 source: <pull.1632.v6.git.1709252086.gitgitgadget@gmail.com>
843
844
845 * tb/path-filter-fix (2024-01-31) 16 commits
846 - bloom: introduce `deinit_bloom_filters()`
847 - commit-graph: reuse existing Bloom filters where possible
848 - object.h: fix mis-aligned flag bits table
849 - commit-graph: new Bloom filter version that fixes murmur3
850 - commit-graph: unconditionally load Bloom filters
851 - bloom: prepare to discard incompatible Bloom filters
852 - bloom: annotate filters with hash version
853 - repo-settings: introduce commitgraph.changedPathsVersion
854 - t4216: test changed path filters with high bit paths
855 - t/helper/test-read-graph: implement `bloom-filters` mode
856 - bloom.h: make `load_bloom_filter_from_graph()` public
857 - t/helper/test-read-graph.c: extract `dump_graph_info()`
858 - gitformat-commit-graph: describe version 2 of BDAT
859 - commit-graph: ensure Bloom filters are read with consistent settings
860 - revision.c: consult Bloom filters for root commits
861 - t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()`
862
863 The Bloom filter used for path limited history traversal was broken
864 on systems whose "char" is unsigned; update the implementation and
865 bump the format version to 2.
866
867 Waiting for a final ack?
868 cf. <ZcFjkfbsBfk7JQIH@nand.local>
869 source: <cover.1706741516.git.me@ttaylorr.com>
870
871
872 * eb/hash-transition (2023-10-02) 30 commits
873 - t1016-compatObjectFormat: add tests to verify the conversion between objects
874 - t1006: test oid compatibility with cat-file
875 - t1006: rename sha1 to oid
876 - test-lib: compute the compatibility hash so tests may use it
877 - builtin/ls-tree: let the oid determine the output algorithm
878 - object-file: handle compat objects in check_object_signature
879 - tree-walk: init_tree_desc take an oid to get the hash algorithm
880 - builtin/cat-file: let the oid determine the output algorithm
881 - rev-parse: add an --output-object-format parameter
882 - repository: implement extensions.compatObjectFormat
883 - object-file: update object_info_extended to reencode objects
884 - object-file-convert: convert commits that embed signed tags
885 - object-file-convert: convert commit objects when writing
886 - object-file-convert: don't leak when converting tag objects
887 - object-file-convert: convert tag objects when writing
888 - object-file-convert: add a function to convert trees between algorithms
889 - object: factor out parse_mode out of fast-import and tree-walk into in object.h
890 - cache: add a function to read an OID of a specific algorithm
891 - tag: sign both hashes
892 - commit: export add_header_signature to support handling signatures on tags
893 - commit: convert mergetag before computing the signature of a commit
894 - commit: write commits for both hashes
895 - object-file: add a compat_oid_in parameter to write_object_file_flags
896 - object-file: update the loose object map when writing loose objects
897 - loose: compatibilty short name support
898 - loose: add a mapping between SHA-1 and SHA-256 for loose objects
899 - repository: add a compatibility hash algorithm
900 - object-names: support input of oids in any supported hash
901 - oid-array: teach oid-array to handle multiple kinds of oids
902 - object-file-convert: stubs for converting from one object format to another
903
904 Teach a repository to work with both SHA-1 and SHA-256 hash algorithms.
905
906 Will merge to and cook in 'next'.
907 cf. <xmqqv86z5359.fsf@gitster.g>
908 source: <878r8l929e.fsf@gmail.froward.int.ebiederm.org>
909
910
911 * jc/rerere-cleanup (2023-08-25) 4 commits
912 - rerere: modernize use of empty strbuf
913 - rerere: try_merge() should use LL_MERGE_ERROR when it means an error
914 - rerere: fix comment on handle_file() helper
915 - rerere: simplify check_one_conflict() helper function
916
917 Code clean-up.
918
919 Not ready to be reviewed yet.
920 source: <20230824205456.1231371-1-gitster@pobox.com>