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
7 What's cooking in git.git (Mar 2024, #02; Thu, 7)
8 --------------------------------------------------
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
20 The 'maint' branch now points at the 2.44 maintenance track.
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.
26 With maint, master, next, seen, todo:
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/
34 With all the integration branches and topics broken out:
36 https://github.com/gitster/git/
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
43 git://git.kernel.org/pub/scm/git/git-htmldocs.git/
44 https://github.com/gitster/git-htmldocs.git/
46 Release tarballs are available at:
48 https://www.kernel.org/pub/software/scm/git/
50 --------------------------------------------------
51 [Graduated to 'master']
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
57 Originally merged to 'next' on 2024-02-27
60 source: <pull.1676.git.1709015578890.gitgitgadget@gmail.com>
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()
72 Originally merged to 'next' on 2024-02-28
74 "git rev-list --missing=print" has learned to optionally take
75 "--allow-missing-tips", which allows the objects at the starting
77 source: <20240214142513.4002639-1-christian.couder@gmail.com>
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
84 Originally merged to 'next' on 2024-02-29
86 Code clean-up practice.
87 source: <20240229194444.8499-2-giganteeugenio2@gmail.com>
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
94 Originally merged to 'next' on 2024-02-27
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>
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>
105 Originally merged to 'next' on 2024-02-26
107 Header file clean-up.
108 source: <xmqqwmqtli18.fsf@gitster.g>
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
117 Originally merged to 'next' on 2024-02-29
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
122 source: <xmqq1q8xx38i.fsf@gitster.g>
123 source: <xmqq1q9cl3xv.fsf@gitster.g>
124 source: <xmqq1q9mmtpw.fsf@gitster.g>
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"
133 Originally merged to 'next' on 2024-02-27
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>
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
144 Originally merged to 'next' on 2024-02-26
146 The code incorrectly attempted to use textconv cache when asked,
147 even when we are not running in a repository, which has been
149 source: <20240226102729.GB2685773@coredump.intra.peff.net>
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
164 Originally merged to 'next' on 2024-02-29
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
169 source: <20240228223700.GA1157826@coredump.intra.peff.net>
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
179 Originally merged to 'next' on 2024-02-29
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>
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
197 Originally merged to 'next' on 2024-02-28
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>
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
209 Originally merged to 'next' on 2024-02-26
211 Remove an empty file that shouldn't have been added in the first
213 source: <pull.1674.git.1708958183225.gitgitgadget@gmail.com>
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
221 Originally merged to 'next' on 2024-02-29
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>
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
237 Originally merged to 'next' on 2024-02-27
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>
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
249 Originally merged to 'next' on 2024-02-29
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>
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
260 Originally merged to 'next' on 2024-02-27
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>
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.)
274 Originally merged to 'next' on 2024-02-29
276 Clear the fallout from a fix for 2.44 regression.
277 source: <95be968e10bd02c64448786e690bbefe5c082577.1709041721.git.ps@pks.im>
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.)
285 Originally merged to 'next' on 2024-02-29
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>
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()
297 Originally merged to 'next' on 2024-02-27
300 source: <cb94b938-03f9-4dd3-84c1-f5244ca81be3@web.de>
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()
308 Originally merged to 'next' on 2024-02-27
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>
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
319 Originally merged to 'next' on 2024-02-27
322 source: <8cd983fb-32b9-41c6-a9e7-a485b190488c@web.de>
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
329 Originally merged to 'next' on 2024-02-27
331 An error message from "git upload-pack", which responds to "git
332 fetch" requests, had a trialing NUL in it, which has been
334 source: <20240225183452.1939334-1-szeder.dev@gmail.com>
336 --------------------------------------------------
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
343 GSoC practice to modernize a test script.
345 Will merge to 'master'.
346 source: <pull.1675.v3.git.1709676557639.gitgitgadget@gmail.com>
349 * fs/find-end-of-log-message-fix (2024-03-07) 1 commit
350 - wt-status: don't find scissors line beyond buf len
352 The code to find the effective end of log message can fall into an
353 endless loop, which has been corrected.
355 Waiting for review response.
356 source: <20240307183743.219951-1-flosch@nutanix.com>
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).
363 Platform specific tweaks for OS/390 has been added to
366 Will merge to 'master'.
367 source: <pull.1663.v4.git.git.1709703857881.gitgitgadget@gmail.com>
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
387 core.commentChar used to be limited to a single byte, but has been
388 updated to allow an arbitrary multi-byte sequence.
390 Will merge to 'next'?
391 source: <20240307091407.GA2072522@coredump.intra.peff.net>
394 * jk/doc-remote-helpers-markup-fix (2024-03-07) 1 commit
395 - doc/gitremote-helpers: fix missing single-quote
399 Will merge to 'next'.
400 source: <20240307084313.GA2072022@coredump.intra.peff.net>
403 * js/build-fuzz-more-often (2024-03-05) 3 commits
405 - fuzz: link fuzz programs with `make all` on Linux
406 - ci: also define CXX environment variable
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.
413 source: <cover.1709673020.git.steadmon@google.com>
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
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.
428 Will merge to 'master'.
429 source: <cover.1709670287.git.code@khaugsbakk.name>
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
436 The "core.commentChar" configuration variable only allows an ASCII
437 character, which was not clearly documented, which has been
440 Will merge to 'master'.
441 source: <9633f9be5ddd9ab3df4b79ee934e1ed47e90bd1d.1709656683.git.code@khaugsbakk.name>
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
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
453 Will merge to 'next'?
454 source: <cover.1709843663.git.ps@pks.im>
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.)
468 The code to iterate over reflogs in the reftable has been optimized
469 to reduce memory allocation and deallocation.
472 source: <cover.1709640322.git.ps@pks.im>
475 * sj/userdiff-c-sharp (2024-03-06) 1 commit
476 - userdiff: better method/property matching for C#
478 The userdiff patterns for C# has been updated.
481 source: <pull.1682.v2.git.git.1709756493673.gitgitgadget@gmail.com>
483 --------------------------------------------------
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
492 Will merge to 'master'.
493 source: <20240229190229.20222-1-ericsunshine@charter.net>
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”
502 Will merge to 'master'.
503 source: <5b34bc4e22816f7f19bd26c15a08fe4c749b72f8.1709316230.git.code@khaugsbakk.name>
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()
512 Uses of xwrite() helper have been audited and updated for better
513 error checking and simpler code.
515 Will merge to 'master'.
516 source: <20240302190348.3946569-1-gitster@pobox.com>
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
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.
528 Will merge to 'master'.
529 source: <xmqq5xy4zhdc.fsf@gitster.g>
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
538 Will merge to 'master'.
539 source: <20240304151811.511780-1-shyamthakkar001@gmail.com>
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
547 The implementation in "git clean" that makes "-n" and "-i" ignore
548 clean.requireForce has been simplified, together with the
551 Will merge to 'master'.
552 source: <87le6ziqzb.fsf_-_@osv.gnss.ru>
553 source: <20240303220600.2491792-1-gitster@pobox.com>
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
561 Some trace2 events that lacked def_param have learned to show it,
562 enriching the output.
564 Reviewed-by: Josh Steadmon <steadmon@google.com>
565 cf. <ZejkVOVQBZhLVfHW@google.com>
567 Will merge to 'next'.
568 source: <pull.1679.v2.git.1709824949.gitgitgadget@gmail.com>
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
577 The code in reftable backend that creates new table files works
578 better with the tempfile framework to avoid leaving cruft after a
581 Will merge to 'next'?
582 source: <cover.1709816483.git.ps@pks.im>
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
593 The parse-options code that deals with abbreviated long option
594 names have been cleaned up.
597 source: <20240303121944.20627-1-l.s.r@web.de>
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
604 GSoC practice to replace "test -f" with "test_path_is_file".
606 Will merge to 'master'.
607 source: <20240304095436.56399-2-shejialuo@gmail.com>
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)
614 GSoC practice to replace "test -f" with "test_path_is_file".
616 Will merge to 'master'.
617 source: <20240304171732.64457-2-vincenzo.mezzela@gmail.com>
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
626 Split libgit.a out to a separate git-std-lib tor easier reuse.
629 source: <cover.1696021277.git.jonathantanmy@google.com>
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
646 Originally merged to 'next' on 2024-02-29
648 Make sure failure return from merge_bases_many() is properly caught.
650 Needs an incremental fix-up.
651 cf.<20240301065805.GB2680308@coredump.intra.peff.net>
652 source: <pull.1657.v4.git.1709113457.gitgitgadget@gmail.com>
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
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.
663 Will merge to 'master'.
664 source: <b8f09e20-d0d3-4e0b-afe2-31affeb61052@gmail.com>
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
674 Code simplification to one unit-test program.
676 Will merge to 'master'.
677 source: <20240303101330.20187-1-l.s.r@web.de>
680 * pw/rebase-i-ignore-cherry-pick-help-environment (2024-02-27) 1 commit
681 - rebase -i: stop setting GIT_CHERRY_PICK_HELP
683 Code simplification by getting rid of code that sets an environment
684 variable that is no longer used.
686 Will merge to 'next'.
687 source: <pull.1678.git.1709042783847.gitgitgadget@gmail.com>
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
697 Error message updates.
699 Will merge to 'master'.
700 source: <20240216101647.28837-1-ash@kambanaria.org>
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()
720 FSMonitor client code was confused when FSEvents were given in a
721 different case on a case-insensitive filesystem, which has been
724 Acked-by: Patrick Steinhardt <ps@pks.im>
725 cf. <ZehofMaSZyUq8S1N@tanuki>
727 Will merge to 'master'.
728 source: <pull.1662.v3.git.1708983565.gitgitgadget@gmail.com>
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.)
748 The code to iterate over refs with the reftable backend has seen
751 Will merge to 'master'.
752 source: <cover.1709548907.git.ps@pks.im>
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.)
760 "test-tool" is now built in CMake build to also run the unit tests.
762 May want to roll it into the base topic.
763 source: <pull.1666.git.1708038924522.gitgitgadget@gmail.com>
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.)
777 The "test-tool" has been taught to run testsuite tests in parallel,
778 bypassing the need to use the "prove" tool.
781 source: <cover.1708728717.git.steadmon@google.com>
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"
792 The command line completion script (in contrib/) learned to
793 complete "git reflog" better.
795 Will merge to 'master'.
796 source: <ea6c8890-9ff3-46c9-b933-6a52083b1001@gmail.com>
799 * bk/complete-dirname-for-am-and-format-patch (2024-01-12) 1 commit
800 - completion: dir-type optargs for am, format-patch
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.
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>
812 * bk/complete-send-email (2024-01-12) 1 commit
813 - completion: don't complete revs when --no-format-patch
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.
820 cf. <CAC4O8c88Z3ZqxH2VVaNPpEGB3moL5dJcg3cOWuLWwQ_hLrJMtA@mail.gmail.com>
821 source: <a718b5ee-afb0-44bd-a299-3208fac43506@smtp-relay.sendinblue.com>
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
838 Acked-by: Christian Couder <christian.couder@gmail.com>
839 cf. <CAP8UFD1Zd+9q0z1JmfOf60S2vn5-sD3SafDvAJUzRFwHJKcb8A@mail.gmail.com>
841 Will merge to 'master'.
842 source: <pull.1632.v6.git.1709252086.gitgitgadget@gmail.com>
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()`
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.
867 Waiting for a final ack?
868 cf. <ZcFjkfbsBfk7JQIH@nand.local>
869 source: <cover.1706741516.git.me@ttaylorr.com>
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
904 Teach a repository to work with both SHA-1 and SHA-256 hash algorithms.
906 Will merge to and cook in 'next'.
907 cf. <xmqqv86z5359.fsf@gitster.g>
908 source: <878r8l929e.fsf@gmail.froward.int.ebiederm.org>
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
919 Not ready to be reviewed yet.
920 source: <20230824205456.1231371-1-gitster@pobox.com>