{"thread":{"id":"58400","subject":"What's cooking in git.git (Sep 2022, #01; Mon, 5)","startedAt":"2022-09-06T06:49:28Z","lastAt":"2022-09-09T16:56:22Z","messageCount":6,"participants":["Junio C Hamano","Elijah Newren","Glen Choo"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"462646","messageId":"xmqqilm1yp3m.fsf@gitster.g","threadId":"58400","inReplyTo":null,"subject":"What's cooking in git.git (Sep 2022, #01; Mon, 5)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-09-06T06:49:17Z","receivedAt":"2022-09-06T06:49:28Z","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\nWe just started week #9 in a 12-week cycle toward Git 2.38\n(tinyurl.com/gitCal), but since Monday was a holiday in US, we may\nsee only four days worth of new patches, which is less work for our\nreviewers pool ;-)\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* ac/bitmap-lookup-table (2022-08-28) 7 commits\n  (merged to 'next' on 2022-08-29 at 05d2d2c8bd)\n + pack-bitmap-write: drop unused pack_idx_entry parameters\n  (merged to 'next' on 2022-08-26 at 7914c141eb)\n + bitmap-lookup-table: add performance tests for lookup table\n + pack-bitmap: prepare to read lookup table extension\n + pack-bitmap-write: learn pack.writeBitmapLookupTable and add tests\n + pack-bitmap-write.c: write lookup table extension\n + bitmap: move `get commit positions` code to `bitmap_writer_finish`\n + Documentation/technical: describe bitmap lookup table extension\n\n The pack bitmap file gained a bitmap-lookup table to speed up\n locating the necessary bitmap for a given commit.\n source: <pull.1266.v6.git.1660496112.gitgitgadget@gmail.com>\n\n\n* bc/gc-crontab-fix (2022-08-28) 1 commit\n  (merged to 'next' on 2022-08-30 at a7a240a4da)\n + gc: use temporary file for editing crontab\n (this branch is used by jk/test-crontab-fixes.)\n\n FreeBSD portability fix for \"git maintenance\" that spawns \"crontab\"\n to schedule tasks.\n source: <20220828214143.754759-1-sandals@crustytoothpaste.net>\n\n\n* ds/bundle-uri-clone (2022-08-24) 6 commits\n  (merged to 'next' on 2022-08-25 at 14754922fa)\n + clone: warn on failure to repo_init()\n  (merged to 'next' on 2022-08-18 at 5e8a3ec71e)\n + clone: --bundle-uri cannot be combined with --depth\n + bundle-uri: add support for http(s):// and file://\n + clone: add --bundle-uri option\n + bundle-uri: create basic file-copy logic\n + remote-curl: add 'get' capability\n (this branch is used by ds/bundle-uri-3.)\n\n Implement \"git clone --bundle-uri\".\n source: <pull.1300.v3.git.1660050703.gitgitgadget@gmail.com>\n source: <5229519b-3af2-a023-8996-43343b130722@github.com>\n\n\n* en/merge-multi-strategies (2022-08-24) 2 commits\n  (merged to 'next' on 2022-08-25 at 420e2eae66)\n + merge: small code readability improvement\n + merge: cleanup confusing logic for handling successful merges\n\n The code that implements multi-strategy support in \"git merge\" has\n been clean-up a bit.\n source: <pull.1331.v2.git.1661222541.gitgitgadget@gmail.com>\n\n\n* en/merge-unstash-only-on-clean-merge (2022-08-24) 1 commit\n  (merged to 'next' on 2022-08-25 at a144bdf6cb)\n + merge: only apply autostash when appropriate\n\n The auto-stashed local changes created by \"git merge --autostash\"\n was mixed into a conflicted state left in the working tree, which\n has been corrected.\n source: <610b8d089db97bf1a37dbf230f51ecafe3086254.1661222541.git.gitgitgadget@gmail.com>\n\n\n* en/t4301-more-merge-tree-tests (2022-08-24) 1 commit\n  (merged to 'next' on 2022-08-25 at c7abf60ff4)\n + t4301: add more interesting merge-tree testcases\n (this branch is used by es/t4301-sed-portability-fix.)\n\n More tests to protect the current behaviour of \"merge-tree\" before\n it gets further updated.\n source: <pull.1332.git.1661237316150.gitgitgadget@gmail.com>\n\n\n* en/test-without-test-create-repo (2022-08-26) 1 commit\n  (merged to 'next' on 2022-08-30 at 4f80f48e27)\n + t64xx: convert 'test_create_repo' to 'git init'\n\n Test clean-up.\n source: <pull.1303.v2.git.git.1661485759789.gitgitgadget@gmail.com>\n\n\n* es/t4301-sed-portability-fix (2022-08-29) 4 commits\n  (merged to 'next' on 2022-08-30 at eec0ceef0a)\n + t4301: emit blank line in more idiomatic fashion\n + t4301: fix broken &&-chains and add missing loop termination\n + t4301: account for behavior differences between sed implementations\n + Merge branch 'en/t4301-more-merge-tree-tests' into es/t4301-sed-portability-fix\n\n Test clean-up.\n source: <pull.1339.git.1661663879.gitgitgadget@gmail.com>\n\n\n* jk/test-crontab-fixes (2022-08-30) 1 commit\n  (merged to 'next' on 2022-09-02 at d5113b5be3)\n + test-crontab: minor memory and error handling fixes\n (this branch uses bc/gc-crontab-fix.)\n\n Test helper fix.\n source: <20220823010120.25388-1-sandals@crustytoothpaste.net>\n\n\n* rs/tempfile-cleanup-race-fix (2022-08-27) 1 commit\n  (merged to 'next' on 2022-08-30 at 158dd1c910)\n + tempfile: avoid directory cleanup race\n (this branch is used by jk/tempfile-active-flag-cleanup.)\n\n The clean-up of temporary files created via mks_tempfile_dt() was\n racy and attempted to unlink() the leading directory when signals\n are involved, which has been corrected.\n source: <526a174e-b179-c284-a21c-7afe0a0b4df2@web.de>\n\n\n* rs/test-mergesort (2022-08-28) 2 commits\n  (merged to 'next' on 2022-08-30 at 4905149886)\n + test-mergesort: use mem_pool for sort input\n + test-mergesort: read sort input all at once\n\n Optimization of a test-helper command.\n source: <128f0fb8-d29b-8622-0cfe-2ecadc999db5@web.de>\n\n\n* sg/parse-options-subcommand (2022-08-25) 23 commits\n  (merged to 'next' on 2022-08-25 at dab6bf1439)\n + remote: run \"remote rm\" argv through parse_options()\n + maintenance: add parse-options boilerplate for subcommands\n + pass subcommand \"prefix\" arguments to parse_options()\n  (merged to 'next' on 2022-08-22 at 09d07c2271)\n + builtin/worktree.c: let parse-options parse subcommands\n + builtin/stash.c: let parse-options parse subcommands\n + builtin/sparse-checkout.c: let parse-options parse subcommands\n + builtin/remote.c: let parse-options parse subcommands\n + builtin/reflog.c: let parse-options parse subcommands\n + builtin/notes.c: let parse-options parse subcommands\n + builtin/multi-pack-index.c: let parse-options parse subcommands\n + builtin/hook.c: let parse-options parse subcommands\n + builtin/gc.c: let parse-options parse 'git maintenance's subcommands\n + builtin/commit-graph.c: let parse-options parse subcommands\n + builtin/bundle.c: let parse-options parse subcommands\n + parse-options: add support for parsing subcommands\n + parse-options: drop leading space from '--git-completion-helper' output\n + parse-options: clarify the limitations of PARSE_OPT_NODASH\n + parse-options: PARSE_OPT_KEEP_UNKNOWN only applies to --options\n + api-parse-options.txt: fix description of OPT_CMDMODE\n + t0040-parse-options: test parse_options() with various 'parse_opt_flags'\n + t5505-remote.sh: check the behavior without a subcommand\n + t3301-notes.sh: check that default operation mode doesn't take arguments\n + git.c: update NO_PARSEOPT markings\n (this branch is used by js/bisect-in-c.)\n\n Introduce the \"subcommand\" mode to parse-options API and update the\n command line parser of Git commands with subcommands.\n source: <20220819160411.1791200-1-szeder.dev@gmail.com>\n source: <YwdSzrF3xaHvLsI+@coredump.intra.peff.net>\n\n\n* tb/midx-with-changing-preferred-pack-fix (2022-08-22) 7 commits\n  (merged to 'next' on 2022-08-26 at 305a9d3323)\n + midx.c: avoid adding preferred objects twice\n + midx.c: include preferred pack correctly with existing MIDX\n + midx.c: extract `midx_fanout_add_pack_fanout()`\n + midx.c: extract `midx_fanout_add_midx_fanout()`\n + midx.c: extract `struct midx_fanout`\n + t/lib-bitmap.sh: avoid silencing stderr\n + t5326: demonstrate potential bitmap corruption\n\n Multi-pack index got corrupted when preferred pack changed from one\n pack to another in a certain way, which has been corrected.\n source: <cover.1661197803.git.me@ttaylorr.com>\n\n\n\n--------------------------------------------------\n[Stalled]\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 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\n\n--------------------------------------------------\n[New Topics]\n\n* ab/unused-annotation (2022-09-01) 2 commits\n - git-compat-util.h: use \"deprecated\" for UNUSED variables\n - git-compat-util.h: use \"UNUSED\", not \"UNUSED(var)\"\n (this branch uses jk/unused-annotation.)\n\n Undoes 'jk/unused-annotation' topic and redoes it to work around\n Coccinelle rules misfiring false positives in unrelated codepaths.\n\n Will merge to 'next'?\n source: <cover-0.2-00000000000-20220825T170709Z-avarab@gmail.com>\n\n\n* ab/coccicheck-incremental (2022-08-31) 9 commits\n - spatchcache: add a ccache-alike for \"spatch\"\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\n source: <cover-v2-0.9-00000000000-20220831T205130Z-avarab@gmail.com>\n\n\n* ab/retire-ppc-sha1 (2022-08-31) 2 commits\n  (merged to 'next' on 2022-09-05 at 480da6ef06)\n + Makefile: use $(OBJECTS) instead of $(C_OBJ)\n + Makefile + hash.h: remove PPC_SHA1 implementation\n\n Remove the assembly version of SHA-1 implementation for PPC.\n\n Will merge to 'master'.\n source: <cover-v3-0.2-00000000000-20220831T090744Z-avarab@gmail.com>\n\n\n* en/remerge-diff-fixes (2022-09-02) 3 commits\n - diff: fix filtering of merge commits under --remerge-diff\n - diff: fix filtering of additional headers under --remerge-diff\n - diff: have submodule_format logic avoid additional diff headers\n\n Fix a few \"git log --remerge-diff\" bugs.\n\n Will probably need to rebase to make it mergeable to 'maint'.\n source: <pull.1342.v3.git.1662090810.gitgitgadget@gmail.com>\n\n\n* es/chainlint (2022-09-01) 18 commits\n - t: retire unused chainlint.sed\n - t/Makefile: teach `make test` and `make prove` to run chainlint.pl\n - test-lib: replace chainlint.sed with chainlint.pl\n - test-lib: retire \"lint harder\" optimization hack\n - t/chainlint: add more chainlint.pl self-tests\n - chainlint.pl: allow `|| echo` to signal failure upstream of a pipe\n - chainlint.pl: complain about loops lacking explicit failure handling\n - chainlint.pl: don't flag broken &&-chain if failure indicated explicitly\n - chainlint.pl: don't flag broken &&-chain if `$?` handled explicitly\n - chainlint.pl: don't require `&` background command to end with `&&`\n - t/Makefile: apply chainlint.pl to existing self-tests\n - chainlint.pl: don't require `return|exit|continue` to end with `&&`\n - chainlint.pl: validate test scripts in parallel\n - chainlint.pl: add parser to identify test definitions\n - chainlint.pl: add parser to validate tests\n - chainlint.pl: add POSIX shell parser\n - chainlint.pl: add POSIX shell lexical analyzer\n - t: add skeleton chainlint.pl\n\n Revamp chainlint script for our tests.\n source: <pull.1322.git.git.1661992197.gitgitgadget@gmail.com>\n\n\n* jk/tempfile-active-flag-cleanup (2022-08-30) 3 commits\n  (merged to 'next' on 2022-09-05 at 43ed4656b3)\n + tempfile: update comment describing state transitions\n + tempfile: drop active flag\n + Merge branch 'rs/tempfile-cleanup-race-fix' into jk/tempfile-active-flag-cleanup\n\n Code clean-up.\n\n Will merge to 'master'.\n source: <Yw5nmNJSm9uzLOKL@coredump.intra.peff.net>\n\n\n* vd/scalar-to-main (2022-09-02) 9 commits\n - Documentation/technical: include Scalar technical doc\n - t/perf: add 'GIT_PERF_USE_SCALAR' run option\n - t/perf: add Scalar performance tests\n - scalar-clone: add test coverage\n - scalar: add to 'git help -a' command list\n - scalar: implement the `help` subcommand\n - git help: special-case `scalar`\n - scalar: include in standard Git build & installation\n - scalar: fix command documentation section header\n\n Hoist the remainder of \"scalar\" out of contrib/ to the main part of\n the codebase.\n source: <pull.1341.v2.git.1662134210.gitgitgadget@gmail.com>\n\n\n* ad/t1800-cygwin (2022-09-01) 1 commit\n - t1800: correct test to handle Cygwin\n\n Test fix.\n\n Expecting a reroll.\n cf. <YxFinAJ2NeKiHaS8@danh.dev>\n source: <20220901173942.abolcr4aa5gixncm@lucy.dinwoodie.org>\n\n\n* jc/diff-no-index-unleak (2022-09-02) 1 commit\n - diff --no-index: unleak paths[] elements\n\n Plug a leak or two in \"git diff --no-index\".\n source: <xmqqilm579hc.fsf@gitster.g>\n\n\n* ow/rev-parse-parseopt-fix (2022-09-02) 1 commit\n - rev-parse --parseopt: detect missing opt-spec\n\n The parser in the script interface to parse-options in \"git\n rev-parse\" has been updated to diagnose a bogus input correctly.\n\n Will merge to 'next'?\n source: <20220902175902.22346-1-oystwa@gmail.com>\n\n\n* vd/sparse-reset-checkout-fixes (2022-09-02) 1 commit\n  (merged to 'next' on 2022-09-05 at 8c59ace003)\n + unpack-trees: fix sparse directory recursion check\n\n Segfault fix-up to an earlier fix to the topic to teach \"git reset\"\n and \"git checkout\" work better in a sparse checkout.\n\n Will merge to 'master'.\n source: <pull.1344.git.1662066153644.gitgitgadget@gmail.com>\n\n--------------------------------------------------\n[Cooking]\n\n* tb/diffstat-with-utf8-strwidth (2022-08-27) 1 commit\n - diff.c: use utf8_strwidth() when appropriate\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 source: <20220827085007.20030-1-tboegi@web.de>\n\n\n* gc/submodule-propagate-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 Needs review.\n source: <pull.1321.git.git.1661806456.gitgitgadget@gmail.com>\n\n\n* jc/format-patch-force-in-body-from (2022-08-29) 3 commits\n  (merged to 'next' on 2022-09-05 at cecaaad60e)\n + format-patch: learn format.forceInBodyFrom configuration variable\n + format-patch: allow forcing the use of in-body From: header\n + pretty: separate out the logic to decide the use of in-body from\n\n \"git format-patch --from=<ident>\" can be told to add an in-body\n \"From:\" line even for commits that are authored by the given\n <ident> with \"--force-in-body-from\"option.\n\n Will merge to 'master'.\n source: <20220829213837.13849-1-gitster@pobox.com>\n\n\n* sy/sparse-grep (2022-09-02) 3 commits\n - builtin/grep.c: walking tree instead of expanding index with --sparse\n - builtin/grep.c: integrate with sparse index\n - builtin/grep.c: add --sparse option\n\n source: <20220903003623.64750-1-shaoxuan.yuan02@gmail.com>\n\n\n* cc/doc-trailer-whitespace-rules (2022-08-30) 1 commit\n  (merged to 'next' on 2022-09-05 at 4c018a3ab7)\n + Documentation: clarify whitespace rules for trailers\n\n Doc update.\n\n Will merge to 'master'.\n source: <20220830105046.324041-1-christian.couder@gmail.com>\n\n\n* js/builtin-add-p-portability-fix (2022-08-30) 3 commits\n - t6132(NO_PERL): do not run the scripted `add -p`\n - t3701: test the built-in `add -i` regardless of NO_PERL\n - add -p: avoid ambiguous signed/unsigned comparison\n\n More fixes to \"add -p\"\n\n Will merge to 'next'?\n source: <pull.1340.git.1661867664.gitgitgadget@gmail.com>\n\n\n* ds/use-platform-regex-on-macos (2022-08-26) 1 commit\n - grep: fix multibyte regex handling under macOS\n\n With a bit of header twiddling, use the native regexp library on\n macOS instead of the compat/ one.\n\n Needs review.\n source: <20220826085815.2771102-1-dds@aueb.gr>\n\n\n* ds/bundle-uri-3 (2022-08-24) 8 commits\n - bundle-uri: fetch a list of bundles\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 - 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\n Needs review.\n source: <pull.1333.git.1661181174.gitgitgadget@gmail.com>\n\n\n* js/add-p-diff-parsing-fix (2022-09-01) 3 commits\n  (merged to 'next' on 2022-09-02 at 1545e0898d)\n + add -p: ignore dirty submodules\n + add -p: gracefully handle unparseable hunk headers in colored diffs\n + add -p: detect more mismatches between plain vs colored diffs\n\n Those who use diff-so-fancy as the diff-filter noticed a regression\n or two in the code that parses the diff output in the built-in\n version of \"add -p\", which has been corrected.\n\n Will merge to 'master'.\n source: <pull.1336.v5.git.1662046939.gitgitgadget@gmail.com>\n\n\n* js/cmake-updates (2022-08-24) 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 Needs review.\n source: <pull.1320.v2.git.1661243463.gitgitgadget@gmail.com>\n\n\n* js/range-diff-with-pathspec (2022-08-26) 3 commits\n  (merged to 'next' on 2022-09-05 at c027222552)\n + range-diff: optionally accept pathspecs\n + range-diff: consistently validate the arguments\n + range-diff: reorder argument handling\n\n Allow passing a pathspec to \"git range-diff\".\n\n Will merge to 'master'.\n source: <pull.1335.v2.git.1661506770.gitgitgadget@gmail.com>\n\n\n* jk/unused-annotation (2022-08-19) 11 commits\n  (merged to 'next' on 2022-08-24 at 2174b8c75d)\n + is_path_owned_by_current_uid(): mark \"report\" parameter as unused\n + run-command: mark unused async callback parameters\n + mark unused read_tree_recursive() callback parameters\n + hashmap: mark unused callback parameters\n + config: mark unused callback parameters\n + streaming: mark unused virtual method parameters\n + transport: mark bundle transport_options as unused\n + refs: mark unused virtual method parameters\n + refs: mark unused reflog callback parameters\n + refs: mark unused each_ref_fn parameters\n + git-compat-util: add UNUSED macro\n (this branch is used by ab/unused-annotation.)\n\n Annotate function parameters that are not used (but cannot be\n removed for structural reasons), to prepare us to later compile\n with -Wunused warning turned on.\n\n Will keep but 'ab/unused-annotation' will undo/redo the whole thing.\n cf. <Ywh7ppVFk6VK1Ybs@coredump.intra.peff.net>\n cf. <xmqqy1v7r3so.fsf@gitster.g>\n source: <Yv9gxqH6nK2KYnNj@coredump.intra.peff.net>\n\n\n* ed/fsmonitor-on-network-disk (2022-08-31) 5 commits\n - fsmonitor: normalize FSEvents event paths to the real path\n - fsmonitor: ensure filesystem and unix socket filesystem are compatible\n - fsmonitor: generate unique Unix socket file name in the desired location\n - fsmonitor: add two new config options, allowRemote and socketDir\n  (merged to 'next' on 2022-08-14 at 637d458d9c)\n + fsmonitor: option to allow fsmonitor to run against network-mounted repos\n\n The built-in fsmonitor refuses to work on a network mounted\n repositories; a configuration knob for users to override this has\n been introduced.\n\n Needs review.\n source: <pull.1317.v3.git.1660242752495.gitgitgadget@gmail.com>\n source: <pull.1326.v4.git.1661962145.gitgitgadget@gmail.com>\n\n\n* pw/rebase-keep-base-fixes (2022-08-18) 5 commits\n - rebase --keep-base: imply --no-fork-point\n - rebase --keep-base: imply --reapply-cherry-picks\n - rebase: factor out merge_base calculation\n - rebase: store orig_head as a commit\n - t3416: set $EDITOR in subshell\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 Expecting a reroll.\n cf. <eab55cef-62bd-af2b-c295-1e76beca032f@gmail.com>\n source: <pull.1323.git.1660576283.gitgitgadget@gmail.com>\n\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* sy/mv-out-of-cone (2022-08-10) 9 commits\n  (merged to 'next' on 2022-08-17 at 2316d9ce4d)\n + mv: check overwrite for in-to-out move\n + advice.h: add advise_on_moving_dirty_path()\n + mv: cleanup empty WORKING_DIRECTORY\n + mv: from in-cone to out-of-cone\n + mv: remove BOTH from enum update_mode\n + mv: check if <destination> is a SKIP_WORKTREE_DIR\n + mv: free the with_slash in check_dir_in_index()\n + mv: rename check_dir_in_index() to empty_dir_has_sparse_contents()\n + t7002: add tests for moving from in-cone to out-of-cone\n\n \"git mv A B\" in a sparsely populated working tree can be asked to\n move a path from a directory that is \"in cone\" to another directory\n that is \"out of cone\".  Handling of such a case has been improved.\n\n An oob read access makes sanitizer build segfault.\n cf.<YwdJRRuST2SP8ZT7@coredump.intra.peff.net>\n source: <20220809120910.2021413-1-shaoxuan.yuan02@gmail.com>\n\n\n* ab/submodule-helper-prep (2022-09-02) 33 commits\n  (merged to 'next' on 2022-09-05 at b0d1b6ada7)\n + submodule--helper: fix bad config API usage\n + submodule--helper: libify even more \"die\" paths for module_update()\n + submodule--helper: libify more \"die\" paths for module_update()\n + submodule--helper: check repo{_submodule,}_init() return values\n + submodule--helper: libify \"must_die_on_failure\" code paths (for die)\n + submodule--helper update: don't override 'checkout' exit code\n + submodule--helper: libify \"must_die_on_failure\" code paths\n + submodule--helper: libify determine_submodule_update_strategy()\n + submodule--helper: don't exit() on failure, return\n + submodule--helper: use \"code\" in run_update_command()\n + submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string()\n + submodule--helper: don't call submodule_strategy_to_string() in BUG()\n + submodule--helper: add missing braces to \"else\" arm\n + submodule--helper: return \"ret\", not \"1\" from update_submodule()\n + submodule--helper: rename \"int res\" to \"int ret\"\n + submodule--helper: don't redundantly check \"else if (res)\"\n + submodule--helper: refactor \"errmsg_str\" to be a \"struct strbuf\"\n + submodule--helper: add \"const\" to passed \"struct update_data\"\n + submodule--helper: add \"const\" to copy of \"update_data\"\n + submodule--helper: add \"const\" to passed \"module_clone_data\"\n + submodule--helper: move \"sb\" in clone_submodule() to its own scope\n + submodule--helper: use xstrfmt() in clone_submodule()\n + submodule--helper: replace memset() with { 0 }-initialization\n + submodule--helper style: add \\n\\n after variable declarations\n + submodule--helper style: don't separate declared variables with \\n\\n\n + submodule--helper: move \"resolve-relative-url-test\" to a test-tool\n + submodule--helper: move \"check-name\" to a test-tool\n + submodule--helper: move \"is-active\" to a test-tool\n + test-tool submodule-config: remove unused \"--url\" handling\n + submodule--helper: remove unused \"list\" helper\n + submodule--helper: remove unused \"name\" helper\n + submodule tests: test for \"add <repository> <abs-path>\"\n + submodule tests: test usage behavior\n (this branch is used by ab/submodule-helper-leakfix.)\n\n Code clean-up of \"git submodule--helper\".\n\n Will merge to 'master'.\n source: <cover-v4-00.33-00000000000-20220831T230519Z-avarab@gmail.com>\n\n\n* ab/dedup-config-and-command-docs (2022-08-31) 9 commits\n - docs: add CONFIGURATION sections that fuzzy map to built-ins\n - docs: add CONFIGURATION sections that map to a built-in\n - log docs: de-duplicate configuration sections\n - difftool docs: de-duplicate configuration sections\n - notes docs: de-duplicate and combine configuration sections\n - apply docs: de-duplicate configuration sections\n - send-email docs: de-duplicate configuration sections\n - grep docs: de-duplicate configuration sections\n - docs: add and use include template for config/* includes\n\n Share the text used to explain configuration variables used by \"git\n <subcmd>\" in \"git help <subcmd>\" with the text from \"git help config\".\n source: <cover-v3-0.9-00000000000-20220831T083759Z-avarab@gmail.com>\n\n\n* ab/submodule-helper-leakfix (2022-09-02) 18 commits\n - submodule--helper: fix a configure_added_submodule() leak\n - submodule--helper: free rest of \"displaypath\" in \"struct update_data\"\n - submodule--helper: free some \"displaypath\" in \"struct update_data\"\n - submodule--helper: fix a memory leak in print_status()\n - submodule--helper: fix a leak in module_add()\n - submodule--helper: fix obscure leak in module_add()\n - submodule--helper: fix \"reference\" leak\n - submodule--helper: fix a memory leak in get_default_remote_submodule()\n - submodule--helper: fix a leak with repo_clear()\n - submodule--helper: fix \"sm_path\" and other \"module_cb_list\" leaks\n - submodule--helper: fix \"errmsg_str\" memory leak\n - submodule--helper: add and use *_release() functions\n - submodule--helper: don't leak {run,capture}_command() cp.dir argument\n - submodule--helper: \"struct pathspec\" memory leak in module_update()\n - submodule--helper: fix most \"struct pathspec\" memory leaks\n - submodule--helper: fix trivial get_default_remote_submodule() leak\n - submodule--helper: fix a leak in \"clone_submodule\"\n - Merge branch 'ab/submodule-helper-prep' into ab/submodule-helper-leakfix\n (this branch uses ab/submodule-helper-prep.)\n\n Plugging leaks in submodule--helper.\n\n Will merge to 'next'?\n source: <cover-v7-00.17-00000000000-20220831T231003Z-avarab@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* 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 source: <pull.1132.v6.git.1661885419.gitgitgadget@gmail.com>\n"},{"id":"462654","messageId":"CABPp-BEX0ScdAvQ1YaPUPNQ197mhcRMEFnHBoJ_0MBTK3nv_DA@mail.gmail.com","threadId":"58400","inReplyTo":"xmqqilm1yp3m.fsf@gitster.g","subject":"en/remerge-diff-fixes (Was: Re: What's cooking in git.git (Sep 2022, #01; Mon, 5))","fromName":"Elijah Newren","fromEmail":"newren@gmail.com","sentAt":"2022-09-06T14:17:31Z","receivedAt":"2022-09-06T15:18:27Z","isPatch":false,"sender":{"key":"newren@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5455730?v=4"},"body":"Hi Junio,\n\nOn Tue, Sep 6, 2022 at 12:41 AM Junio C Hamano <gitster@pobox.com> wrote:\n\n> * en/remerge-diff-fixes (2022-09-02) 3 commits\n>  - diff: fix filtering of merge commits under --remerge-diff\n>  - diff: fix filtering of additional headers under --remerge-diff\n>  - diff: have submodule_format logic avoid additional diff headers\n>\n>  Fix a few \"git log --remerge-diff\" bugs.\n>\n>  Will probably need to rebase to make it mergeable to 'maint'.\n>  source: <pull.1342.v3.git.1662090810.gitgitgadget@gmail.com>\n\nIt rebases to 'maint' without conflict and the result correctly\napplies there...but rebasing to maint causes it to drop a line of code\n(\"TEST_PASSES_SANITIZE_LEAK=true\") which is called out in the commit\nmessage, making the commit message look funny.  Also, while that line\nremoval turns out to not matter to maint (because the leak checker was\nalready off), it is critical for main.  So, if you merge the rebased\nresult back to main, the leak check will fail -- unless the merge back\nis an \"evil merge\" that restores the removal of that line.\n\nSo, which of the following would you prefer?\n  * A separate series for maint and main?\n  * Just ignore maint?\n  * Me to rebase on maint to tweak the commit message, and then you\ncarefully reinstate the line removal as part of the merge back to\nmain?\n"},{"id":"462732","messageId":"xmqqedwnyx98.fsf@gitster.g","threadId":"58400","inReplyTo":"CABPp-BEX0ScdAvQ1YaPUPNQ197mhcRMEFnHBoJ_0MBTK3nv_DA@mail.gmail.com","subject":"Re: en/remerge-diff-fixes","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-09-07T16:17:39Z","receivedAt":"2022-09-07T16:17:43Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Elijah Newren <newren@gmail.com> writes:\n\n> So, which of the following would you prefer?\n>   * A separate series for maint and main?\n>   * Just ignore maint?\n>   * Me to rebase on maint to tweak the commit message, and then you\n> carefully reinstate the line removal as part of the merge back to\n> main?\n\nNone of them X-<.\n\nAs this cycle gets close to end, mergeability to 'maint' starts to\nmatter less and less, so let's stop worrying about this single\ninstance.\n"},{"id":"462772","messageId":"kl6ly1uu94ca.fsf@chooglen-macbookpro.roam.corp.google.com","threadId":"58400","inReplyTo":"xmqqilm1yp3m.fsf@gitster.g","subject":"Re: What's cooking in git.git (Sep 2022, #01; Mon, 5)","fromName":"Glen Choo","fromEmail":"chooglen@google.com","sentAt":"2022-09-07T23:01:25Z","receivedAt":"2022-09-07T23:01:40Z","isPatch":false,"sender":{"key":"glencbz@gmail.com","avatar":"https://avatars.githubusercontent.com/u/58092771?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> * gc/submodule-propagate-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>  Needs review.\n>  source: <pull.1321.git.git.1661806456.gitgitgadget@gmail.com>\n\nI suggest renaming the branch - the config \"submodule.propagateBranches\"\nwill be used by many more commands in the future, several of which will\nprobably be authored by me :)\n\nMaybe gc/submodule-update-with-branches? Or\ngc/recursive-clone-with-branches.\n"},{"id":"462814","messageId":"xmqqpmg5rehf.fsf@gitster.g","threadId":"58400","inReplyTo":"kl6ly1uu94ca.fsf@chooglen-macbookpro.roam.corp.google.com","subject":"Re: What's cooking in git.git (Sep 2022, #01; Mon, 5)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-09-08T16:57:16Z","receivedAt":"2022-09-08T16:58:14Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Glen Choo <chooglen@google.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> * gc/submodule-propagate-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>>  Needs review.\n>>  source: <pull.1321.git.git.1661806456.gitgitgadget@gmail.com>\n>\n> I suggest renaming the branch - the config \"submodule.propagateBranches\"\n> will be used by many more commands in the future, several of which will\n> probably be authored by me :)\n\nOK.  So this is a \"clone\" and \"update\" part of the larger topic?\n\n> Maybe gc/submodule-update-with-branches? Or\n> gc/recursive-clone-with-branches.\n\nBoth sound good suggestions.\n"},{"id":"462872","messageId":"kl6lmtb88p1q.fsf@chooglen-macbookpro.roam.corp.google.com","threadId":"58400","inReplyTo":"xmqqpmg5rehf.fsf@gitster.g","subject":"Re: What's cooking in git.git (Sep 2022, #01; Mon, 5)","fromName":"Glen Choo","fromEmail":"chooglen@google.com","sentAt":"2022-09-09T16:56:17Z","receivedAt":"2022-09-09T16:56:22Z","isPatch":false,"sender":{"key":"glencbz@gmail.com","avatar":"https://avatars.githubusercontent.com/u/58092771?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Glen Choo <chooglen@google.com> writes:\n>\n>> Junio C Hamano <gitster@pobox.com> writes:\n>>\n>>> * gc/submodule-propagate-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>>>  Needs review.\n>>>  source: <pull.1321.git.git.1661806456.gitgitgadget@gmail.com>\n>>\n>> I suggest renaming the branch - the config \"submodule.propagateBranches\"\n>> will be used by many more commands in the future, several of which will\n>> probably be authored by me :)\n>\n> OK.  So this is a \"clone\" and \"update\" part of the larger topic?\n\nYup; submodule.propagateBranches is the \"branching\" part of the\nsubmodule UX work that the Google team is working on.\n\n>> Maybe gc/submodule-update-with-branches? Or\n>> gc/recursive-clone-with-branches.\n>\n> Both sound good suggestions.\n\nOk, I think gc/recursive-clone-with-branches captures the intent better\n(the improvements to `git submodule update` are more of an\nimplementation detail).\n\nThanks!\n"}]}