{"thread":{"id":"58652","subject":"What's cooking in git.git (Oct 2022, #06; Wed, 19)","startedAt":"2022-10-20T01:41:57Z","lastAt":"2022-10-22T22:11:33Z","messageCount":9,"participants":["Junio C Hamano","Jeff King","Phillip Wood","Michael McClimon","Taylor Blau","Glen Choo"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"465277","messageId":"xmqqa65rnuvv.fsf@gitster.g","threadId":"58652","inReplyTo":null,"subject":"What's cooking in git.git (Oct 2022, #06; Wed, 19)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-10-20T01:31:16Z","receivedAt":"2022-10-20T01:41:57Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking in my tree.  Commits\nprefixed with '+' are in 'next' (being in 'next' is a sign that a\ntopic is stable enough to be used and are candidate to be in a future\nrelease).  Commits prefixed with '-' are only in 'seen', and aren't\nconsidered \"accepted\" at all.  A topic without enough support may be\ndiscarded after a long period of no activity.\n\nGit 2.38.1 and friends that address a couple of CVE on maintenance\ntracks have been released and they are all merged up to the\ndevelopment branches.\n\nSome topics outside 'next' have been expecting updates for too long\nand we may want to discard them, unless they see some activities.\n\nCopies of the source code to Git live in many repositories, and the\nfollowing is a list of the ones I push into or their mirrors.  Some\nrepositories have only a subset of branches.\n\nWith maint, master, next, seen, todo:\n\n\tgit://git.kernel.org/pub/scm/git/git.git/\n\tgit://repo.or.cz/alt-git.git/\n\thttps://kernel.googlesource.com/pub/scm/git/git/\n\thttps://github.com/git/git/\n\thttps://gitlab.com/git-vcs/git/\n\nWith all the integration branches and topics broken out:\n\n\thttps://github.com/gitster/git/\n\nEven though the preformatted documentation in HTML and man format\nare not sources, they are published in these repositories for\nconvenience (replace \"htmldocs\" with \"manpages\" for the manual\npages):\n\n\tgit://git.kernel.org/pub/scm/git/git-htmldocs.git/\n\thttps://github.com/gitster/git-htmldocs.git/\n\nRelease tarballs are available at:\n\n\thttps://www.kernel.org/pub/software/scm/git/\n\n--------------------------------------------------\n[Graduated to 'master']\n\n* ab/coding-guidelines-c99 (2022-10-11) 5 commits\n  (merged to 'next' on 2022-10-13 at c6b2b74dfb)\n + CodingGuidelines: recommend against unportable C99 struct syntax\n + CodingGuidelines: mention C99 features we can't use\n + CodingGuidelines: allow declaring variables in for loops\n + CodingGuidelines: mention dynamic C99 initializer elements\n + CodingGuidelines: update for C99\n\n Update CodingGuidelines to clarify what features to use and avoid\n in C99.\n source: <20221010203800.2154698-1-gitster@pobox.com>\n\n\n* jh/struct-zero-init-with-older-clang (2022-10-10) 1 commit\n  (merged to 'next' on 2022-10-13 at 393abc3019)\n + config.mak.dev: disable suggest braces error on old clang versions\n\n Work around older clang that warns against C99 zero initialization\n syntax for struct.\n source: <pull.1375.v2.git.1665416340806.gitgitgadget@gmail.com>\n\n\n* rs/archive-dedup-printf (2022-10-11) 1 commit\n  (merged to 'next' on 2022-10-13 at af770cf00f)\n + archive: deduplicate verbose printing\n\n Code simplification.\n source: <af5611aa-8662-7508-4f00-7fcf4e9cbcc6@web.de>\n\n--------------------------------------------------\n[New Topics]\n\n* jk/unused-anno-more (2022-10-17) 12 commits\n - ll-merge: mark unused parameters in callbacks\n - diffcore-pickaxe: mark unused parameters in pickaxe functions\n - convert: mark unused parameter in null stream filter\n - apply: mark unused parameters in noop error/warning routine\n - apply: mark unused parameters in handlers\n - date: mark unused parameters in handler functions\n - string-list: mark unused callback parameters\n - object-file: mark unused parameters in hash_unknown functions\n - mark unused parameters in trivial compat functions\n - update-index: drop unused argc from do_reupdate()\n - submodule--helper: drop unused argc from module_list_compute()\n - diffstat_consume(): assert non-zero length\n\n More UNUSED annotation to help using -Wunused option with the\n compiler.\n\n Will merge to 'next'.\n source: <Y036whEorZV0rOgB@coredump.intra.peff.net>\n\n\n* tb/save-keep-pack-during-geometric-repack (2022-10-17) 1 commit\n - repack: don't remove .keep packs with `--pack-kept-objects`\n\n When geometric repacking feature is in use together with the\n --pack-kept-objects option, we lost packs marked with .keep files.\n\n Will merge to 'next'.\n source: <6a012cd625c1d197ede91c85299cbfb37adf356b.1666059872.git.me@ttaylorr.com>\n\n\n* mm/git-pm-try-catch-syntax-fix (2022-10-17) 1 commit\n - Git.pm: add semicolon after catch statement\n\n Fix a longstanding syntax error in Git.pm error codepath.\n\n Will merge to 'next'??\n source: <20221016212236.12453-2-michael@mcclimon.org>\n\n\n* ab/macos-build-fix-with-sha1dc (2022-10-19) 1 commit\n  (merged to 'next' on 2022-10-19 at 408ce79f33)\n + fsmonitor OSX: compile with DC_SHA1=YesPlease\n\n Enable macOS build with sha1dc hash function.\n\n Will merge to 'master'.\n source: <patch-v2-1.4-392fabdb456-20221019T010222Z-avarab@gmail.com>\n\n\n* jk/use-o0-in-leak-sanitizer (2022-10-19) 1 commit\n  (merged to 'next' on 2022-10-19 at 27c2546b98)\n + Makefile: force -O0 when compiling with SANITIZE=leak\n\n Avoid false-positive from LSan whose assumption may be broken with\n higher optimization levels.\n\n Will merge to 'master'.\n source: <Y08JZVDgJpJvrBiz@coredump.intra.peff.net>\n\n\n* jr/embargoed-releases-doc (2022-10-19) 1 commit\n - embargoed releases: also describe the git-security list and the process\n\n The role the security mailing list plays in an embargoed release\n has been documented.\n\n Will merge to 'next'?\n source: <pull.1345.v2.git.1666142160427.gitgitgadget@gmail.com>\n\n--------------------------------------------------\n[Stalled]\n\n* ag/merge-strategies-in-c (2022-08-10) 14 commits\n - sequencer: use the \"octopus\" strategy without forking\n - sequencer: use the \"resolve\" strategy without forking\n - merge: use the \"octopus\" strategy without forking\n - merge: use the \"resolve\" strategy without forking\n - merge-octopus: rewrite in C\n - merge-recursive: move better_branch_name() to merge.c\n - merge-resolve: rewrite in C\n - merge-one-file: rewrite in C\n - update-index: move add_cacheinfo() to read-cache.c\n - merge-index: add a new way to invoke `git-merge-one-file'\n - merge-index: drop the index\n - merge-index: libify merge_one_path() and merge_all()\n - t6060: add tests for removed files\n - t6060: modify multiple files to expose a possible issue with merge-index\n\n An attempt to rewrite remaining merge strategies from shell to C.\n\n Needs more work.\n At the minimum, we should lose 11/14 and possibly 08/14.\n cf. <xmqq7d36vfur.fsf@gitster.g>\n source: <20220809185429.20098-1-alban.gruin@gmail.com>\n\n\n* po/glossary-around-traversal (2022-07-09) 3 commits\n - glossary: add reachability bitmap description\n - glossary: add commit graph description\n - glossary: add Object DataBase (ODB) abbreviation\n\n The glossary entries for \"commit-graph file\" and \"reachability\n bitmap\" have been added.\n\n Expecting a reroll.\n cf. <dfe0c1ab-33f8-f13e-71ce-1829bb0d2d7f@iee.email>\n source: <pull.1282.git.1657385781.gitgitgadget@gmail.com>\n\n\n* gc/submodule-clone-update-with-branches (2022-08-29) 6 commits\n - clone, submodule update: check out branches\n - submodule--helper: refactor up-to-date criterion\n - submodule: return target of submodule symref\n - t5617: drop references to remote-tracking branches\n - repo-settings: add submodule_propagate_branches\n - clone: teach --detach option\n\n \"git clone --recurse-submodules\" and \"git submodule update\" learns\n to honor the \"propagete branches\" option.\n\n Expecting a reroll.\n cf. <20220901200047.515294-1-jonathantanmy@google.com> and others\n source: <pull.1321.git.git.1661806456.gitgitgadget@gmail.com>\n\n\n* tb/diffstat-with-utf8-strwidth (2022-09-14) 1 commit\n - diff.c: use utf8_strwidth() to count display width\n\n \"git diff --stat\" etc. were invented back when everything was ASCII\n and strlen() was a way to measure the display width of a string;\n adjust them to compute the display width assuming UTF-8 pathnames.\n\n Expecting a reroll.\n source: <20220914151333.3309-1-tboegi@web.de>\n\n\n* mj/credential-helper-auth-headers (2022-09-13) 8 commits\n - http: set specific auth scheme depending on credential\n - http: move proactive auth to first slot creation\n - http: store all request headers on active_request_slot\n - credential: add WWW-Authenticate header to cred requests\n - http: read HTTP WWW-Authenticate response headers\n - osxkeychain: clarify that we ignore unknown lines\n - netrc: ignore unknown lines (do not die)\n - wincred: ignore unknown lines (do not die)\n\n Extending credential helper protocol.\n\n Expecting a reroll.\n A separate non-RFC submission of the first three is expected.\n cf. <AS8PR03MB86897FAC3E1E4F03D4420644C04F9@AS8PR03MB8689.eurprd03.prod.outlook.com>\n source: <pull.1352.git.1663097156.gitgitgadget@gmail.com>\n\n\n* cw/submodule-status-in-parallel (2022-09-23) 4 commits\n . diff-lib: parallelize run_diff_files for submodules\n . diff-lib: refactor functions\n . submodule: move status parsing into function\n . run-command: add pipe_output to run_processes_parallel\n\n Allow the internal \"diff-files\" engine to run \"how has this\n submodule changed?\" in parallel to speed up \"git status\".\n\n Breaks its self check.\n cf. https://github.com/git/git/actions/runs/3115673002/jobs/5052804463\n source: <20220922232947.631309-1-calvinwan@google.com>\n\n\n* es/mark-gc-cruft-as-experimental (2022-08-03) 2 commits\n - config: let feature.experimental imply gc.cruftPacks=true\n - gc: add tests for --cruft and friends\n\n Enable gc.cruftpacks by default for those who opt into\n feature.experimental setting.\n\n Expecting a reroll.\n cf. <220804.86a68ke9d5.gmgdl@evledraar.gmail.com>\n cf. <6803b725-526e-a1c8-f15c-a9ed4a144d4c@github.com>\n source: <20220803205721.3686361-1-emilyshaffer@google.com>\n\n\n* es/doc-creation-factor-fix (2022-07-28) 2 commits\n - range-diff: clarify --creation-factor=<factor>\n - format-patch: clarify --creation-factor=<factor>\n\n Expecting a reroll by somebody more familiar with the logic\n cf. <xmqqo7wfix7p.fsf@gitster.g>\n source: <7229p500-p2r4-on87-6802-8o90s36rr3s4@tzk.qr>\n\n\n* cw/remote-object-info (2022-08-13) 7 commits\n . SQUASH???\n . cat-file: add remote-object-info to batch-command\n . transport: add client support for object-info\n . serve: advertise object-info feature\n . protocol-caps: initialization bug fix\n . fetch-pack: move fetch initialization\n . fetch-pack: refactor packet writing\n\n A client component to talk with the object-info endpoint.\n\n Expecting a reroll.\n Under SANITIZE=address, t1006-cat-file.sh finds a breakage.\n cf. <20220728230210.2952731-1-calvinwan@google.com>\n cf. <CAFySSZDvgwbbHCHfyuaqX3tKsr-GjJ9iihygg6rNNe46Ys7_EA@mail.gmail.com>\n source: <20220728230210.2952731-1-calvinwan@google.com>\n\n--------------------------------------------------\n[Cooking]\n\n* js/cmake-updates (2022-10-19) 5 commits\n - cmake: increase time-out for a long-running test\n - cmake: avoid editing t/test-lib.sh\n - add -p: avoid ambiguous signed/unsigned comparison\n - cmake: copy the merge tools for testing\n - cmake: make it easier to diagnose regressions in CTest runs\n\n Update to build procedure with VS using CMake/CTest.\n\n Will merge to 'next'?\n source: <pull.1320.v3.git.1666090745.gitgitgadget@gmail.com>\n\n\n* gc/bare-repo-discovery (2022-10-13) 1 commit\n  (merged to 'next' on 2022-10-17 at 3de2be7c14)\n + config: respect includes in protected config\n\n Allow configuration files in \"protected\" scopes to include other\n configuration files.\n\n Will merge to 'master'.\n source: <pull.1360.v2.git.git.1665683027912.gitgitgadget@gmail.com>\n\n\n* jh/trace2-timers-and-counters (2022-10-13) 7 commits\n - trace2: add global counter mechanism\n - trace2: add stopwatch timers\n - trace2: convert ctx.thread_name from strbuf to pointer\n - trace2: rename the thread_name argument to trace2_thread_start\n - api-trace2.txt: elminate section describing the public trace2 API\n - tr2tls: clarify TLS terminology\n - trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx\n\n Two new facilities, \"timer\" and \"counter\", are introduced to the\n trace2 API.\n source: <pull.1373.v2.git.1665600750.gitgitgadget@gmail.com>\n\n\n* tb/midx-bitmap-selection-fix (2022-10-13) 4 commits\n - pack-bitmap-write.c: instrument number of reused bitmaps\n - midx.c: instrument MIDX and bitmap generation with trace2 regions\n - midx.c: consider annotated tags during bitmap selection\n - midx.c: fix whitespace typo\n\n A bugfix with tracing support in midx codepath\n\n Will merge to 'next'.\n source: <cover.1665612094.git.me@ttaylorr.com>\n\n\n* tb/remove-unused-pack-bitmap (2022-10-17) 1 commit\n - builtin/repack.c: remove redundant pack-based bitmaps\n\n When creating a multi-pack bitmap, remove per-pack bitmap files\n unconditionally as they will never be consulted.\n\n Will merge to 'next'?\n source: <1e0ef7ee7ff5feb323c77e594cd65433fb1d99f7.1666061096.git.me@ttaylorr.com>\n\n\n* nw/t1002-cleanup (2022-10-14) 1 commit\n - t1002: modernize outdated conditional\n\n Code clean-up in test.\n\n Will merge to 'next'.\n source: <pull.1362.v3.git.git.1665734502591.gitgitgadget@gmail.com>\n\n\n* zh/patch-id (2022-10-14) 7 commits\n - documentation: format-patch: clarify requirements for patch-ids to match\n - builtin: patch-id: remove unused diff-tree prefix\n - builtin: patch-id: add --include-whitespace as a command mode\n - patch-id: fix patch-id for mode changes\n - builtin: patch-id: fix patch-id with binary diffs\n - patch-id: use stable patch-id for rebases\n - patch-id: fix stable patch id for binary / header-only\n\n A new \"--include-whitespace\" option is added to \"git patch-id\", and\n existing bugs in the internal patch-id logic that did not match\n what \"git patch-id\" produces have been corrected.\n\n Will merge to 'next'?\n source: <pull.1359.v3.git.1665737804.gitgitgadget@gmail.com>\n\n\n* hl/archive-recursive (2022-10-19) 10 commits\n - fixup! archive: add tests for git archive --recurse-submodules\n - archive: add tests for git archive --recurse-submodules\n - archive: add --recurse-submodules to git-archive command\n - archive: remove global repository from archive_args\n - archive: pass repo objects to write_archive handlers\n - tree: add repository parameter to read_tree_fn_t\n - tree: handle submodule case for read_tree_at properly\n - tree: increase test coverage for tree.c\n - tree: update cases to use repo_ tree methods\n - tree: do not use the_repository for tree traversal methods.\n\n \"git archive\" has been taught \"--recurse-submodules\" option to\n create a tarball that includes contents from submodules.\n\n Expecting a reroll.\n source: <pull.1359.v3.git.git.1665973401.gitgitgadget@gmail.com>\n\n\n* pw/rebase-keep-base-fixes (2022-10-17) 8 commits\n - rebase --keep-base: imply --no-fork-point\n - rebase --keep-base: imply --reapply-cherry-picks\n - rebase: factor out branch_base calculation\n - rebase: rename merge_base to branch_base\n - rebase: store orig_head as a commit\n - rebase: be stricter when reading state files containing oids\n - t3416: set $EDITOR in subshell\n - t3416: tighten two tests\n (this branch is used by pw/rebase-reflog-fixes.)\n\n \"git rebase --keep-base\" used to discard the commits that are\n already cherry-picked to the upstream, even when \"keep-base\" meant\n that the base, on top of which the history is being rebuilt, does\n not yet include these cherry-picked commits.  The --keep-base\n option now implies --reapply-cherry-picks and --no-fork-point\n options.\n\n Will merge to 'next'??\n source: <pull.1323.v4.git.1666012665.gitgitgadget@gmail.com>\n\n\n* ab/grep-simplify-extended-expression (2022-10-11) 1 commit\n  (merged to 'next' on 2022-10-13 at 07993f09bc)\n + grep.c: remove \"extended\" in favor of \"pattern_expression\", fix segfault\n\n Giving \"--invert-grep\" and \"--all-match\" without \"--grep\" to the\n \"git log\" command resulted in an attempt to access grep pattern\n expression structure that has not been allocated, which has been\n corrected.\n\n Will merge to 'master'.\n source: <patch-v2-1.1-6ad7627706f-20221011T094715Z-avarab@gmail.com>\n\n\n* pw/rebase-reflog-fixes (2022-10-17) 9 commits\n - rebase: cleanup action handling\n - rebase --abort: improve reflog message\n - rebase --apply: make reflog messages match rebase --merge\n - rebase --apply: respect GIT_REFLOG_ACTION\n - rebase --merge: fix reflog message after skipping\n - rebase --merge: fix reflog when continuing\n - t3406: rework rebase reflog tests\n - rebase --apply: remove duplicated code\n - Merge branch 'pw/rebase-keep-base-fixes' into pw/rebase-reflog-fixes\n (this branch uses pw/rebase-keep-base-fixes.)\n\n Fix some bugs in the reflog messages when rebasing and changes the\n reflog messages of \"rebase --apply\" to match \"rebase --merge\" with\n the aim of making the reflog easier to parse.\n\n Will merge to 'next'??\n source: <pull.1150.v3.git.1665567312.gitgitgadget@gmail.com>\n\n\n* sd/doc-smtp-encryption (2022-10-12) 1 commit\n - docs: git-send-email: difference between ssl and tls smtp-encryption\n\n Expecting a reroll??\n cf. <19e5b678-6014-d783-347f-9169371aaa09@iee.email>\n source: <20221012150619.12877-1-sndanailov@wired4ever.net>\n\n\n* jc/symbolic-ref-no-recurse (2022-10-09) 1 commit\n  (merged to 'next' on 2022-10-13 at 532a3f6a5f)\n + symbolic-ref: teach \"--[no-]recurse\" option\n\n After checking out a \"branch\" that is a symbolic-ref that points at\n another branch, \"git symbolic-ref HEAD\" reports the underlying\n branch, not the symbolic-ref the user gave checkout as argument.\n The command learned the \"--no-recurse\" option to stop after\n dereferencing a symbolic-ref only once.\n\n Will merge to 'master'.\n source: <xmqqleprcn08.fsf@gitster.g>\n\n\n* ds/cmd-main-reorder (2022-10-08) 1 commit\n  (merged to 'next' on 2022-10-14 at d7f07dbecf)\n + git.c: improve code readability in cmd_main()\n\n Code clean-up.\n\n Will merge to 'master'.\n source: <pull.1355.v3.git.git.1665246097190.gitgitgadget@gmail.com>\n\n\n* ed/fsmonitor-inotify (2022-10-14) 7 commits\n . fsmonitor: update doc for Linux\n . fsmonitor: test updates\n . fsmonitor: enable fsmonitor for Linux\n . fsmonitor: implement filesystem change listener for Linux\n . fsmonitor: determine if filesystem is local or remote\n . fsmonitor: prepare to share code between Mac OS and Linux\n . Merge branch 'ed/fsmonitor-on-networked-macos' into ed/fsmonitor-inotify\n\n Bundled fsmonitor for Linux using inotify API.\n\n Needs review.\n\n Occasional breakages of t7527.16?\n source: <pull.1352.v2.git.git.1665783944.gitgitgadget@gmail.com>\n\n\n* en/sparse-checkout-design (2022-10-08) 1 commit\n - sparse-checkout.txt: new document with sparse-checkout directions\n\n Design doc.\n\n Needs review.\n source: <pull.1367.v3.git.1665269538608.gitgitgadget@gmail.com>\n\n\n* jc/more-sanitizer-at-ci (2022-10-11) 1 commit\n . ci: add address and undefined sanitizer tasks\n\n Enable address and undefined sanitizer tasks at GitHub Actions CI.\n\n With this p4 tests seem to die with the server side going away.\n source: <xmqqpmezxl9p.fsf@gitster.g>\n\n\n* od/ci-use-checkout-v3-when-applicable (2022-10-10) 2 commits\n . ci(main): linux32 uses actions/checkout@v2\n . ci(main): upgrade actions/checkout to v3\n\n Attempt to update GitHub CI to use actions/checkout@v3\n\n Expecting a reroll.\n Seems to break the CI completely.\n source: <pull.1354.git.git.1665388136.gitgitgadget@gmail.com>\n\n\n* ab/run-hook-api-cleanup (2022-10-12) 15 commits\n - run-command.c: remove \"max_processes\", add \"const\" to signal() handler\n - run-command.c: pass \"opts\" further down, and use \"opts->processes\"\n - run-command.c: use \"opts->processes\", not \"pp->max_processes\"\n - run-command.c: don't copy \"data\" to \"struct parallel_processes\"\n - run-command.c: don't copy \"ungroup\" to \"struct parallel_processes\"\n - run-command.c: don't copy *_fn to \"struct parallel_processes\"\n - run-command.c: make \"struct parallel_processes\" const if possible\n - run-command API: move *_tr2() users to \"run_processes_parallel()\"\n - run-command API: have run_process_parallel() take an \"opts\" struct\n - run-command.c: use designated init for pp_init(), add \"const\"\n - run-command API: don't fall back on online_cpus()\n - run-command API: make \"n\" parameter a \"size_t\"\n - run-command tests: use \"return\", not \"exit\"\n - run-command API: have \"run_processes_parallel{,_tr2}()\" return void\n - run-command test helper: use \"else if\" pattern\n\n Move a global variable added as a hack during regression fixes to\n its proper place in the API.\n\n Will merge to 'next'.\n source: <cover-v3-00.15-00000000000-20221012T205712Z-avarab@gmail.com>\n\n\n* pw/test-todo (2022-10-06) 3 commits\n - test_todo: allow [verbose] test as the command\n - test_todo: allow [!] grep as the command\n - tests: add test_todo() to mark known breakages\n\n RFC for test framework improvement.\n\n Needs review.\n source: <pull.1374.git.1665068476.gitgitgadget@gmail.com>\n\n\n* rj/branch-edit-description-with-nth-checkout (2022-10-10) 1 commit\n  (merged to 'next' on 2022-10-14 at 90850a2211)\n + branch: support for shortcuts like @{-1}, completed\n\n \"git branch --edit-description @{-1}\" is now a way to edit branch\n description of the branch you were on before switching to the\n current branch.\n\n Will merge to 'master'.\n source: <fbf84e26-4306-c8df-0e2c-45dc94129e3a@gmail.com>\n\n\n* rs/diff-caret-bang-with-parents (2022-10-01) 3 commits\n  (merged to 'next' on 2022-10-17 at 24609eb777)\n + diff: support ^! for merges\n + revisions.txt: unspecify order of resolved parts of ^!\n + revision: use strtol_i() for exclude_parent\n\n \"git diff rev^!\" did not show combined diff to go to the rev from\n its parents.\n\n Will merge to 'master'.\n source: <16c49d20-cafc-4b48-3c6b-e11c74c29abb@web.de>\n\n\n* ab/doc-synopsis-and-cmd-usage (2022-10-13) 34 commits\n - tests: assert consistent whitespace in -h output\n - tests: start asserting that *.txt SYNOPSIS matches -h output\n - doc txt & -h consistency: make \"worktree\" consistent\n - worktree: define subcommand -h in terms of command -h\n - reflog doc: list real subcommands up-front\n - doc txt & -h consistency: make \"commit\" consistent\n - doc txt & -h consistency: make \"diff-tree\" consistent\n - doc txt & -h consistency: use \"[<label>...]\" for \"zero or more\"\n - doc txt & -h consistency: make \"annotate\" consistent\n - doc txt & -h consistency: make \"stash\" consistent\n - doc txt & -h consistency: add missing options\n - doc txt & -h consistency: use \"git foo\" form, not \"git-foo\"\n - doc txt & -h consistency: make \"bundle\" consistent\n - doc txt & -h consistency: make \"read-tree\" consistent\n - doc txt & -h consistency: make \"rerere\" consistent\n - doc txt & -h consistency: add missing options and labels\n - doc txt & -h consistency: make output order consistent\n - doc txt & -h consistency: add or fix optional \"--\" syntax\n - doc txt & -h consistency: fix mismatching labels\n - doc SYNOPSIS & -h: use \"-\" to separate words in labels, not \"_\"\n - doc txt & -h consistency: use \"<options>\", not \"<options>...\"\n - stash doc SYNOPSIS & -h: correct padding around \"[]()\"\n - doc txt & -h consistency: correct padding around \"[]()\"\n - doc txt & -h consistency: balance unbalanced \"[\" and \"]\"\n - doc txt & -h consistency: add \"-z\" to cat-file \"-h\"\n - doc txt & -h consistency: fix incorrect alternates syntax\n - doc txt & -h consistency: word-wrap\n - built-ins: consistently add \"\\n\" between \"usage\" and options\n - doc SYNOPSIS: consistently use ' for commands\n - doc SYNOPSIS: don't use ' for subcommands\n - bundle: define subcommand -h in terms of command -h\n - builtin/bundle.c: indent with tabs\n - CodingGuidelines: update and clarify command-line conventions\n - tests: assert *.txt SYNOPSIS and -h output\n\n The short-help text shown by \"git cmd -h\" and the synopsis text\n shown at the beginning of \"git help cmd\" have been made more\n consistent.\n\n Will merge to 'next'?\n source: <cover-v5-00.34-00000000000-20221013T153625Z-avarab@gmail.com>\n\n\n* ab/coccicheck-incremental (2022-10-14) 11 commits\n - spatchcache: add a ccache-alike for \"spatch\"\n - cocci: run against a generated ALL.cocci\n - cocci: optimistically use COMPUTE_HEADER_DEPENDENCIES\n - cocci: make \"coccicheck\" rule incremental\n - cocci: split off \"--all-includes\" from SPATCH_FLAGS\n - cocci: split off include-less \"tests\" from SPATCH_FLAGS\n - Makefile: split off SPATCH_BATCH_SIZE comment from \"cocci\" heading\n - Makefile: have \"coccicheck\" re-run if flags change\n - Makefile: add ability to TAB-complete cocci *.patch rules\n - cocci rules: remove unused \"F\" metavariable from pending rule\n - Makefile + shared.mak: rename and indent $(QUIET_SPATCH_T)\n\n \"make coccicheck\" is time consuming. It has been made to run more\n incrementally.\n\n Will merge to 'next'?\n source: <cover-v3-00.11-00000000000-20221014T152552Z-avarab@gmail.com>\n\n\n* ds/bundle-uri-3 (2022-10-12) 13 commits\n - bundle-uri: suppress stderr from remote-https\n - bundle-uri: quiet failed unbundlings\n - bundle: add flags to verify_bundle()\n - bundle-uri: fetch a list of bundles\n - bundle: properly clear all revision flags\n - bundle-uri: limit recursion depth for bundle lists\n - bundle-uri: parse bundle list in config format\n - bundle-uri: unit test \"key=value\" parsing\n - bundle-uri: create \"key=value\" line parsing\n - bundle-uri: create base key-value pair parsing\n - bundle-uri: create bundle_list struct and helpers\n - bundle-uri: use plain string in find_temp_filename()\n - Merge branch 'ds/bundle-uri-clone' into ds/bundle-uri-3\n\n Define the logical elements of a \"bundle list\", data structure to\n store them in-core, format to transfer them, and code to parse\n them.\n source: <pull.1333.v5.git.1665579160.gitgitgadget@gmail.com>\n\n\n* js/bisect-in-c (2022-08-30) 17 commits\n - bisect: no longer try to clean up left-over `.git/head-name` files\n - bisect: remove Cogito-related code\n - Turn `git bisect` into a full built-in\n - bisect: move even the command-line parsing to `bisect--helper`\n - bisect--helper: make `state` optional\n - bisect--helper: calling `bisect_state()` without an argument is a bug\n - bisect: avoid double-quoting when printing the failed command\n - bisect run: fix the error message\n - bisect: verify that a bogus option won't try to start a bisection\n - bisect--helper: migrate to OPT_SUBCOMMAND()\n - bisect--helper: make the order consistently `argc, argv`\n - bisect--helper: make `terms` an explicit singleton\n - bisect--helper: simplify exit code computation\n - bisect--helper: really retire `--bisect-autostart`\n - bisect--helper: really retire --bisect-next-check\n - bisect--helper: retire the --no-log option\n - Merge branch 'sg/parse-options-subcommand' into js/bisect-in-c\n\n Final bits of \"git bisect.sh\" have been rewritten in C.\n\n Needs review.\n cf. <xmqqv8pr8903.fsf@gitster.g>\n source: <pull.1132.v6.git.1661885419.gitgitgadget@gmail.com>\n"},{"id":"465281","messageId":"Y1DoHb1vRYpIyPzK@coredump.intra.peff.net","threadId":"58652","inReplyTo":"xmqqa65rnuvv.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2022, #06; Wed, 19)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2022-10-20T06:18:05Z","receivedAt":"2022-10-20T06:18:13Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Oct 19, 2022 at 06:31:16PM -0700, Junio C Hamano wrote:\n\n> * jk/use-o0-in-leak-sanitizer (2022-10-19) 1 commit\n>   (merged to 'next' on 2022-10-19 at 27c2546b98)\n>  + Makefile: force -O0 when compiling with SANITIZE=leak\n> \n>  Avoid false-positive from LSan whose assumption may be broken with\n>  higher optimization levels.\n> \n>  Will merge to 'master'.\n>  source: <Y08JZVDgJpJvrBiz@coredump.intra.peff.net>\n\nBTW, you should be able to see that \"next\" now passes the leaks CI job\n(because of this patch), but master doesn't yet.\n\n-Peff\n"},{"id":"465285","messageId":"3ed29217-ac10-c5e3-ae7e-969b7f55d058@dunelm.org.uk","threadId":"58652","inReplyTo":"xmqqa65rnuvv.fsf@gitster.g","subject":"pw/rebase-reflog-fixes (was Re: What's cooking in git.git (Oct 2022, #06; Wed, 19))","fromName":"Phillip Wood","fromEmail":"phillip.wood123@gmail.com","sentAt":"2022-10-20T09:56:19Z","receivedAt":"2022-10-20T09:56:25Z","isPatch":false,"sender":{"key":"phillip.wood@dunelm.org.uk","avatar":null},"body":"Hi Junio\n\n> * pw/rebase-reflog-fixes (2022-10-17) 9 commits\n>   - rebase: cleanup action handling\n>   - rebase --abort: improve reflog message\n>   - rebase --apply: make reflog messages match rebase --merge\n>   - rebase --apply: respect GIT_REFLOG_ACTION\n>   - rebase --merge: fix reflog message after skipping\n>   - rebase --merge: fix reflog when continuing\n>   - t3406: rework rebase reflog tests\n>   - rebase --apply: remove duplicated code\n>   - Merge branch 'pw/rebase-keep-base-fixes' into pw/rebase-reflog-fixes\n>   (this branch uses pw/rebase-keep-base-fixes.)\n> \n>   Fix some bugs in the reflog messages when rebasing and changes the\n>   reflog messages of \"rebase --apply\" to match \"rebase --merge\" with\n>   the aim of making the reflog easier to parse.\n> \n>   Will merge to 'next'??\n>   source: <pull.1150.v3.git.1665567312.gitgitgadget@gmail.com>\n\nCan you hold off on this one please, I'm planning to re-roll next week \nto address <xmqq35brh9re.fsf@gitster.g>\n\nThanks\n\nPhillip\n"},{"id":"465296","messageId":"xmqqmt9qmrnr.fsf@gitster.g","threadId":"58652","inReplyTo":"Y1DoHb1vRYpIyPzK@coredump.intra.peff.net","subject":"Re: What's cooking in git.git (Oct 2022, #06; Wed, 19)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-10-20T15:38:32Z","receivedAt":"2022-10-20T15:38:37Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Wed, Oct 19, 2022 at 06:31:16PM -0700, Junio C Hamano wrote:\n>\n>> * jk/use-o0-in-leak-sanitizer (2022-10-19) 1 commit\n>>   (merged to 'next' on 2022-10-19 at 27c2546b98)\n>>  + Makefile: force -O0 when compiling with SANITIZE=leak\n>> \n>>  Avoid false-positive from LSan whose assumption may be broken with\n>>  higher optimization levels.\n>> \n>>  Will merge to 'master'.\n>>  source: <Y08JZVDgJpJvrBiz@coredump.intra.peff.net>\n>\n> BTW, you should be able to see that \"next\" now passes the leaks CI job\n> (because of this patch), but master doesn't yet.\n\nYup, thanks!\n\nUnfortunately, without some CI/make updates, we cannot verify that\nmacOS builds are green again without Apple Crypto X-<.\n"},{"id":"465393","messageId":"Y1Hy9n7E1/yWKkYv@newk","threadId":"58652","inReplyTo":"xmqqa65rnuvv.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2022, #06; Wed, 19)","fromName":"Michael McClimon","fromEmail":"michael@mcclimon.org","sentAt":"2022-10-21T01:16:38Z","receivedAt":"2022-10-21T01:16:45Z","isPatch":false,"sender":{"key":"michael@mcclimon.org","avatar":"https://avatars.githubusercontent.com/u/1698723?v=4"},"body":"> * mm/git-pm-try-catch-syntax-fix (2022-10-17) 1 commit\n>  - Git.pm: add semicolon after catch statement\n> \n>  Fix a longstanding syntax error in Git.pm error codepath.\n> \n>  Will merge to 'next'??\n>  source: <20221016212236.12453-2-michael@mcclimon.org>\n\nI am not totally sure what these question marks mean, but I'm happy for\nthis to go to next, for what it's worth. (There was an outstanding\nquestion about the general behavior of Git.pm in bare unsafe\nrepositories, but I certainly am not planning to solve it in this\nseries.) Thanks!\n\n-- \nMichael McClimon\nmichael@mcclimon.org\n"},{"id":"465409","messageId":"Y1IO1egsi9vZPiUo@nand.local","threadId":"58652","inReplyTo":"xmqqa65rnuvv.fsf@gitster.g","subject":"tb/remove-unused-pack-bitmap","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2022-10-21T03:15:33Z","receivedAt":"2022-10-21T03:15:59Z","isPatch":false,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Wed, Oct 19, 2022 at 06:31:16PM -0700, Junio C Hamano wrote:\n> * tb/remove-unused-pack-bitmap (2022-10-17) 1 commit\n>  - builtin/repack.c: remove redundant pack-based bitmaps\n>\n>  When creating a multi-pack bitmap, remove per-pack bitmap files\n>  unconditionally as they will never be consulted.\n>\n>  Will merge to 'next'?\n>  source: <1e0ef7ee7ff5feb323c77e594cd65433fb1d99f7.1666061096.git.me@ttaylorr.com>\n\nYeah, this one is ready to go, per Peff's review:\n\n  https://lore.kernel.org/git/Y05HrVT9HxxDiXc2@coredump.intra.peff.net/\n\nThanks,\nTaylor\n"},{"id":"465411","messageId":"Y1ImS1Muvk1MAQeC@coredump.intra.peff.net","threadId":"58652","inReplyTo":"Y1Hy9n7E1/yWKkYv@newk","subject":"Re: What's cooking in git.git (Oct 2022, #06; Wed, 19)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2022-10-21T04:55:39Z","receivedAt":"2022-10-21T04:55:45Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Oct 20, 2022 at 09:16:38PM -0400, Michael McClimon wrote:\n\n> > * mm/git-pm-try-catch-syntax-fix (2022-10-17) 1 commit\n> >  - Git.pm: add semicolon after catch statement\n> > \n> >  Fix a longstanding syntax error in Git.pm error codepath.\n> > \n> >  Will merge to 'next'??\n> >  source: <20221016212236.12453-2-michael@mcclimon.org>\n> \n> I am not totally sure what these question marks mean, but I'm happy for\n> this to go to next, for what it's worth. (There was an outstanding\n> question about the general behavior of Git.pm in bare unsafe\n> repositories, but I certainly am not planning to solve it in this\n> series.) Thanks!\n\nMe too. I had hoped for a test, but because of those outstanding\nquestions about the behavior, I think we are better off skipping it for\nnow, and fixing what is obviously a bug.\n\nThere is one devil's advocate thing that is nagging at me, though.\nBecause this whole safe-directory thing is security-relevant, could we\nmake things worse by \"fixing\" it partially? That is, consider\nthis code:\n\n  git init --bare foo.git\n  sudo chown -R nobody foo.git\n  cd foo.git\n  perl -MGit -e 'Git->repository'\n\nPost 2.35.4, etc, is it a security vulnerability for that final step to\nopen the repository? If so, then right now we are \"not vulnerable\" in\nthe sense that an unrelated bug causes Git.pm to bail in the final step.\nAnd fixing that will mean we become vulnerable.\n\nTo be clear, having an unrelated bug is not a good way to prevent\nsecurity vulnerabilities. But it is the status quo. If the fixed version\n(after your patch to add the semicolon) is vulnerable, but the released\none in the hands of users is not, then fixing it does make things worse\nin the short term (even though the obviously correct thing in the long\nrun is to fix that bug and also correct the vulnerability the right\nway).\n\nI wasn't around when the directory-ownership stuff was discussed or\nworked on. But it might be nice for people who worked on it or thought a\nlot about it to give an opinion on whether the state after your patch is\nin fact vulnerable to a security flaw.\n\n-Peff\n"},{"id":"465505","messageId":"kl6lczalx8ox.fsf@chooglen-macbookpro.roam.corp.google.com","threadId":"58652","inReplyTo":"Y1ImS1Muvk1MAQeC@coredump.intra.peff.net","subject":"Re: What's cooking in git.git (Oct 2022, #06; Wed, 19)","fromName":"Glen Choo","fromEmail":"chooglen@google.com","sentAt":"2022-10-21T19:45:02Z","receivedAt":"2022-10-21T19:45:14Z","isPatch":false,"sender":{"key":"glencbz@gmail.com","avatar":"https://avatars.githubusercontent.com/u/58092771?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Thu, Oct 20, 2022 at 09:16:38PM -0400, Michael McClimon wrote:\n>\n>> > * mm/git-pm-try-catch-syntax-fix (2022-10-17) 1 commit\n>> >  - Git.pm: add semicolon after catch statement\n>> > \n>> >  Fix a longstanding syntax error in Git.pm error codepath.\n>> > \n>> >  Will merge to 'next'??\n>> >  source: <20221016212236.12453-2-michael@mcclimon.org>\n>> \n>> I am not totally sure what these question marks mean, but I'm happy for\n>> this to go to next, for what it's worth. (There was an outstanding\n>> question about the general behavior of Git.pm in bare unsafe\n>> repositories, but I certainly am not planning to solve it in this\n>> series.) Thanks!\n>\n> Me too. I had hoped for a test, but because of those outstanding\n> questions about the behavior, I think we are better off skipping it for\n> now, and fixing what is obviously a bug.\n>\n> There is one devil's advocate thing that is nagging at me, though.\n> Because this whole safe-directory thing is security-relevant, could we\n> make things worse by \"fixing\" it partially? That is, consider\n> this code:\n>\n>   git init --bare foo.git\n>   sudo chown -R nobody foo.git\n>   cd foo.git\n>   perl -MGit -e 'Git->repository'\n>\n> Post 2.35.4, etc, is it a security vulnerability for that final step to\n> open the repository? If so, then right now we are \"not vulnerable\" in\n> the sense that an unrelated bug causes Git.pm to bail in the final step.\n> And fixing that will mean we become vulnerable.\n>\n> To be clear, having an unrelated bug is not a good way to prevent\n> security vulnerabilities. But it is the status quo. If the fixed version\n> (after your patch to add the semicolon) is vulnerable, but the released\n> one in the hands of users is not, then fixing it does make things worse\n> in the short term (even though the obviously correct thing in the long\n> run is to fix that bug and also correct the vulnerability the right\n> way).\n>\n> I wasn't around when the directory-ownership stuff was discussed or\n> worked on. But it might be nice for people who worked on it or thought a\n> lot about it to give an opinion on whether the state after your patch is\n> in fact vulnerable to a security flaw.\n\nOff the top of my mind, the safe.* protections mitigate:\n\n1) safe.directory: Attacker creates a difficult-to-spot repo high in the\n   directory structure in a shared machine, and the victim navigates\n   into an innocuous-looking directory that happens to be a subdirectory\n   of that repo.\n2) safe.directory: Attacker creates a repo somewhere on a shared machine\n   and tricks the victim into navigating into that repo.\n3) safe.bareRepository: Attacker creates a repo with a bare repo in its\n   working tree and tricks the victim into cloning the repo and\n   navigating into the bare repo.\n\nIn each of these cases, having the user specify GIT_DIR to mean \"yes\nthis directory is really the one I wanted\" is a reasonable tradeoff IMO.\nSome ways of setting GIT_DIR might be ok, e.g. GIT_DIR=. everywhere is\npretty flawed for 2 and 3, but it does mitigate against 1 (which is\narguably the scariest).\n\nHowever, if GIT_DIR is set by searching for the repo (e.g. by \"git\nrev-parse --git-dir\"), this just disables every safe.* protection. IIRC,\nyou mentioned that this is exactly what Git.pm does, so as it is, yes\nthis does leave us in a vulnerable state.\n\nIf we are using `git rev-parse --git-dir`, maybe a reasonable solution\nwould be to teach `rev-parse` to respect safe.* protections? e.g. `git\nrev-parse --git-dir --safe` could error out just like `git` in an unsafe\nrepository.\n\n[1] https://lore.kernel.org/git/Y02SHlW1rNQdfCHI@coredump.intra.peff.net\n\n>\n> -Peff\n"},{"id":"465582","messageId":"Y1RqkMk4A8N6A38K@coredump.intra.peff.net","threadId":"58652","inReplyTo":"kl6lczalx8ox.fsf@chooglen-macbookpro.roam.corp.google.com","subject":"Re: What's cooking in git.git (Oct 2022, #06; Wed, 19)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2022-10-22T22:11:28Z","receivedAt":"2022-10-22T22:11:33Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Oct 21, 2022 at 12:45:02PM -0700, Glen Choo wrote:\n\n> However, if GIT_DIR is set by searching for the repo (e.g. by \"git\n> rev-parse --git-dir\"), this just disables every safe.* protection. IIRC,\n> you mentioned that this is exactly what Git.pm does, so as it is, yes\n> this does leave us in a vulnerable state.\n\nThanks, that matches my understanding. I think Git.pm is vulnerable (but\nagain, not in a released version because of the syntax error).\n\n> If we are using `git rev-parse --git-dir`, maybe a reasonable solution\n> would be to teach `rev-parse` to respect safe.* protections? e.g. `git\n> rev-parse --git-dir --safe` could error out just like `git` in an unsafe\n> repository.\n\nrev-parse does work that way. It's just that Git.pm has some oddities.\nMore discussion (with my analysis and a patch) in this other thread:\n\n  https://lore.kernel.org/git/Y1Rp+7R7e+LFa5k6@coredump.intra.peff.net/\n\n-Peff\n"}]}