diff --git a/whats-cooking.txt b/whats-cooking.txt index 67e6839c26..1129c610f4 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 (Nov 2023, #09; Mon, 27) +Subject: What's cooking in git.git (Dec 2023, #01; Sat, 9) X-master-at: 564d0252ca632e0264ed670534a51d18a689ef5d X-next-at: 3155946c3afb0941e6e01302cf86e4489bffc968 Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Nov 2023, #09; Mon, 27) +What's cooking in git.git (Dec 2023, #01; Sat, 9) -------------------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -48,111 +48,174 @@ Release tarballs are available at: -------------------------------------------------- [New Topics] -* ad/merge-file-diff-algo (2023-11-22) 1 commit - - merge-file: add --diff-algorithm option +* jp/use-diff-index-in-pre-commit-sample (2023-12-03) 1 commit + - hooks--pre-commit: detect non-ASCII when renaming - "git merge-file" learned to take the "--diff-algorithm" option to - use algorithm different from the default "myers" diff. + The sample pre-commit hook that tries to catch introduction of new + paths that use potentially non-portable characters did not notice + an existing path getting renamed to such a problematic path, when + rename detection was enabled. - Will merge to 'next'? - source: + Will merge to 'next'. + source: -* ak/p4-initial-empty-commits (2023-11-23) 1 commit - - git-p4: fix fast import when empty commit is first +* mk/doc-gitfile-more (2023-12-03) 1 commit + - doc: make the gitfile syntax easier to discover + + Doc update. + + Will merge to 'next'. + source: <20231128065558.1061206-1-mk+copyleft@pimpmybyte.de> + + +* ps/ref-tests-update-more (2023-12-03) 10 commits + - t6301: write invalid object ID via `test-tool ref-store` + - t5551: stop writing packed-refs directly + - t5401: speed up creation of many branches + - t4013: simplify magic parsing and drop "failure" + - t3310: stop checking for reference existence via `test -f` + - t1417: make `reflog --updateref` tests backend agnostic + - t1410: use test-tool to create empty reflog + - t1401: stop treating FETCH_HEAD as real reference + - t1400: split up generic reflog tests from the reffile-specific ones + - t0410: mark tests to require the reffiles backend + + Tests update. + + Will merge to 'next'. + source: + + +* sh/completion-with-reftable (2023-12-03) 2 commits + - completion: stop checking for reference existence via `test -f` + - completion: refactor existence checks for special refs + + Command line completion script (in contrib/) learned to work better + with the reftable backend. Expecting a reroll. - source: + source: <20231130202404.89791-1-stanhu@gmail.com> -* jc/checkout-B-branch-in-use (2023-11-23) 2 commits - - checkout: forbid "-B " from touching a branch used elsewhere - - checkout: refactor die_if_checked_out() caller +* en/header-cleanup (2023-12-03) 12 commits + - treewide: remove unnecessary includes in source files + - treewide: add direct includes currently only pulled in transitively + - trace2/tr2_tls.h: remove unnecessary include + - submodule-config.h: remove unnecessary include + - pkt-line.h: remove unnecessary include + - line-log.h: remove unnecessary include + - http.h: remove unnecessary include + - fsmonitor--daemon.h: remove unnecessary includes + - blame.h: remove unnecessary includes + - archive.h: remove unnecessary include + - treewide: remove unnecessary includes in source files + - treewide: remove unnecessary includes from header files - "git checkout -B []" allowed a branch that is - in use in another worktree to be updated and checked out, which - might be a bit unexpected. The rule has been tightened, which is a - breaking change. "--ignore-other-worktrees" option is required to - unbreak you, if you are used to the current behaviour that "-B" - overrides the safety. + Remove unused header "#include". - Needs review and documentation updates. - source: + Has a few interactions with topics in flight. + source: -* jh/trace2-redact-auth (2023-11-23) 4 commits - - t0212: test URL redacting in EVENT format - - t0211: test URL redacting in PERF format - - trace2: redact passwords from https:// URLs by default - - trace2: fix signature of trace2_def_param() macro +* jc/revision-parse-int (2023-12-09) 1 commit + - revision: parse integer arguments to --max-count, --skip, etc., more carefully - trace2 streams used to record the URLs that potentially embed - authentication material, which has been corrected. + The command line parser for the "log" family of commands was too + loose when parsing certain numbers, e.g., silently ignoring the + extra 'q' in "git log -n 1q" without complaining, which has been + tightened up. Will merge to 'next'. - source: + source: -* ps/commit-graph-less-paranoid (2023-11-26) 1 commit - - commit-graph: disable GIT_COMMIT_GRAPH_PARANOIA by default +* jk/bisect-reset-fix (2023-12-09) 1 commit + - bisect: always clean on reset - Earlier we stopped relying on commit-graph that (still) records - information about commits that are lost from the object store, - which has negative performance implications. The default has been - flipped to disable this pessimization. + "git bisect reset" has been taught to clean up state files and refs + even when BISECT_START file is gone. Will merge to 'next'. - source: <17e08289cd59d20de0de9b4e18f5e6bf77987351.1700823746.git.ps@pks.im> + source: <20231207065341.GA778781@coredump.intra.peff.net> -* ps/reftable-fixes (2023-11-22) 8 commits - - reftable/stack: fix stale lock when dying - - reftable/merged: reuse buffer to compute record keys - - reftable/stack: reuse buffers when reloading stack - - reftable/stack: perform auto-compaction with transactional interface - - reftable/stack: verify that `reftable_stack_add()` uses auto-compaction - - reftable: handle interrupted writes - - reftable: handle interrupted reads - - reftable: wrap EXPECT macros in do/while +* jk/implicit-true (2023-12-09) 7 commits + - fsck: handle NULL value when parsing message config + - trailer: handle NULL value when parsing trailer-specific config + - submodule: handle NULL value when parsing submodule.*.branch + - help: handle NULL value for alias.* config + - trace2: handle NULL values in tr2_sysenv config callback + - setup: handle NULL value when parsing extensions + - config: handle NULL value when parsing non-bools + (this branch is used by jk/config-cleanup.) - Bunch of small fix-ups to the reftable code. + Some codepaths did not correctly parse configuration variables + specified with valueless "true", which has been corrected. - Needs review. - source: + Will merge to 'next'. + source: <20231207071030.GA1275835@coredump.intra.peff.net> -* en/complete-sparse-checkout (2023-11-27) 4 commits - - completion: avoid user confusion in non-cone mode - - completion: avoid misleading completions in cone mode - - completion: fix logic for determining whether cone mode is active - - completion: squelch stray errors in sparse-checkout completion +* jk/config-cleanup (2023-12-09) 9 commits + - sequencer: simplify away extra git_config_string() call + - gpg-interface: drop pointless config_error_nonbool() checks + - push: drop confusing configset/callback redundancy + - config: use git_config_string() for core.checkRoundTripEncoding + - diff: give more detailed messages for bogus diff.* config + - config: use config_error_nonbool() instead of custom messages + - imap-send: don't use git_die_config() inside callback + - git_xmerge_config(): prefer error() to die() + - config: reject bogus values for core.checkstat + (this branch uses jk/implicit-true.) - source: + Code clean-up around use of configuration variables. + + Will merge to 'next'. + source: <20231207071030.GA1275835@coredump.intra.peff.net> + source: <20231207072338.GA1277727@coredump.intra.peff.net> -* jb/reflog-expire-delete-dry-run-options (2023-11-26) 1 commit - - builtin/reflog.c: fix dry-run option short name +* jk/end-of-options (2023-12-09) 1 commit + - parse-options: decouple "--end-of-options" and "--" - source: <20231126000514.85509-1-josh@brob.st> + "git log --end-of-options --rev -- --path" learned to interpret + "--rev" as a rev, and "--path" as a path, as expected. + + Will merge to 'next'. + source: <20231206222145.GA136253@coredump.intra.peff.net> -* jc/orphan-unborn (2023-11-24) 2 commits - - orphan/unborn: fix use of 'orphan' in end-user facing messages - - orphan/unborn: add to the glossary and use them consistently +* ps/clone-into-reftable-repository (2023-12-09) 7 commits + - builtin/clone: create the refdb with the correct object format + - builtin/clone: skip reading HEAD when retrieving remote + - builtin/clone: set up sparse checkout later + - builtin/clone: fix bundle URIs with mismatching object formats + - remote-curl: rediscover repository when fetching refs + - setup: allow skipping creation of the refdb + - setup: extract function to create the refdb - source: + "git clone" has been prepared to allow cloning a repository with + non-default hash function into a repository that uses the reftable + backend. + + Will merge to 'next'? + source: -* rs/column-leakfix (2023-11-27) 1 commit - - column: release strbuf and string_list after use +* rs/incompatible-options-messages (2023-12-09) 7 commits + - worktree: simplify incompatibility message for --orphan and commit-ish + - worktree: standardize incompatibility messages + - clean: factorize incompatibility message + - revision, rev-parse: factorize incompatibility messages about - -exclude-hidden + - revision: use die_for_incompatible_opt3() for - -graph/--reverse/--walk-reflogs + - repack: use die_for_incompatible_opt3() for -A/-k/--cruft + - push: use die_for_incompatible_opt4() for - -delete/--tags/--all/--mirror - source: + Clean-up code that handles combinations of incompatible options. - -* rs/i18n-cannot-be-used-together (2023-11-27) 1 commit - - i18n: factorize even more 'incompatible options' messages - - source: + Will merge to 'next'. + source: <20231206115215.94467-1-l.s.r@web.de> -------------------------------------------------- [Stalled] @@ -199,12 +262,137 @@ Release tarballs are available at: -------------------------------------------------- [Cooking] +* ad/merge-file-diff-algo (2023-11-22) 1 commit + - merge-file: add --diff-algorithm option + + "git merge-file" learned to take the "--diff-algorithm" option to + use algorithm different from the default "myers" diff. + + Will merge to 'next'. + source: + + +* ak/p4-initial-empty-commits (2023-11-23) 1 commit + - git-p4: fix fast import when empty commit is first + + Expecting a reroll. + source: + + +* jc/checkout-B-branch-in-use (2023-12-09) 3 commits + - fixup! checkout: forbid "-B " from touching a branch used elsewhere + - checkout: forbid "-B " from touching a branch used elsewhere + - checkout: refactor die_if_checked_out() caller + + "git checkout -B []" allowed a branch that is + in use in another worktree to be updated and checked out, which + might be a bit unexpected. The rule has been tightened, which is a + breaking change. "--ignore-other-worktrees" option is required to + unbreak you, if you are used to the current behaviour that "-B" + overrides the safety. + + Needs review. + source: + + +* jh/trace2-redact-auth (2023-11-23) 4 commits + - t0212: test URL redacting in EVENT format + - t0211: test URL redacting in PERF format + - trace2: redact passwords from https:// URLs by default + - trace2: fix signature of trace2_def_param() macro + + trace2 streams used to record the URLs that potentially embed + authentication material, which has been corrected. + + Will merge to 'next'. + source: + + +* ps/commit-graph-less-paranoid (2023-11-26) 1 commit + - commit-graph: disable GIT_COMMIT_GRAPH_PARANOIA by default + + Earlier we stopped relying on commit-graph that (still) records + information about commits that are lost from the object store, + which has negative performance implications. The default has been + flipped to disable this pessimization. + + Will merge to 'next'. + source: <17e08289cd59d20de0de9b4e18f5e6bf77987351.1700823746.git.ps@pks.im> + + +* ps/reftable-fixes (2023-11-22) 8 commits + - reftable/stack: fix stale lock when dying + - reftable/merged: reuse buffer to compute record keys + - reftable/stack: reuse buffers when reloading stack + - reftable/stack: perform auto-compaction with transactional interface + - reftable/stack: verify that `reftable_stack_add()` uses auto-compaction + - reftable: handle interrupted writes + - reftable: handle interrupted reads + - reftable: wrap EXPECT macros in do/while + + Bunch of small fix-ups to the reftable code. + + Needs review. + source: + + +* en/complete-sparse-checkout (2023-12-03) 4 commits + - completion: avoid user confusion in non-cone mode + - completion: avoid misleading completions in cone mode + - completion: fix logic for determining whether cone mode is active + - completion: squelch stray errors in sparse-checkout completion + + Command line completion (in contrib/) learned to complete path + arguments to the "add/set" subcommands of "git sparse-checkout" + better. + + Will merge to 'next'. + source: + + +* jb/reflog-expire-delete-dry-run-options (2023-11-26) 1 commit + - builtin/reflog.c: fix dry-run option short name + + Command line parsing fix for "git reflog". + + Will merge to 'next'. + source: <20231126000514.85509-1-josh@brob.st> + + +* jc/orphan-unborn (2023-11-24) 2 commits + - orphan/unborn: fix use of 'orphan' in end-user facing messages + - orphan/unborn: add to the glossary and use them consistently + + Doc updates to clarify what an "unborn branch" means. + + Comments? + source: + + +* rs/column-leakfix (2023-11-27) 1 commit + - column: release strbuf and string_list after use + + Leakfix. + + Will merge to 'next'. + source: + + +* rs/i18n-cannot-be-used-together (2023-11-27) 1 commit + - i18n: factorize even more 'incompatible options' messages + + Clean-up code that handles combinations of incompatible options. + + Will merge to 'next'. + source: + + * ac/fuzz-show-date (2023-11-20) 1 commit - fuzz: add new oss-fuzz fuzzer for date.c / date.h - Subject approxidate() and show_date() macchinery to OSS-Fuzz. + Subject approxidate() and show_date() machinery to OSS-Fuzz. - Will merge to 'next'? + Will merge to 'next'. source: @@ -225,6 +413,8 @@ Release tarballs are available at: without adding anything in .gitattributes files, which would be useful in magic pathspec, e.g., ":(attr:builtin_objectmode=100755)" to limit to executables. + + Will merge to 'next' after squashing the fix-up in? source: <20231116054437.2343549-1-jojwang@google.com>