diff --git a/whats-cooking.txt b/whats-cooking.txt index 0feb7048b7..bbb1c76662 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 (Sep 2023, #02; Tue, 5) -X-master-at: 1fc548b2d6a3596f3e1c1f8b1930d8dbd1e30bf3 -X-next-at: b48617a3a5a37018fe707db5c6041699c4579ab7 +Subject: What's cooking in git.git (Sep 2023, #03; Fri, 8) +X-master-at: 94e83dcf5b5faaa22e32729305f8fd7090bfdfed +X-next-at: 461bb28fbd1decdee16a6abbeec79832ca32638f Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Sep 2023, #02; Tue, 5) +What's cooking in git.git (Sep 2023, #03; Fri, 8) -------------------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -48,198 +48,6 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* jk/test-lsan-denoise-output (2023-08-28) 1 commit - (merged to 'next' on 2023-08-29 at 9642d76264) - + test-lib: ignore uninteresting LSan output - - Tests with LSan from time to time seem to emit harmless message - that makes our tests unnecessarily flakey; we work it around by - filtering the uninteresting output. - source: <20230828183735.GA3015072@coredump.intra.peff.net> - - -* js/ci-san-skip-p4-and-svn-tests (2023-08-29) 1 commit - (merged to 'next' on 2023-08-29 at 9617f99668) - + ci(linux-asan-ubsan): let's save some time - - Flakey "git p4" tests, as well as "git svn" tests, are now skipped - in the (rather expensive) sanitizer CI job. - source: - - -* rs/parse-options-help-text-is-optional (2023-08-28) 1 commit - (merged to 'next' on 2023-08-29 at 5466f7fcb2) - + parse-options: allow omitting option help text - - It may be tempting to leave the help text NULL for a command line - option that is either hidden or too obvious, but "git subcmd -h" - and "git subcmd --help-all" would have segfaulted if done so. Now - the help text is optional. - source: <2b08dc43-621d-2170-c4a6-c2aac33a9a19@web.de> - - -* tb/mark-more-tests-as-leak-free (2023-08-29) 3 commits - (merged to 'next' on 2023-08-29 at c1db288281) - + leak tests: mark t5583-push-branches.sh as leak-free - + leak tests: mark t3321-notes-stripspace.sh as leak-free - + leak tests: mark a handful of tests as leak-free - - Tests that are known to pass with LSan are now marked as such. - source: - --------------------------------------------------- -[New Topics] - -* bc/more-git-var (2023-09-05) 1 commit - - var: avoid a segmentation fault when `HOME` is unset - - source: - - -* ks/ref-filter-sort-numerically (2023-09-05) 1 commit - - ref-filter: sort numerically when ":size" is used - - source: <20230902090155.8978-1-five231003@gmail.com> - - -* ob/sequencer-reword-error-message (2023-09-05) 1 commit - - sequencer: fix error message on failure to copy SQUASH_MSG - - source: <20230903151132.739136-1-oswald.buddenhagen@gmx.de> - - -* rs/grep-parseopt-simplify (2023-09-05) 1 commit - - grep: use OPT_INTEGER_F for --max-depth - - source: <4d2eb736-4f34-18f8-2eb7-20e7f7b8c2f8@web.de> - - -* rs/name-rev-use-opt-hidden-bool (2023-09-05) 1 commit - - name-rev: use OPT_HIDDEN_BOOL for --peel-tag - - source: <5a86c8f8-fcdc-fee9-8af5-aa5ecb036d2e@web.de> - --------------------------------------------------- -[Stalled] - -* la/trailer-cleanups (2023-08-06) 5 commits - - trailer: rename *_DEFAULT enums to *_UNSPECIFIED - - trailer: teach find_patch_start about --no-divider - - trailer: split process_command_line_args into separate functions - - trailer: split process_input_file into separate pieces - - trailer: separate public from internal portion of trailer_iterator - - Code clean-up. - - Expecting a reroll. - cf. - source: - - -* la/trailer-test-and-doc-updates (2023-08-10) 14 commits - - SQUASH??? - - trailer doc: is a or , not both - - trailer doc: separator within key suppresses default separator - - trailer doc: emphasize the effect of configuration variables - - trailer --unfold help: prefer "reformat" over "join" - - trailer --parse docs: add explanation for its usefulness - - trailer --only-input: prefer "configuration variables" over "rules" - - trailer --parse help: expose aliased options - - trailer --no-divider help: describe usual "---" meaning - - trailer: trailer location is a place, not an action - - trailer doc: narrow down scope of --where and related flags - - trailer: add tests to check defaulting behavior with --no-* flags - - trailer test description: this tests --where=after, not --where=before - - trailer tests: make test cases self-contained - - Test coverage for trailers has been improved. - - Expecting a reroll. - cf. - source: - - -* js/doc-unit-tests (2023-08-17) 3 commits - - ci: run unit tests in CI - - unit tests: add TAP unit test framework - - 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. - - Comments? - source: - - -* ak/pretty-decorate-more (2023-08-21) 8 commits - - decorate: use commit color for HEAD arrow - - pretty: add pointer and tag options to %(decorate) - - pretty: add %(decorate[:]) format - - decorate: color each token separately - - decorate: avoid some unnecessary color overhead - - decorate: refactor format_decorations() - - pretty-formats: enclose options in angle brackets - - pretty-formats: define "literal formatting code" - - "git log --format" has been taught the %(decorate) placeholder. - - What's the status of this thing? - source: <20230820185009.20095-1-andy.koppe@gmail.com> - - -* cc/repack-sift-filtered-objects-to-separate-pack (2023-08-13) 8 commits - . 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 - . 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. - - Kicked out of the 'seen', as it still seems to be failing tests. - cf. https://github.com/git/git/actions/runs/5850998716/job/15861158252#step:4:1822 - source: <20230812000011.1227371-1-christian.couder@gmail.com> - - -* cc/git-replay (2023-06-03) 15 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: 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 - - No reviews? - source: <20230602102533.876905-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: - --------------------------------------------------- -[Cooking] - * dd/format-patch-rfc-updates (2023-08-31) 1 commit (merged to 'next' on 2023-09-01 at ad87c89ee3) + format-patch: --rfc honors what --subject-prefix sets @@ -249,11 +57,18 @@ Release tarballs are available at: "RFC" prefix to whatever subject prefix is specified. This is a backward compatible change that may deserve a note. - - Will merge to 'master'. source: <20230830064646.30904-1-sir@cmpwn.com> +* jk/ci-retire-allow-ref (2023-08-30) 2 commits + (merged to 'next' on 2023-08-31 at 5fe4861f16) + + ci: deprecate ci/config/allow-ref script + + ci: allow branch selection through "vars" + + CI update. + source: <20230830194919.GA1709446@coredump.intra.peff.net> + + * jk/unused-post-2.42 (2023-08-29) 22 commits (merged to 'next' on 2023-08-30 at ab0538e754) + update-ref: mark unused parameter in parser callbacks @@ -281,8 +96,6 @@ Release tarballs are available at: Unused parameters to functions are marked as such, and/or removed, in order to bring us closer to -Wunused-parameter clean. - - Will merge to 'master'. source: <20230829234305.GA226944@coredump.intra.peff.net> @@ -296,30 +109,263 @@ Release tarballs are available at: Use of --max-pack-size to allow multiple packfiles to be created is now supported even when we are sending unreachable objects to cruft packs. - - Will merge to 'master'. source: -* jk/ci-retire-allow-ref (2023-08-30) 2 commits - (merged to 'next' on 2023-08-31 at 5fe4861f16) - + ci: deprecate ci/config/allow-ref script - + ci: allow branch selection through "vars" - - CI update. - - Will merge to 'master'. - source: <20230830194919.GA1709446@coredump.intra.peff.net> - - * ws/git-svn-retire-faketerm (2023-08-30) 1 commit (merged to 'next' on 2023-08-31 at cb6e0d658d) + git-svn: drop FakeTerm hack Code clean-up. + source: + +-------------------------------------------------- +[New Topics] + +* so/diff-doc-for-patch-update (2023-09-06) 1 commit + (merged to 'next' on 2023-09-07 at 6da5e9defd) + + doc/diff-options: fix link to generating patch section + + References from description of the `--patch` option in various + manual pages have been simplified and improved. Will merge to 'master'. - source: + source: <87msxzpybo.fsf_-_@osv.gnss.ru> + + +* tb/repack-existing-packs-cleanup (2023-09-06) 8 commits + - builtin/repack.c: extract common cruft pack loop + - builtin/repack.c: drop `DELETE_PACK` macro + - builtin/repack.c: store existing cruft packs separately + - builtin/repack.c: extract `has_existing_non_kept_packs()` + - builtin/repack.c: extract redundant pack cleanup for existing packs + - builtin/repack.c: extract redundant pack cleanup for --geometric + - builtin/repack.c: extract marking packs for deletion + - builtin/repack.c: extract structure to store existing packs + + The code to keep track of existing packs in the repository while + repacking has been refactored. + + Will merge to 'next'? + source: + + +* pb/complete-commit-trailers (2023-09-07) 1 commit + (merged to 'next' on 2023-09-08 at 842587016d) + + completion: commit: complete configured trailer tokens + + The command-line complation support (in contrib/) learned to + complete "git commit --trailer=" for possible trailer keys. + + Will merge to 'master'. + 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. + + Will merge to 'next'? + source: + + +* rs/grep-no-no-or (2023-09-07) 1 commit + (merged to 'next' on 2023-09-08 at 33849032bc) + + grep: reject --no-or + + "git grep -e A --no-or -e B" is accepted, even though the negation + of "or" did not mean anything, which has been tightened. + + Will merge to 'master'. + source: <6aeb0ebe-0fea-ccd3-089a-ee0b5b5baf10@web.de> + + +* js/complete-checkout-t (2023-09-08) 1 commit + (merged to 'next' on 2023-09-08 at 461bb28fbd) + + completion(switch/checkout): treat --track and -t the same + + The completion script (in contrib/) has been taught to treat the + "-t" option to "git checkout" and "git switch" just like the + "--track" option, to complete remote-tracking branches. + + Will merge to 'master'. + source: + + +* cw/git-std-lib (2023-09-08) 6 commits + - git-std-lib: add test file to call git-std-lib.a functions + - git-std-lib: introduce git standard library + - parse: create new library for parsing strings and env values + - config: correct bad boolean env value error message + - wrapper: remove dependency to Git-specific internal file + - hex-ll: split out functionality from hex + + Another libification effort. + + Comments? + source: <20230908174134.1026823-1-calvinwan@google.com> + +-------------------------------------------------- +[Stalled] + +* la/trailer-cleanups (2023-08-06) 5 commits + - trailer: rename *_DEFAULT enums to *_UNSPECIFIED + - trailer: teach find_patch_start about --no-divider + - trailer: split process_command_line_args into separate functions + - trailer: split process_input_file into separate pieces + - trailer: separate public from internal portion of trailer_iterator + + Code clean-up. + + Expecting a reroll. + cf. + source: + + +* cc/repack-sift-filtered-objects-to-separate-pack (2023-08-13) 8 commits + . 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 + . 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. + + Kicked out of the 'seen', as it still seems to be failing tests. + cf. https://github.com/git/git/actions/runs/5850998716/job/15861158252#step:4:1822 + source: <20230812000011.1227371-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: + +-------------------------------------------------- +[Cooking] + +* cc/git-replay (2023-09-07) 15 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: 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 + + source: <20230907092521.733746-1-christian.couder@gmail.com> + + +* la/trailer-test-and-doc-updates (2023-09-07) 13 commits + - trailer doc: is a or , not both + - trailer doc: separator within key suppresses default separator + - trailer doc: emphasize the effect of configuration variables + - trailer --unfold help: prefer "reformat" over "join" + - trailer --parse docs: add explanation for its usefulness + - trailer --only-input: prefer "configuration variables" over "rules" + - trailer --parse help: expose aliased options + - trailer --no-divider help: describe usual "---" meaning + - trailer: trailer location is a place, not an action + - trailer doc: narrow down scope of --where and related flags + - trailer: add tests to check defaulting behavior with --no-* flags + - trailer test description: this tests --where=after, not --where=before + - trailer tests: make test cases self-contained + + Test coverage for trailers has been improved. + source: + + +* ak/pretty-decorate-more (2023-08-21) 8 commits + (merged to 'next' on 2023-09-07 at 6f5e14cef2) + + decorate: use commit color for HEAD arrow + + pretty: add pointer and tag options to %(decorate) + + pretty: add %(decorate[:]) format + + decorate: color each token separately + + decorate: avoid some unnecessary color overhead + + decorate: refactor format_decorations() + + pretty-formats: enclose options in angle brackets + + pretty-formats: define "literal formatting code" + + "git log --format" has been taught the %(decorate) placeholder. + + Will merge to 'master'. + source: <20230820185009.20095-1-andy.koppe@gmail.com> + + +* bc/more-git-var (2023-09-05) 1 commit + (merged to 'next' on 2023-09-06 at d8af32874c) + + var: avoid a segmentation fault when `HOME` is unset + + Fix-up for a topic that already has graduated. + + Will merge to 'master'. + source: + + +* ks/ref-filter-sort-numerically (2023-09-05) 1 commit + (merged to 'next' on 2023-09-06 at aa4d156366) + + ref-filter: sort numerically when ":size" is used + + "git for-each-ref --sort='contents:size'" sorts the refs according + to size numerically, giving a ref that points at a blob twelve-byte + (12) long before showing a blob hundred-byte (100) long. + + Will merge to 'master'. + source: <20230902090155.8978-1-five231003@gmail.com> + + +* ob/sequencer-reword-error-message (2023-09-05) 1 commit + (merged to 'next' on 2023-09-06 at c5154b7aa2) + + sequencer: fix error message on failure to copy SQUASH_MSG + + Update an error message (which would probably never been seen). + + Will merge to 'master'. + source: <20230903151132.739136-1-oswald.buddenhagen@gmx.de> + + +* rs/grep-parseopt-simplify (2023-09-05) 1 commit + (merged to 'next' on 2023-09-06 at 249b69cfd2) + + grep: use OPT_INTEGER_F for --max-depth + + Simplify use of parse-options API a bit. + + Will merge to 'master'. + source: <4d2eb736-4f34-18f8-2eb7-20e7f7b8c2f8@web.de> + + +* rs/name-rev-use-opt-hidden-bool (2023-09-05) 1 commit + (merged to 'next' on 2023-09-06 at 9b251a5392) + + name-rev: use OPT_HIDDEN_BOOL for --peel-tag + + Simplify use of parse-options API a bit. + + Will merge to 'master'. + source: <5a86c8f8-fcdc-fee9-8af5-aa5ecb036d2e@web.de> * jk/unused-post-2.42-part2 (2023-09-05) 10 commits @@ -343,22 +389,37 @@ Release tarballs are available at: * jk/tree-name-and-depth-limit (2023-08-31) 10 commits - - lower core.maxTreeDepth default to 2048 - - tree-diff: respect max_allowed_tree_depth - - list-objects: respect max_allowed_tree_depth - - read_tree(): respect max_allowed_tree_depth - - traverse_trees(): respect max_allowed_tree_depth - - add core.maxTreeDepth config - - fsck: detect very large tree pathnames - - tree-walk: rename "error" variable - - tree-walk: drop MAX_TRAVERSE_TREES macro - - tree-walk: reduce stack size for recursive functions + (merged to 'next' on 2023-09-07 at 7ad767ab0d) + + lower core.maxTreeDepth default to 2048 + + tree-diff: respect max_allowed_tree_depth + + list-objects: respect max_allowed_tree_depth + + read_tree(): respect max_allowed_tree_depth + + traverse_trees(): respect max_allowed_tree_depth + + add core.maxTreeDepth config + + fsck: detect very large tree pathnames + + tree-walk: rename "error" variable + + tree-walk: drop MAX_TRAVERSE_TREES macro + + tree-walk: reduce stack size for recursive functions We now limit depth of the tree objects and maximum length of pathnames recorded in tree objects. + + Will merge to 'master'. source: <20230831061735.GA2702156@coredump.intra.peff.net> +* js/doc-unit-tests (2023-08-17) 3 commits + - ci: run unit tests in CI + - unit tests: add TAP unit test framework + - 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. + + Comments? + source: + + * js/doc-unit-tests-with-cmake (2023-08-31) 4 commits - artifacts-tar: when including `.dll` files, don't forget the unit-tests - unit-tests: do show relative file paths @@ -432,14 +493,16 @@ Release tarballs are available at: * ob/revert-of-revert-is-reapply (2023-09-02) 2 commits - - git-revert.txt: add discussion - - sequencer: beautify subject of reverts of reverts + (merged to 'next' on 2023-09-07 at 9a54f66511) + + git-revert.txt: add discussion + + sequencer: beautify subject of reverts of reverts The default log message created by "git revert", when reverting a commit that records a revert, has been tweaked. - Will merge to 'next'. + Will merge to 'master'. source: <20230821170720.577850-1-oswald.buddenhagen@gmx.de> + source: <20230902072035.652549-1-oswald.buddenhagen@gmx.de> * jc/rerere-cleanup (2023-08-25) 4 commits @@ -455,23 +518,22 @@ Release tarballs are available at: source: <20230731224409.4181277-1-gitster@pobox.com> -* pw/rebase-i-after-failure (2023-08-01) 7 commits - - rebase -i: fix adding failed command to the todo list - - rebase --continue: refuse to commit after failed command - - rebase: fix rewritten list for failed pick - - sequencer: factor out part of pick_commits() - - sequencer: use rebase_path_message() - - rebase -i: remove patch file after conflict resolution - - rebase -i: move unlink() calls +* pw/rebase-i-after-failure (2023-09-06) 7 commits + (merged to 'next' on 2023-09-07 at 3cbc3c4d63) + + rebase -i: fix adding failed command to the todo list + + rebase --continue: refuse to commit after failed command + + rebase: fix rewritten list for failed pick + + sequencer: factor out part of pick_commits() + + sequencer: use rebase_path_message() + + rebase -i: remove patch file after conflict resolution + + rebase -i: move unlink() calls Various fixes to the behaviour of "rebase -i" when the command got interrupted by conflicting changes. - Expecting a reroll. - The latter half of the series should be reviewed by those who have - more stake in the sequencer code than myself. - cf. <619e458b-218b-a790-dfb4-9200e201b513@gmail.com> - source: + Will merge to 'master'. + cf. <6b927687-cf6e-d73e-78fb-bd4f46736928@gmx.de> + source: * jc/unresolve-removal (2023-07-31) 7 commits