From 01dac2f5e6bb0824250d6ad058bfc54894bb0ce3 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 10 Oct 2023 15:23:53 -0700 Subject: What's cooking (2023/10 #04) --- whats-cooking.txt | 463 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 289 insertions(+), 174 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 3509a5f742..ae2505556e 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org -Subject: What's cooking in git.git (Oct 2023, #03; Fri, 6) -X-master-at: 3a06386e314565108ad56a9bdb8f7b80ac52fb69 -X-next-at: 5fc05c94dcc1fa9e0ac97428e887ec52d78ec652 +Subject: What's cooking in git.git (Oct 2023, #04; Tue, 10) +X-master-at: aab89be2eb6ca51eefeb8c8066f673f447058856 +X-next-at: 989b7e0362472e4b4bd6a089ca4d4971fbf74bb7 Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Oct 2023, #03; Fri, 6) +What's cooking in git.git (Oct 2023, #04; Tue, 10) -------------------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -45,17 +45,256 @@ Release tarballs are available at: https://www.kernel.org/pub/software/scm/git/ +-------------------------------------------------- +[Graduated to 'master'] + +* cc/repack-sift-filtered-objects-to-separate-pack (2023-10-02) 9 commits + (merged to 'next' on 2023-10-03 at e5a4824609) + + gc: add `gc.repackFilterTo` config option + + repack: implement `--filter-to` for storing filtered out objects + + gc: add `gc.repackFilter` config option + + repack: add `--filter=` option + + pack-bitmap-write: rebuild using new bitmap when remapping + + repack: refactor finding pack prefix + + repack: refactor finishing pack-objects command + + t/helper: add 'find-pack' test-tool + + pack-objects: allow `--filter` without `--stdout` + + "git repack" machinery learns to pay attention to the "--filter=" + option. + cf. + source: <20231002165504.1325153-1-christian.couder@gmail.com> + + +* cw/prelim-cleanup (2023-09-29) 4 commits + (merged to 'next' on 2023-10-03 at 5985929612) + + parse: separate out parsing functions from config.h + + config: correct bad boolean env value error message + + wrapper: reduce scope of remove_or_warn() + + hex-ll: separate out non-hash-algo functions + + Shuffle some bits across headers and sources to prepare for + libification effort. + source: + + +* ds/init-diffstat-width (2023-09-29) 1 commit + (merged to 'next' on 2023-10-03 at 18383ac895) + + diff --stat: set the width defaults in a helper function + + Code clean-up. + source: + + +* eb/limit-bulk-checkin-to-blobs (2023-09-26) 1 commit + (merged to 'next' on 2023-10-02 at 89c9c95966) + + bulk-checkin: only support blobs in index_bulk_checkin + + The "streaming" interface used for bulk-checkin codepath has been + narrowed to take only blob objects for now, with no real loss of + functionality. + source: <87msx99b9o.fsf_-_@gmail.froward.int.ebiederm.org> + -------------------------------------------------- [New Topics] -* jc/merge-ort-attr-index-fix (2023-10-05) 1 commit - - merge-ort: initialize repo in index state +* ak/pretty-decorate-more-fix (2023-10-09) 1 commit + - pretty: fix ref filtering for %(decorate) formats + + Unlike "git log --pretty=%D", "git log --pretty="%(decorate)" did + not auto-initialize the decoration subsystem, which has been + corrected. + + Will merge to 'next'? + source: <20231008202307.1568477-1-andy.koppe@gmail.com> + + +* en/docfixes (2023-10-09) 25 commits + - documentation: add missing parenthesis + - documentation: add missing quotes + - documentation: add missing fullstops + - documentation: add some commas where they are helpful + - documentation: fix whitespace issues + - documentation: fix capitalization + - documentation: fix punctuation + - documentation: use clearer prepositions + - documentation: add missing hyphens + - documentation: remove unnecessary hyphens + - documentation: add missing article + - documentation: fix choice of article + - documentation: whitespace is already generally plural + - documentation: fix singular vs. plural + - documentation: fix verb vs. noun + - documentation: fix adjective vs. noun + - documentation: fix verb tense + - documentation: employ consistent verb tense for a list + - documentation: fix subject/verb agreement + - documentation: remove extraneous words + - documentation: add missing words + - documentation: fix apostrophe usage + - documentation: fix typos + - documentation: fix small error + - documentation: wording improvements + + Documentation typo and grammo fixes. + + Needs review. + source: + + +* kn/rev-list-missing-fix (2023-10-09) 3 commits + - rev-list: add commit object support in `--missing` option + - rev-list: move `show_commit()` to the bottom + - revision: rename bit to `do_not_die_on_missing_objects` + + "git rev-list --missing" did not work for missing commit objects, + which has been corrected. + + Needs review. + source: <20231009105528.17777-1-karthik.188@gmail.com> + + +* sn/cat-file-doc-update (2023-10-09) 1 commit + (merged to 'next' on 2023-10-10 at 6719ba7bd4) + + doc/cat-file: make synopsis and description less confusing + + "git cat-file" documentation updates. + + Will merge to 'master'. + source: <20231009175604.2361700-1-stepnem@smrk.net> + + +* xz/commit-title-soft-limit-doc (2023-10-09) 1 commit + (merged to 'next' on 2023-10-10 at 0bf3d9ed51) + + doc: correct the 50 characters soft limit (+) + + Doc update. + + Will merge to 'master'. + source: + + +* jk/chunk-bounds (2023-10-09) 20 commits + (merged to 'next' on 2023-10-10 at 21139603ce) + + chunk-format: drop pair_chunk_unsafe() + + commit-graph: detect out-of-order BIDX offsets + + commit-graph: check bounds when accessing BIDX chunk + + commit-graph: check bounds when accessing BDAT chunk + + commit-graph: bounds-check generation overflow chunk + + commit-graph: check size of generations chunk + + commit-graph: bounds-check base graphs chunk + + commit-graph: detect out-of-bounds extra-edges pointers + + commit-graph: check size of commit data chunk + + midx: check size of revindex chunk + + midx: bounds-check large offset chunk + + midx: check size of object offset chunk + + midx: enforce chunk alignment on reading + + midx: check size of pack names chunk + + commit-graph: check consistency of fanout table + + midx: check size of oid lookup chunk + + commit-graph: check size of oid fanout chunk + + midx: stop ignoring malformed oid fanout chunk + + t: add library for munging chunk-format files + + chunk-format: note that pair_chunk() is unsafe + + The codepaths that read "chunk" formatted files have been corrected + to pay attention to the chunk size and notice broken files. + + Will merge to 'master'. + source: <20231009205544.GA3281950@coredump.intra.peff.net> + + +* ps/rewritten-is-per-worktree-doc (2023-10-10) 1 commit + - doc/git-worktree: mention "refs/rewritten" as per-worktree refs + + Doc update. + + Will merge to 'next'. + source: <985ac850eb6e60ae76601acc8bfbcd56f99348b4.1696935657.git.ps@pks.im> + +-------------------------------------------------- +[Stalled] + +* tb/path-filter-fix (2023-08-30) 15 commits + - bloom: introduce `deinit_bloom_filters()` + - commit-graph: reuse existing Bloom filters where possible + - object.h: fix mis-aligned flag bits table + - commit-graph: drop unnecessary `graph_read_bloom_data_context` + - commit-graph.c: unconditionally load Bloom filters + - t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()` + - bloom: prepare to discard incompatible Bloom filters + - bloom: annotate filters with hash version + - commit-graph: new filter ver. that fixes murmur3 + - repo-settings: introduce commitgraph.changedPathsVersion + - t4216: test changed path filters with high bit paths + - t/helper/test-read-graph: implement `bloom-filters` mode + - bloom.h: make `load_bloom_filter_from_graph()` public + - t/helper/test-read-graph.c: extract `dump_graph_info()` + - gitformat-commit-graph: describe version 2 of BDAT + + The Bloom filter used for path limited history traversal was broken + on systems whose "char" is unsigned; update the implementation and + bump the format version to 2. + + Reroll exists, not picked up yet. + cf. <20230830200218.GA5147@szeder.dev> + cf. <20230901205616.3572722-1-jonathantanmy@google.com> + cf. <20230924195900.GA1156862@szeder.dev> + cf. <20231008143523.GA18858@szeder.dev> + source: + + +* pw/rebase-sigint (2023-09-07) 1 commit + - rebase -i: ignore signals when forking subprocesses + + If the commit log editor or other external programs (spawned via + "exec" insn in the todo list) receive internactive signal during + "git rebase -i", it caused not just the spawned program but the + "Git" process that spawned them, which is often not what the end + user intended. "git" learned to ignore SIGINT and SIGQUIT while + waiting for these subprocesses. + + Expecting a reroll. + cf. <12c956ea-330d-4441-937f-7885ab519e26@gmail.com> + source: + + +* tk/cherry-pick-sequence-requires-clean-worktree (2023-06-01) 1 commit + - cherry-pick: refuse cherry-pick sequence if index is dirty + + "git cherry-pick A" that replays a single commit stopped before + clobbering local modification, but "git cherry-pick A..B" did not, + which has been corrected. + + Expecting a reroll. + cf. <999f12b2-38d6-f446-e763-4985116ad37d@gmail.com> + source: + + +* jc/diff-cached-fsmonitor-fix (2023-09-15) 3 commits + - diff-lib: fix check_removed() when fsmonitor is active + - Merge branch 'jc/fake-lstat' into jc/diff-cached-fsmonitor-fix + - Merge branch 'js/diff-cached-fsmonitor-fix' into jc/diff-cached-fsmonitor-fix + (this branch uses jc/fake-lstat.) + + The optimization based on fsmonitor in the "diff --cached" + codepath is resurrected with the "fake-lstat" introduced earlier. + + It is unknown if the optimization is worth resurrecting, but in case... + source: + +-------------------------------------------------- +[Cooking] + +* jc/merge-ort-attr-index-fix (2023-10-09) 1 commit + (merged to 'next' on 2023-10-10 at b139b87502) + + merge-ort: initialize repo in index state Fix "git merge-tree" to stop segfaulting when the --attr-source option is used. - Waiting for review response. - source: + Will merge to 'master'. + source: * jk/decoration-and-other-leak-fixes (2023-10-05) 3 commits @@ -84,7 +323,7 @@ Release tarballs are available at: source: <20231003082107.3002173-1-stepnem@smrk.net> -* so/diff-merges-dd (2023-10-05) 3 commits +* so/diff-merges-dd (2023-10-09) 3 commits - completion: complete '--dd' - diff-merges: introduce '--dd' option - diff-merges: improve --diff-merges documentation @@ -92,12 +331,11 @@ Release tarballs are available at: "git log" and friends learned "--dd" that is a short-hand for "--diff-merges=first-parent -p". - Expecting a reroll. - cf. <871qe7r3rk.fsf@osv.gnss.ru> - source: <20231004214558.210339-1-sorganov@gmail.com> + Will merge to 'next'? + source: <20231009160535.236523-1-sorganov@gmail.com> -* vd/loose-ref-iteration-optimization (2023-10-06) 4 commits +* vd/loose-ref-iteration-optimization (2023-10-09) 4 commits - files-backend.c: avoid stat in 'loose_fill_ref_dir' - dir.[ch]: add 'follow_symlink' arg to 'get_dtype' - dir.[ch]: expose 'get_dtype' @@ -105,83 +343,41 @@ Release tarballs are available at: The code to iterate over loose references have been optimized to reduce the number of lstat() system calls. - source: + + Will merge to 'next'? + source: * jc/update-list-references-to-lore (2023-10-06) 1 commit - doc: update list archive reference to use lore.kernel.org + Doc update. + + Needs review. source: --------------------------------------------------- -[Stalled] -* cc/git-replay (2023-09-07) 15 commits +* cc/git-replay (2023-10-10) 14 commits - replay: stop assuming replayed branches do not diverge - replay: add --contained to rebase contained branches - replay: add --advance or 'cherry-pick' mode - - replay: disallow revision specific options and pathspecs - replay: use standard revision ranges - replay: make it a minimal server side command - replay: remove HEAD related sanity check - replay: remove progress and info output - replay: add an important FIXME comment about gpg signing - - replay: don't simplify history + - replay: change rev walking options - replay: introduce pick_regular_commit() - replay: die() instead of failing assert() - replay: start using parse_options API - replay: introduce new builtin - t6429: remove switching aspects of fast-rebase - Waiting for review response. - cf. <52277471-4ddd-b2e0-62ca-c2a5b59ae418@gmx.de> - cf. <58daa706-7efb-51dd-9061-202ef650b96a@gmx.de> - cf. - source: <20230907092521.733746-1-christian.couder@gmail.com> - - -* pw/rebase-sigint (2023-09-07) 1 commit - - rebase -i: ignore signals when forking subprocesses - - If the commit log editor or other external programs (spawned via - "exec" insn in the todo list) receive internactive signal during - "git rebase -i", it caused not just the spawned program but the - "Git" process that spawned them, which is often not what the end - user intended. "git" learned to ignore SIGINT and SIGQUIT while - waiting for these subprocesses. - - Expecting a reroll. - cf. <12c956ea-330d-4441-937f-7885ab519e26@gmail.com> - source: + Introduce "git replay", a tool meant on the server side without + working tree to recreate a history. + source: <20231010123847.2777056-1-christian.couder@gmail.com> -* tk/cherry-pick-sequence-requires-clean-worktree (2023-06-01) 1 commit - - cherry-pick: refuse cherry-pick sequence if index is dirty - - "git cherry-pick A" that replays a single commit stopped before - clobbering local modification, but "git cherry-pick A..B" did not, - which has been corrected. - - Expecting a reroll. - cf. <999f12b2-38d6-f446-e763-4985116ad37d@gmail.com> - source: - - -* jc/diff-cached-fsmonitor-fix (2023-09-15) 3 commits - - diff-lib: fix check_removed() when fsmonitor is active - - Merge branch 'jc/fake-lstat' into jc/diff-cached-fsmonitor-fix - - Merge branch 'js/diff-cached-fsmonitor-fix' into jc/diff-cached-fsmonitor-fix - (this branch uses jc/fake-lstat.) - - The optimization based on fsmonitor in the "diff --cached" - codepath is resurrected with the "fake-lstat" introduced earlier. - - It is unknown if the optimization is worth resurrecting, but in case... - source: - --------------------------------------------------- -[Cooking] - * jk/commit-graph-leak-fixes (2023-10-03) 10 commits (merged to 'next' on 2023-10-06 at 5d202ef8b9) + commit-graph: clear oidset after finishing write @@ -221,7 +417,9 @@ Release tarballs are available at: source: -* tb/repack-max-cruft-size (2023-10-05) 4 commits +* tb/repack-max-cruft-size (2023-10-09) 5 commits + (merged to 'next' on 2023-10-09 at 38f039e880) + + repack: free existing_cruft array after use (merged to 'next' on 2023-10-06 at b3ca6df3b9) + builtin/repack.c: avoid making cruft packs preferred + builtin/repack.c: implement support for `--max-cruft-size` @@ -233,6 +431,7 @@ Release tarballs are available at: Will merge to 'master'. source: + source: <20231007172031.GA1524950@coredump.intra.peff.net> source: <035393935108d02aaf8927189b05102f4f74f340.1696370003.git.me@ttaylorr.com> @@ -252,7 +451,7 @@ Release tarballs are available at: The attribute subsystem learned to honor `attr.tree` configuration that specifies which tree to read the .gitattributes files from. - Needs review. + Reroll exists, but not picked up (a review sent). source: @@ -278,30 +477,6 @@ Release tarballs are available at: source: <0a0a157f88321d25fdb0be771a454b3410a449f3.camel@archlinux.org> -* cw/prelim-cleanup (2023-09-29) 4 commits - (merged to 'next' on 2023-10-03 at 5985929612) - + parse: separate out parsing functions from config.h - + config: correct bad boolean env value error message - + wrapper: reduce scope of remove_or_warn() - + hex-ll: separate out non-hash-algo functions - - Shuffle some bits across headers and sources to prepare for - libification effort. - - Will merge to 'master'. - source: - - -* ds/init-diffstat-width (2023-09-29) 1 commit - (merged to 'next' on 2023-10-03 at 18383ac895) - + diff --stat: set the width defaults in a helper function - - Code clean-up. - - Will merge to 'master'. - source: - - * ar/diff-index-merge-base-fix (2023-10-02) 1 commit (merged to 'next' on 2023-10-06 at 0ff4dfc0e1) + diff: fix --merge-base with annotated tags @@ -315,18 +490,6 @@ Release tarballs are available at: source: <20231001151845.3621551-1-hi@alyssa.is> -* eb/limit-bulk-checkin-to-blobs (2023-09-26) 1 commit - (merged to 'next' on 2023-10-02 at 89c9c95966) - + bulk-checkin: only support blobs in index_bulk_checkin - - The "streaming" interface used for bulk-checkin codepath has been - narrowed to take only blob objects for now, with no real loss of - functionality. - - Will merge to 'master'. - source: <87msx99b9o.fsf_-_@gmail.froward.int.ebiederm.org> - - * js/update-urls-in-doc-and-comment (2023-09-26) 4 commits - doc: refer to internet archive - doc: update links for andre-simon.de @@ -421,7 +584,8 @@ Release tarballs are available at: "git merge-tree" learned to take strategy backend specific options via the "-X" option, like "git merge" does. - Will merge to 'master'. + Hold. There is an unwanted structure copying going on. + cf. source: @@ -465,18 +629,6 @@ Release tarballs are available at: source: -* kn/rev-list-ignore-missing-links (2023-09-20) 1 commit - - revision: add `--ignore-missing-links` user option - - Surface the .ignore_missing_links bit that stops the revision - traversal from stopping and dying when encountering a missing - object to a new command line option of "git rev-list", so that the - objects that are required but are missing can be enumerated. - - What's the status of this thing? - source: <20230920104507.21664-1-karthik.188@gmail.com> - - * rs/parse-options-value-int (2023-09-18) 2 commits - parse-options: use and require int pointer for OPT_CMDMODE - parse-options: add int value pointer to struct option @@ -484,30 +636,11 @@ Release tarballs are available at: A bit of type safety for the "value" pointer used in the parse-options API. - What's the status of this thing? + Not ready yet. + cf. <4014e490-c6c1-453d-b0ed-645220e3e614@web.de> source: -* cc/repack-sift-filtered-objects-to-separate-pack (2023-10-02) 9 commits - (merged to 'next' on 2023-10-03 at e5a4824609) - + gc: add `gc.repackFilterTo` config option - + repack: implement `--filter-to` for storing filtered out objects - + gc: add `gc.repackFilter` config option - + repack: add `--filter=` option - + pack-bitmap-write: rebuild using new bitmap when remapping - + repack: refactor finding pack prefix - + repack: refactor finishing pack-objects command - + t/helper: add 'find-pack' test-tool - + pack-objects: allow `--filter` without `--stdout` - - "git repack" machinery learns to pay attention to the "--filter=" - option. - - Will merge to 'master'. - cf. - source: <20231002165504.1325153-1-christian.couder@gmail.com> - - * la/trailer-test-and-doc-updates (2023-09-07) 13 commits (merged to 'next' on 2023-10-06 at 69fef35819) + trailer doc: is a or , not both @@ -530,20 +663,19 @@ Release tarballs are available at: source: -* js/doc-unit-tests (2023-08-17) 3 commits +* js/doc-unit-tests (2023-10-09) 3 commits - ci: run unit tests in CI - unit tests: add TAP unit test framework - - unit tests: Add a project plan document + - unit tests: add a project plan document (this branch is used by js/doc-unit-tests-with-cmake.) Process to add some form of low-level unit tests has started. - Expecting a reroll. - cf. <0b6de919-8dbf-454f-807b-5abb64388cb7@gmail.com> - source: + Will merge to 'next'? + source: -* js/doc-unit-tests-with-cmake (2023-09-25) 7 commits +* js/doc-unit-tests-with-cmake (2023-10-09) 7 commits - cmake: handle also unit tests - cmake: use test names instead of full paths - cmake: fix typo in variable name @@ -555,39 +687,10 @@ Release tarballs are available at: Update the base topic to work with CMake builds. - Expecting a reroll. - cf. + Needs review. source: -* tb/path-filter-fix (2023-08-30) 15 commits - - bloom: introduce `deinit_bloom_filters()` - - commit-graph: reuse existing Bloom filters where possible - - object.h: fix mis-aligned flag bits table - - commit-graph: drop unnecessary `graph_read_bloom_data_context` - - commit-graph.c: unconditionally load Bloom filters - - t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()` - - bloom: prepare to discard incompatible Bloom filters - - bloom: annotate filters with hash version - - commit-graph: new filter ver. that fixes murmur3 - - repo-settings: introduce commitgraph.changedPathsVersion - - t4216: test changed path filters with high bit paths - - t/helper/test-read-graph: implement `bloom-filters` mode - - bloom.h: make `load_bloom_filter_from_graph()` public - - t/helper/test-read-graph.c: extract `dump_graph_info()` - - gitformat-commit-graph: describe version 2 of BDAT - - The Bloom filter used for path limited history traversal was broken - on systems whose "char" is unsigned; update the implementation and - bump the format version to 2. - - What's the status of this thing? - cf. <20230830200218.GA5147@szeder.dev> - cf. <20230901205616.3572722-1-jonathantanmy@google.com> - cf. <20230924195900.GA1156862@szeder.dev> - source: - - * jc/rerere-cleanup (2023-08-25) 4 commits - rerere: modernize use of empty strbuf - rerere: try_merge() should use LL_MERGE_ERROR when it means an error @@ -645,3 +748,15 @@ Release tarballs are available at: Superseded by the so/diff-merges-dd topic. source: <20230909125446.142715-1-sorganov@gmail.com> + + +* kn/rev-list-ignore-missing-links (2023-09-20) 1 commit + . revision: add `--ignore-missing-links` user option + + Surface the .ignore_missing_links bit that stops the revision + traversal from stopping and dying when encountering a missing + object to a new command line option of "git rev-list", so that the + objects that are required but are missing can be enumerated. + + Superseded by kn/rev-list-missing-fix + source: <20230920104507.21664-1-karthik.188@gmail.com> -- cgit v1.2.3