{"thread":{"id":"60321","subject":"What's cooking in git.git (Oct 2023, #03; Fri, 6)","startedAt":"2023-10-07T08:20:17Z","lastAt":"2023-10-28T12:02:14Z","messageCount":10,"participants":["Junio C Hamano","René Scharfe","Phillip Wood","Taylor Blau"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"482787","messageId":"xmqqh6n24zf1.fsf@gitster.g","threadId":"60321","inReplyTo":null,"subject":"What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-07T08:20:02Z","receivedAt":"2023-10-07T08:20:17Z","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\nfuture release).  Commits prefixed with '-' are only in 'seen', and\naren't considered \"accepted\" at all and may be annotated with an URL\nto a message that raises issues but they are no means exhaustive.  A\ntopic without enough support may be discarded after a long period of\nno activity (of course they can be resubmit when new interests\narise).\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[New Topics]\n\n* jc/merge-ort-attr-index-fix (2023-10-05) 1 commit\n - merge-ort: initialize repo in index state\n\n Fix \"git merge-tree\" to stop segfaulting when the --attr-source\n option is used.\n\n Waiting for review response.\n source: <pull.1583.git.git.1696519349407.gitgitgadget@gmail.com>\n\n\n* jk/decoration-and-other-leak-fixes (2023-10-05) 3 commits\n  (merged to 'next' on 2023-10-06 at 5fc05c94dc)\n + daemon: free listen_addr before returning\n + revision: clear decoration structs during release_revisions()\n + decorate: add clear_decoration() function\n\n Leakfix.\n\n Will merge to 'master'.\n source: <20231005212802.GA982892@coredump.intra.peff.net>\n\n\n* sn/typo-grammo-phraso-fixes (2023-10-05) 5 commits\n - t/README: fix multi-prerequisite example\n - doc/gitk: s/sticked/stuck/\n - git-jump: admit to passing merge mode args to ls-files\n - doc/diff-options: improve wording of the log.diffMerges mention\n - doc: fix some typos, grammar and wording issues\n\n Many typos, ungrammatical sentences and wrong phrasing have been\n fixed.\n\n Needs review.\n source: <20231003082107.3002173-1-stepnem@smrk.net>\n\n\n* so/diff-merges-dd (2023-10-05) 3 commits\n - completion: complete '--dd'\n - diff-merges: introduce '--dd' option\n - diff-merges: improve --diff-merges documentation\n\n \"git log\" and friends learned \"--dd\" that is a short-hand for\n \"--diff-merges=first-parent -p\".\n\n Expecting a reroll.\n cf. <871qe7r3rk.fsf@osv.gnss.ru>\n source: <20231004214558.210339-1-sorganov@gmail.com>\n\n\n* vd/loose-ref-iteration-optimization (2023-10-06) 4 commits\n - files-backend.c: avoid stat in 'loose_fill_ref_dir'\n - dir.[ch]: add 'follow_symlink' arg to 'get_dtype'\n - dir.[ch]: expose 'get_dtype'\n - ref-cache.c: fix prefix matching in ref iteration\n\n The code to iterate over loose references have been optimized to\n reduce the number of lstat() system calls.\n source: <pull.1594.git.1696615769.gitgitgadget@gmail.com>\n\n\n* jc/update-list-references-to-lore (2023-10-06) 1 commit\n - doc: update list archive reference to use lore.kernel.org\n\n source: <xmqq7cnz741s.fsf@gitster.g>\n\n--------------------------------------------------\n[Stalled]\n\n* cc/git-replay (2023-09-07) 15 commits\n - replay: stop assuming replayed branches do not diverge\n - replay: add --contained to rebase contained branches\n - replay: add --advance or 'cherry-pick' mode\n - replay: disallow revision specific options and pathspecs\n - replay: use standard revision ranges\n - replay: make it a minimal server side command\n - replay: remove HEAD related sanity check\n - replay: remove progress and info output\n - replay: add an important FIXME comment about gpg signing\n - replay: don't simplify history\n - replay: introduce pick_regular_commit()\n - replay: die() instead of failing assert()\n - replay: start using parse_options API\n - replay: introduce new builtin\n - t6429: remove switching aspects of fast-rebase\n\n Waiting for review response.\n cf. <52277471-4ddd-b2e0-62ca-c2a5b59ae418@gmx.de>\n cf. <58daa706-7efb-51dd-9061-202ef650b96a@gmx.de>\n cf. <f0e75d47-c277-9fbb-7bcd-53e4e5686f3c@gmx.de>\n source: <20230907092521.733746-1-christian.couder@gmail.com>\n\n\n* pw/rebase-sigint (2023-09-07) 1 commit\n - rebase -i: ignore signals when forking subprocesses\n\n If the commit log editor or other external programs (spawned via\n \"exec\" insn in the todo list) receive internactive signal during\n \"git rebase -i\", it caused not just the spawned program but the\n \"Git\" process that spawned them, which is often not what the end\n user intended.  \"git\" learned to ignore SIGINT and SIGQUIT while\n waiting for these subprocesses.\n\n Expecting a reroll.\n cf. <12c956ea-330d-4441-937f-7885ab519e26@gmail.com>\n source: <pull.1581.git.1694080982621.gitgitgadget@gmail.com>\n\n\n* tk/cherry-pick-sequence-requires-clean-worktree (2023-06-01) 1 commit\n - cherry-pick: refuse cherry-pick sequence if index is dirty\n\n \"git cherry-pick A\" that replays a single commit stopped before\n clobbering local modification, but \"git cherry-pick A..B\" did not,\n which has been corrected.\n\n Expecting a reroll.\n cf. <999f12b2-38d6-f446-e763-4985116ad37d@gmail.com>\n source: <pull.1535.v2.git.1685264889088.gitgitgadget@gmail.com>\n\n\n* jc/diff-cached-fsmonitor-fix (2023-09-15) 3 commits\n - diff-lib: fix check_removed() when fsmonitor is active\n - Merge branch 'jc/fake-lstat' into jc/diff-cached-fsmonitor-fix\n - Merge branch 'js/diff-cached-fsmonitor-fix' into jc/diff-cached-fsmonitor-fix\n (this branch uses jc/fake-lstat.)\n\n The optimization based on fsmonitor in the \"diff --cached\"\n codepath is resurrected with the \"fake-lstat\" introduced earlier.\n\n It is unknown if the optimization is worth resurrecting, but in case...\n source: <xmqqr0n0h0tw.fsf@gitster.g>\n\n--------------------------------------------------\n[Cooking]\n\n* jk/commit-graph-leak-fixes (2023-10-03) 10 commits\n  (merged to 'next' on 2023-10-06 at 5d202ef8b9)\n + commit-graph: clear oidset after finishing write\n + commit-graph: free write-context base_graph_name during cleanup\n + commit-graph: free write-context entries before overwriting\n + commit-graph: free graph struct that was not added to chain\n + commit-graph: delay base_graph assignment in add_graph_to_chain()\n + commit-graph: free all elements of graph chain\n + commit-graph: move slab-clearing to close_commit_graph()\n + merge: free result of repo_get_merge_bases()\n + commit-reach: free temporary list in get_octopus_merge_bases()\n + t6700: mark test as leak-free\n\n Leakfix.\n\n Will merge to 'master'.\n source: <20231003202504.GA7697@coredump.intra.peff.net>\n\n\n* jm/git-status-submodule-states-docfix (2023-10-04) 1 commit\n  (merged to 'next' on 2023-10-04 at 520b7711a4)\n + git-status.txt: fix minor asciidoc format issue\n\n Docfix.\n\n Will merge to 'master'.\n source: <pull.1591.v3.git.1696386165616.gitgitgadget@gmail.com>\n\n\n* rs/parse-opt-ctx-cleanup (2023-10-03) 1 commit\n  (merged to 'next' on 2023-10-04 at d5d0a2ce3b)\n + parse-options: drop unused parse_opt_ctx_t member\n\n Code clean-up.\n\n Will merge to 'master'.\n source: <ebcaa9e1-d306-4c93-adec-3f35d7040531@web.de>\n\n\n* tb/repack-max-cruft-size (2023-10-05) 4 commits\n  (merged to 'next' on 2023-10-06 at b3ca6df3b9)\n + builtin/repack.c: avoid making cruft packs preferred\n + builtin/repack.c: implement support for `--max-cruft-size`\n + builtin/repack.c: parse `--max-pack-size` with OPT_MAGNITUDE\n + t7700: split cruft-related tests to t7704\n\n \"git repack\" learned \"--max-cruft-size\" to prevent cruft packs from\n growing without bounds.\n\n Will merge to 'master'.\n source: <cover.1696293862.git.me@ttaylorr.com>\n source: <035393935108d02aaf8927189b05102f4f74f340.1696370003.git.me@ttaylorr.com>\n\n\n* ak/color-decorate-symbols (2023-10-03) 1 commit\n - decorate: add color.decorate.symbols config option\n\n A new config for coloring.\n\n Needs review.\n source: <20231003205442.22963-1-andy.koppe@gmail.com>\n\n\n* jc/attr-tree-config (2023-10-04) 2 commits\n - attr: add attr.allowInvalidSource config to allow invalid revision\n - attr: add attr.tree for setting the treeish to read attributes from\n\n The attribute subsystem learned to honor `attr.tree` configuration\n that specifies which tree to read the .gitattributes files from.\n\n Needs review.\n source: <pull.1577.v2.git.git.1696443502.gitgitgadget@gmail.com>\n\n\n* js/submodule-fix-misuse-of-path-and-name (2023-10-03) 6 commits\n  (merged to 'next' on 2023-10-06 at 1054b6e752)\n + t7420: test that we correctly handle renamed submodules\n + t7419: test that we correctly handle renamed submodules\n + t7419, t7420: use test_cmp_config instead of grepping .gitmodules\n + t7419: actually test the branch switching\n + submodule--helper: return error from set-url when modifying failed\n + submodule--helper: use submodule_from_path in set-{url,branch}\n\n In .gitmodules files, submodules are keyed by their names, and the\n path to the submodule whose name is $name is specified by the\n submodule.$name.path variable.  There were a few codepaths that\n mixed the name and path up when consulting the submodule database,\n which have been corrected.  It took long for these bugs to be found\n as the name of a submodule initially is the same as its path, and\n the problem does not surface until it is moved to a different path,\n which apparently happens very rarely.\n\n Will merge to 'master'.\n source: <0a0a157f88321d25fdb0be771a454b3410a449f3.camel@archlinux.org>\n\n\n* cw/prelim-cleanup (2023-09-29) 4 commits\n  (merged to 'next' on 2023-10-03 at 5985929612)\n + parse: separate out parsing functions from config.h\n + config: correct bad boolean env value error message\n + wrapper: reduce scope of remove_or_warn()\n + hex-ll: separate out non-hash-algo functions\n\n Shuffle some bits across headers and sources to prepare for\n libification effort.\n\n Will merge to 'master'.\n source: <cover.1696021277.git.jonathantanmy@google.com>\n\n\n* ds/init-diffstat-width (2023-09-29) 1 commit\n  (merged to 'next' on 2023-10-03 at 18383ac895)\n + diff --stat: set the width defaults in a helper function\n\n Code clean-up.\n\n Will merge to 'master'.\n source: <d45d1dac1a20699e370905b88b6fd0ec296751e7.1695441501.git.dsimic@manjaro.org>\n\n\n* ar/diff-index-merge-base-fix (2023-10-02) 1 commit\n  (merged to 'next' on 2023-10-06 at 0ff4dfc0e1)\n + diff: fix --merge-base with annotated tags\n\n \"git diff --merge-base X other args...\" insisted that X must be a\n commit and errored out when given an annotated tag that peels to a\n commit, but we only need it to be a committish.  This has been\n corrected.\n\n Will merge to 'master'.\n source: <20231001151845.3621551-1-hi@alyssa.is>\n\n\n* eb/limit-bulk-checkin-to-blobs (2023-09-26) 1 commit\n  (merged to 'next' on 2023-10-02 at 89c9c95966)\n + bulk-checkin: only support blobs in index_bulk_checkin\n\n The \"streaming\" interface used for bulk-checkin codepath has been\n narrowed to take only blob objects for now, with no real loss of\n functionality.\n\n Will merge to 'master'.\n source: <87msx99b9o.fsf_-_@gmail.froward.int.ebiederm.org>\n\n\n* js/update-urls-in-doc-and-comment (2023-09-26) 4 commits\n - doc: refer to internet archive\n - doc: update links for andre-simon.de\n - doc: update links to current pages\n - doc: switch links to https\n\n Stale URLs have been updated to their current counterparts (or\n archive.org) and HTTP links are replaced with working HTTPS links.\n\n Needs review.\n source: <pull.1589.v2.git.1695553041.gitgitgadget@gmail.com>\n\n\n* la/trailer-cleanups (2023-09-26) 4 commits\n - trailer: only use trailer_block_* variables if trailers were found\n - trailer: use offsets for trailer_start/trailer_end\n - trailer: find the end of the log message\n - commit: ignore_non_trailer computes number of bytes to ignore\n\n Code clean-up.\n\n Needs review.\n source: <pull.1563.v4.git.1695709372.gitgitgadget@gmail.com>\n\n\n* eb/hash-transition (2023-10-02) 30 commits\n - t1016-compatObjectFormat: add tests to verify the conversion between objects\n - t1006: test oid compatibility with cat-file\n - t1006: rename sha1 to oid\n - test-lib: compute the compatibility hash so tests may use it\n - builtin/ls-tree: let the oid determine the output algorithm\n - object-file: handle compat objects in check_object_signature\n - tree-walk: init_tree_desc take an oid to get the hash algorithm\n - builtin/cat-file: let the oid determine the output algorithm\n - rev-parse: add an --output-object-format parameter\n - repository: implement extensions.compatObjectFormat\n - object-file: update object_info_extended to reencode objects\n - object-file-convert: convert commits that embed signed tags\n - object-file-convert: convert commit objects when writing\n - object-file-convert: don't leak when converting tag objects\n - object-file-convert: convert tag objects when writing\n - object-file-convert: add a function to convert trees between algorithms\n - object: factor out parse_mode out of fast-import and tree-walk into in object.h\n - cache: add a function to read an OID of a specific algorithm\n - tag: sign both hashes\n - commit: export add_header_signature to support handling signatures on tags\n - commit: convert mergetag before computing the signature of a commit\n - commit: write commits for both hashes\n - object-file: add a compat_oid_in parameter to write_object_file_flags\n - object-file: update the loose object map when writing loose objects\n - loose: compatibilty short name support\n - loose: add a mapping between SHA-1 and SHA-256 for loose objects\n - repository: add a compatibility hash algorithm\n - object-names: support input of oids in any supported hash\n - oid-array: teach oid-array to handle multiple kinds of oids\n - object-file-convert: stubs for converting from one object format to another\n\n Teach a repository to work with both SHA-1 and SHA-256 hash algorithms.\n\n Needs review.\n source: <878r8l929e.fsf@gmail.froward.int.ebiederm.org>\n\n\n* jx/remote-archive-over-smart-http (2023-10-04) 4 commits\n - archive: support remote archive from stateless transport\n - transport-helper: call do_take_over() in connect_helper\n - transport-helper: call do_take_over() in process_connect\n - transport-helper: no connection restriction in connect_helper\n\n \"git archive --remote=<remote>\" learned to talk over the smart\n http (aka stateless) transport.\n\n Needs review.\n source: <cover.1696432593.git.zhiyou.jx@alibaba-inc.com>\n\n\n* jx/sideband-chomp-newline-fix (2023-10-04) 3 commits\n - pkt-line: do not chomp newlines for sideband messages\n - pkt-line: memorize sideband fragment in reader\n - test-pkt-line: add option parser for unpack-sideband\n\n Sideband demultiplexer fixes.\n\n Needs review.\n source: <cover.1696425168.git.zhiyou.jx@alibaba-inc.com>\n\n\n* ty/merge-tree-strategy-options (2023-09-25) 1 commit\n  (merged to 'next' on 2023-09-29 at aa65b54416)\n + merge-tree: add -X strategy option\n\n \"git merge-tree\" learned to take strategy backend specific options\n via the \"-X\" option, like \"git merge\" does.\n\n Will merge to 'master'.\n source: <pull.1565.v6.git.1695522222723.gitgitgadget@gmail.com>\n\n\n* js/ci-coverity (2023-10-05) 6 commits\n  (merged to 'next' on 2023-10-05 at 253788f0d1)\n + coverity: detect and report when the token or project is incorrect\n + coverity: allow running on macOS\n + coverity: support building on Windows\n + coverity: allow overriding the Coverity project\n + coverity: cache the Coverity Build Tool\n + ci: add a GitHub workflow to submit Coverity scans\n\n GitHub CI workflow has learned to trigger Coverity check.\n\n Will merge to 'master'.\n source: <pull.1588.v2.git.1695642662.gitgitgadget@gmail.com>\n\n\n* js/config-parse (2023-09-21) 5 commits\n - config-parse: split library out of config.[c|h]\n - config.c: accept config_parse_options in git_config_from_stdin\n - config: report config parse errors using cb\n - config: split do_event() into start and flush operations\n - config: split out config_parse_options\n\n The parsing routines for the configuration files have been split\n into a separate file.\n\n Needs review.\n source: <cover.1695330852.git.steadmon@google.com>\n\n\n* jc/fake-lstat (2023-09-15) 1 commit\n - cache: add fake_lstat()\n (this branch is used by jc/diff-cached-fsmonitor-fix.)\n\n A new helper to let us pretend that we called lstat() when we know\n our cache_entry is up-to-date via fsmonitor.\n\n Needs review.\n source: <xmqqcyykig1l.fsf@gitster.g>\n\n\n* kn/rev-list-ignore-missing-links (2023-09-20) 1 commit\n - revision: add `--ignore-missing-links` user option\n\n Surface the .ignore_missing_links bit that stops the revision\n traversal from stopping and dying when encountering a missing\n object to a new command line option of \"git rev-list\", so that the\n objects that are required but are missing can be enumerated.\n\n What's the status of this thing?\n source: <20230920104507.21664-1-karthik.188@gmail.com>\n\n\n* rs/parse-options-value-int (2023-09-18) 2 commits\n - parse-options: use and require int pointer for OPT_CMDMODE\n - parse-options: add int value pointer to struct option\n\n A bit of type safety for the \"value\" pointer used in the\n parse-options API.\n\n What's the status of this thing?\n source: <e6d8a291-03de-cfd3-3813-747fc2cad145@web.de>\n\n\n* cc/repack-sift-filtered-objects-to-separate-pack (2023-10-02) 9 commits\n  (merged to 'next' on 2023-10-03 at e5a4824609)\n + gc: add `gc.repackFilterTo` config option\n + repack: implement `--filter-to` for storing filtered out objects\n + gc: add `gc.repackFilter` config option\n + repack: add `--filter=<filter-spec>` option\n + pack-bitmap-write: rebuild using new bitmap when remapping\n + repack: refactor finding pack prefix\n + repack: refactor finishing pack-objects command\n + t/helper: add 'find-pack' test-tool\n + pack-objects: allow `--filter` without `--stdout`\n\n \"git repack\" machinery learns to pay attention to the \"--filter=\"\n option.\n\n Will merge to 'master'.\n cf. <ZRsknb4NxNHTR21E@nand.local>\n source: <20231002165504.1325153-1-christian.couder@gmail.com>\n\n\n* la/trailer-test-and-doc-updates (2023-09-07) 13 commits\n  (merged to 'next' on 2023-10-06 at 69fef35819)\n + trailer doc: <token> is a <key> or <keyAlias>, not both\n + trailer doc: separator within key suppresses default separator\n + trailer doc: emphasize the effect of configuration variables\n + trailer --unfold help: prefer \"reformat\" over \"join\"\n + trailer --parse docs: add explanation for its usefulness\n + trailer --only-input: prefer \"configuration variables\" over \"rules\"\n + trailer --parse help: expose aliased options\n + trailer --no-divider help: describe usual \"---\" meaning\n + trailer: trailer location is a place, not an action\n + trailer doc: narrow down scope of --where and related flags\n + trailer: add tests to check defaulting behavior with --no-* flags\n + trailer test description: this tests --where=after, not --where=before\n + trailer tests: make test cases self-contained\n\n Test coverage for trailers has been improved.\n\n Will merge to 'master'.\n source: <pull.1564.v3.git.1694125209.gitgitgadget@gmail.com>\n\n\n* js/doc-unit-tests (2023-08-17) 3 commits\n - ci: run unit tests in CI\n - unit tests: add TAP unit test framework\n - unit tests: Add a project plan document\n (this branch is used by js/doc-unit-tests-with-cmake.)\n\n Process to add some form of low-level unit tests has started.\n\n Expecting a reroll.\n cf. <0b6de919-8dbf-454f-807b-5abb64388cb7@gmail.com>\n source: <cover.1692297001.git.steadmon@google.com>\n\n\n* js/doc-unit-tests-with-cmake (2023-09-25) 7 commits\n - cmake: handle also unit tests\n - cmake: use test names instead of full paths\n - cmake: fix typo in variable name\n - artifacts-tar: when including `.dll` files, don't forget the unit-tests\n - unit-tests: do show relative file paths\n - unit-tests: do not mistake `.pdb` files for being executable\n - cmake: also build unit tests\n (this branch uses js/doc-unit-tests.)\n\n Update the base topic to work with CMake builds.\n\n Expecting a reroll.\n cf. <ZSCRFNkzXZb3fBaU@google.com>\n source: <pull.1579.v3.git.1695640836.gitgitgadget@gmail.com>\n\n\n* tb/path-filter-fix (2023-08-30) 15 commits\n - bloom: introduce `deinit_bloom_filters()`\n - commit-graph: reuse existing Bloom filters where possible\n - object.h: fix mis-aligned flag bits table\n - commit-graph: drop unnecessary `graph_read_bloom_data_context`\n - commit-graph.c: unconditionally load Bloom filters\n - t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()`\n - bloom: prepare to discard incompatible Bloom filters\n - bloom: annotate filters with hash version\n - commit-graph: new filter ver. that fixes murmur3\n - repo-settings: introduce commitgraph.changedPathsVersion\n - t4216: test changed path filters with high bit paths\n - t/helper/test-read-graph: implement `bloom-filters` mode\n - bloom.h: make `load_bloom_filter_from_graph()` public\n - t/helper/test-read-graph.c: extract `dump_graph_info()`\n - gitformat-commit-graph: describe version 2 of BDAT\n\n The Bloom filter used for path limited history traversal was broken\n on systems whose \"char\" is unsigned; update the implementation and\n bump the format version to 2.\n\n What's the status of this thing?\n cf. <20230830200218.GA5147@szeder.dev>\n cf. <20230901205616.3572722-1-jonathantanmy@google.com>\n cf. <20230924195900.GA1156862@szeder.dev>\n source: <cover.1693413637.git.jonathantanmy@google.com>\n\n\n* jc/rerere-cleanup (2023-08-25) 4 commits\n - rerere: modernize use of empty strbuf\n - rerere: try_merge() should use LL_MERGE_ERROR when it means an error\n - rerere: fix comment on handle_file() helper\n - rerere: simplify check_one_conflict() helper function\n\n Code clean-up.\n\n Not ready to be reviewed yet.\n source: <20230824205456.1231371-1-gitster@pobox.com>\n\n\n* rj/status-bisect-while-rebase (2023-08-01) 1 commit\n - status: fix branch shown when not only bisecting\n\n \"git status\" is taught to show both the branch being bisected and\n being rebased when both are in effect at the same time.\n\n Needs review.\n cf. <xmqqtttia3vn.fsf@gitster.g>\n source: <48745298-f12b-8efb-4e48-90d2c22a8349@gmail.com>\n\n--------------------------------------------------\n[Discarded]\n\n* tb/ci-coverity (2023-09-21) 1 commit\n . .github/workflows: add coverity action\n\n GitHub CI workflow has learned to trigger Coverity check.\n\n Superseded by the js/ci-coverity topic.\n source: <b23951c569660e1891a7fb3ad2c2ea1952897bd7.1695332105.git.me@ttaylorr.com>\n\n\n* cw/git-std-lib (2023-09-11) 7 commits\n . SQUASH???\n . git-std-lib: add test file to call git-std-lib.a functions\n . git-std-lib: introduce git standard library\n . parse: create new library for parsing strings and env values\n . config: correct bad boolean env value error message\n . wrapper: remove dependency to Git-specific internal file\n . hex-ll: split out functionality from hex\n\n Another libification effort.\n\n Superseded by the cw/prelim-cleanup topic.\n cf. <xmqqy1hfrk6p.fsf@gitster.g>\n cf. <20230915183927.1597414-1-jonathantanmy@google.com>\n source: <20230908174134.1026823-1-calvinwan@google.com>\n\n\n* so/diff-merges-d (2023-09-11) 2 commits\n - diff-merges: introduce '-d' option\n - diff-merges: improve --diff-merges documentation\n\n Superseded by the so/diff-merges-dd topic.\n source: <20230909125446.142715-1-sorganov@gmail.com>\n"},{"id":"482829","messageId":"4014e490-c6c1-453d-b0ed-645220e3e614@web.de","threadId":"60321","inReplyTo":"xmqqh6n24zf1.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"René Scharfe","fromEmail":"l.s.r@web.de","sentAt":"2023-10-08T17:34:45Z","receivedAt":"2023-10-08T17:34:55Z","isPatch":false,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Am 07.10.23 um 10:20 schrieb Junio C Hamano:\n> * rs/parse-options-value-int (2023-09-18) 2 commits\n>  - parse-options: use and require int pointer for OPT_CMDMODE\n>  - parse-options: add int value pointer to struct option\n>\n>  A bit of type safety for the \"value\" pointer used in the\n>  parse-options API.\n>\n>  What's the status of this thing?\n>  source: <e6d8a291-03de-cfd3-3813-747fc2cad145@web.de>\n\ntl;dr: Feel free to drop this topic if it's in the way.\n\nI think the added _int variables are defensible, but the mode_int member\nadded to struct resume_mode in builtin/am.c is too ugly.  Extending\nOPT_CMDMODE to support arguments would allow getting rid of the struct\naltogether and is probably a good idea anyway.  It's surprisingly hard\nto get right, though -- just discovered that the interference detection\nis only working half of the time in the current code, and we can't have\nthat, can we?\n\n   # a OPT_CMDMODE option\n   $ t/helper/test-tool parse-options --mode1 | grep integer\n   integer: 1\n\n   # something else setting the same variable\n   $ % t/helper/test-tool parse-options --set23 | grep integer\n   integer: 23\n\n   # combined use is flagged if the OPT_CMDMODE option comes last\n   $ t/helper/test-tool parse-options --set23 --mode1\n   error: option `mode1' : incompatible with something else\n\n   # ... but not the other way around\n   $ t/helper/test-tool parse-options --mode1 --set23 | grep integer\n   integer: 23\n\nAnyway, I'll get there eventually and present a nicely shaven yak -- or\ngive up and focus on the original topic.\n\nhttps://lore.kernel.org/git/6cb09270-04b9-456e-8d7e-97137e56e9e2@web.de/\ndetects and handles the same type mismatch by adding a level of\nabstraction (getters and setters).  That way is more general and adds\nmore overhead compared to the _int variant.  A fair comparison requires\nargument support in OPT_CMDMODE, though, I think.\n\nI don't mind removing this topic from seen for now; it's not ready, yet.\n\nRené\n"},{"id":"482853","messageId":"02cf1135-d330-4f0b-aa43-4a555f34adfc@gmail.com","threadId":"60321","inReplyTo":"xmqqh6n24zf1.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"Phillip Wood","fromEmail":"phillip.wood123@gmail.com","sentAt":"2023-10-09T09:59:53Z","receivedAt":"2023-10-09T10:00:04Z","isPatch":false,"sender":{"key":"phillip.wood@dunelm.org.uk","avatar":null},"body":"On 07/10/2023 09:20, Junio C Hamano wrote:\n> * ty/merge-tree-strategy-options (2023-09-25) 1 commit\n>    (merged to 'next' on 2023-09-29 at aa65b54416)\n>   + merge-tree: add -X strategy option\n> \n>   \"git merge-tree\" learned to take strategy backend specific options\n>   via the \"-X\" option, like \"git merge\" does.\n> \n>   Will merge to 'master'.\n>   source: <pull.1565.v6.git.1695522222723.gitgitgadget@gmail.com>\n\nWe may want to hold off on this as there is a wierd copy-by-value of \nstruct merge-options cf <a482d047-dd40-436d-8daa-0c74780af11f@gmail.com>\n\nBest Wishes\n\nPhillip\n"},{"id":"482872","messageId":"ZSQnVnK0k3bdk5zX@nand.local","threadId":"60321","inReplyTo":"xmqqh6n24zf1.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2023-10-09T16:16:22Z","receivedAt":"2023-10-09T16:16:28Z","isPatch":false,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Sat, Oct 07, 2023 at 01:20:02AM -0700, Junio C Hamano wrote:\n> * tb/repack-max-cruft-size (2023-10-05) 4 commits\n>   (merged to 'next' on 2023-10-06 at b3ca6df3b9)\n>  + builtin/repack.c: avoid making cruft packs preferred\n>  + builtin/repack.c: implement support for `--max-cruft-size`\n>  + builtin/repack.c: parse `--max-pack-size` with OPT_MAGNITUDE\n>  + t7700: split cruft-related tests to t7704\n>\n>  \"git repack\" learned \"--max-cruft-size\" to prevent cruft packs from\n>  growing without bounds.\n>\n>  Will merge to 'master'.\n>  source: <cover.1696293862.git.me@ttaylorr.com>\n>  source: <035393935108d02aaf8927189b05102f4f74f340.1696370003.git.me@ttaylorr.com>\n\nThanks. On a semi-related note, did you want to pick up my patch in\n\n  https://lore.kernel.org/git/035393935108d02aaf8927189b05102f4f74f340.1696370003.git.me@ttaylorr.com/\n\n? That should address a performance bug that occurs when a repository\n(incorrectly) chooses a cruft pack as its preferred pack source when\nwriting a MIDX bitmap, significantly impeding the pack-reuse mechanism.\n\nThanks,\nTaylor\n"},{"id":"482874","messageId":"xmqqcyxn3gas.fsf@gitster.g","threadId":"60321","inReplyTo":"4014e490-c6c1-453d-b0ed-645220e3e614@web.de","subject":"Re: What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-09T16:35:07Z","receivedAt":"2023-10-09T16:35:21Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"René Scharfe <l.s.r@web.de> writes:\n\n> Am 07.10.23 um 10:20 schrieb Junio C Hamano:\n>> * rs/parse-options-value-int (2023-09-18) 2 commits\n>>  - parse-options: use and require int pointer for OPT_CMDMODE\n>>  - parse-options: add int value pointer to struct option\n>> ...\n> I don't mind removing this topic from seen for now; it's not ready, yet.\n\nAfter seeing the discussion moved to giving a more type safe enum\nsupport and then somehow convesation seemed to have petered out, I\nwas wondering if we figured out the problem space enough to see an\nupdated version with well defined scope and good problem\ndescription.  I do not mind keeping it on 'seen', especially if\nthese two early steps are not expected to change.  It is not like\nthey are causing any maintenance burden.\n\nThanks.\n\n"},{"id":"482886","messageId":"xmqqfs2j1xdo.fsf@gitster.g","threadId":"60321","inReplyTo":"ZSQnVnK0k3bdk5zX@nand.local","subject":"Re: What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-09T18:09:07Z","receivedAt":"2023-10-09T18:09:21Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Taylor Blau <me@ttaylorr.com> writes:\n\n> On Sat, Oct 07, 2023 at 01:20:02AM -0700, Junio C Hamano wrote:\n>> * tb/repack-max-cruft-size (2023-10-05) 4 commits\n>>   (merged to 'next' on 2023-10-06 at b3ca6df3b9)\n>>  + builtin/repack.c: avoid making cruft packs preferred\n>>  + builtin/repack.c: implement support for `--max-cruft-size`\n>>  + builtin/repack.c: parse `--max-pack-size` with OPT_MAGNITUDE\n>>  + t7700: split cruft-related tests to t7704\n>>\n>>  \"git repack\" learned \"--max-cruft-size\" to prevent cruft packs from\n>>  growing without bounds.\n>>\n>>  Will merge to 'master'.\n>>  source: <cover.1696293862.git.me@ttaylorr.com>\n>>  source: <035393935108d02aaf8927189b05102f4f74f340.1696370003.git.me@ttaylorr.com>\n>\n> Thanks. On a semi-related note, did you want to pick up my patch in\n>\n>   https://lore.kernel.org/git/035393935108d02aaf8927189b05102f4f74f340.1696370003.git.me@ttaylorr.com/\n>\n> ? That should address a performance bug that occurs when a repository\n> (incorrectly) chooses a cruft pack as its preferred pack source when\n> writing a MIDX bitmap, significantly impeding the pack-reuse mechanism.\n\nIsn't that in the above list already as b3ca6df3b9^2?\n\n\n"},{"id":"482887","messageId":"ZSRC5IaKoXPpTFnq@nand.local","threadId":"60321","inReplyTo":"xmqqfs2j1xdo.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2023-10-09T18:13:56Z","receivedAt":"2023-10-09T18:14:04Z","isPatch":false,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Mon, Oct 09, 2023 at 11:09:07AM -0700, Junio C Hamano wrote:\n> Taylor Blau <me@ttaylorr.com> writes:\n>\n> > On Sat, Oct 07, 2023 at 01:20:02AM -0700, Junio C Hamano wrote:\n> >> * tb/repack-max-cruft-size (2023-10-05) 4 commits\n> >>   (merged to 'next' on 2023-10-06 at b3ca6df3b9)\n> >>  + builtin/repack.c: avoid making cruft packs preferred\n> >>  + builtin/repack.c: implement support for `--max-cruft-size`\n> >>  + builtin/repack.c: parse `--max-pack-size` with OPT_MAGNITUDE\n> >>  + t7700: split cruft-related tests to t7704\n> >>\n> >>  \"git repack\" learned \"--max-cruft-size\" to prevent cruft packs from\n> >>  growing without bounds.\n> >>\n> >>  Will merge to 'master'.\n> >>  source: <cover.1696293862.git.me@ttaylorr.com>\n> >>  source: <035393935108d02aaf8927189b05102f4f74f340.1696370003.git.me@ttaylorr.com>\n> >\n> > Thanks. On a semi-related note, did you want to pick up my patch in\n> >\n> >   https://lore.kernel.org/git/035393935108d02aaf8927189b05102f4f74f340.1696370003.git.me@ttaylorr.com/\n> >\n> > ? That should address a performance bug that occurs when a repository\n> > (incorrectly) chooses a cruft pack as its preferred pack source when\n> > writing a MIDX bitmap, significantly impeding the pack-reuse mechanism.\n>\n> Isn't that in the above list already as b3ca6df3b9^2?\n\nOops, duh. I hadn't expected you to group that patch in with the rest of\ntb/repack-max-cruft-size.\n\nI'll put on my glasses the next time before suggesting you dropped one\nof my patches on the floor... ;-)\n\nThanks,\nTaylor\n"},{"id":"482925","messageId":"xmqqedi3y06h.fsf@gitster.g","threadId":"60321","inReplyTo":"ZSRC5IaKoXPpTFnq@nand.local","subject":"Re: What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-09T21:07:34Z","receivedAt":"2023-10-09T21:07:39Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Taylor Blau <me@ttaylorr.com> writes:\n\n>> > Thanks. On a semi-related note, did you want to pick up my patch in\n>> >\n>> >   https://lore.kernel.org/git/035393935108d02aaf8927189b05102f4f74f340.1696370003.git.me@ttaylorr.com/\n>> >\n>> > ? That should address a performance bug that occurs when a repository\n>> > (incorrectly) chooses a cruft pack as its preferred pack source when\n>> > writing a MIDX bitmap, significantly impeding the pack-reuse mechanism.\n>>\n>> Isn't that in the above list already as b3ca6df3b9^2?\n>\n> Oops, duh. I hadn't expected you to group that patch in with the rest of\n> tb/repack-max-cruft-size.\n\nHeh, as you said, isn't it at least semi-related ;-)?\n"},{"id":"483023","messageId":"ZSW1w70yug4rbBGK@nand.local","threadId":"60321","inReplyTo":"xmqqh6n24zf1.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2023-10-10T20:36:19Z","receivedAt":"2023-10-10T20:36:26Z","isPatch":false,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Sat, Oct 07, 2023 at 01:20:02AM -0700, Junio C Hamano wrote:\n> * tb/path-filter-fix (2023-08-30) 15 commits\n>  - bloom: introduce `deinit_bloom_filters()`\n>  - commit-graph: reuse existing Bloom filters where possible\n>  - object.h: fix mis-aligned flag bits table\n>  - commit-graph: drop unnecessary `graph_read_bloom_data_context`\n>  - commit-graph.c: unconditionally load Bloom filters\n>  - t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()`\n>  - bloom: prepare to discard incompatible Bloom filters\n>  - bloom: annotate filters with hash version\n>  - commit-graph: new filter ver. that fixes murmur3\n>  - repo-settings: introduce commitgraph.changedPathsVersion\n>  - t4216: test changed path filters with high bit paths\n>  - t/helper/test-read-graph: implement `bloom-filters` mode\n>  - bloom.h: make `load_bloom_filter_from_graph()` public\n>  - t/helper/test-read-graph.c: extract `dump_graph_info()`\n>  - gitformat-commit-graph: describe version 2 of BDAT\n>\n>  The Bloom filter used for path limited history traversal was broken\n>  on systems whose \"char\" is unsigned; update the implementation and\n>  bump the format version to 2.\n>\n>  What's the status of this thing?\n>  cf. <20230830200218.GA5147@szeder.dev>\n>  cf. <20230901205616.3572722-1-jonathantanmy@google.com>\n>  cf. <20230924195900.GA1156862@szeder.dev>\n>  source: <cover.1693413637.git.jonathantanmy@google.com>\n\nGood question ;-). There were a couple of outstanding issues pointed out\nby SZEDER Gábor that I addressed on top of what's already there.\n\nI tied up what I think are all of the remaining loose ends and put\neverything together in a single unified (if a little long) patch series.\n\nThis should be ready to go, but I'd love to hear from Jonathan Tan and\nSZEDER before declaring victory here.\n\nThanks,\nTaylor\n"},{"id":"484026","messageId":"891b2fdb-bb71-42af-a82f-43ac73e40ffa@web.de","threadId":"60321","inReplyTo":"xmqqcyxn3gas.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #03; Fri, 6)","fromName":"René Scharfe","fromEmail":"l.s.r@web.de","sentAt":"2023-10-28T12:02:08Z","receivedAt":"2023-10-28T12:02:14Z","isPatch":false,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Am 09.10.23 um 18:35 schrieb Junio C Hamano:\n> René Scharfe <l.s.r@web.de> writes:\n>\n>> Am 07.10.23 um 10:20 schrieb Junio C Hamano:\n>>> * rs/parse-options-value-int (2023-09-18) 2 commits\n>>>  - parse-options: use and require int pointer for OPT_CMDMODE\n>>>  - parse-options: add int value pointer to struct option\n>>> ...\n>> I don't mind removing this topic from seen for now; it's not ready, yet.\n>\n> After seeing the discussion moved to giving a more type safe enum\n> support and then somehow convesation seemed to have petered out, I\n> was wondering if we figured out the problem space enough to see an\n> updated version with well defined scope and good problem\n> description.\n\nIt's a simple idea with a broad scope: Replace void pointers or fortify\nthem by tracking type information across their use in order to get\ncompile time type checks for the entire code base.  Give developers the\nbasic guardrails they already have everywhere else also in generic code.\n\nAdding such type checks is easy, but fixing all the places using\nincompatible pointers is a lot of churn.  Option parsing, sorting and\nmany other callback functions would have to be fortified.  The\nOPT_CMDMODE patches were a test balloon for a small subset of the void\nspace.  Extending them to cover more or even all of the int options may\ngive a better picture of the price for such a feature.\n\nWill it uncover user-visible bugs?  So far it hasn't, not directly.\nPerhaps ASan suffices and we don't need to care about exotic platforms\nthat would punish our type sins.\n\nDealing with the OPT_CMDMODE code prompted to me to come up with ways\nto improve its error messages, though.  These patches took me\nsurprisingly long to prepare (plus my Git time is quite limited these\ndays).  I'll send them separately.\n\n> I do not mind keeping it on 'seen', especially if\n> these two early steps are not expected to change.  It is not like\n> they are causing any maintenance burden.\n\nThe OPT_CMDMODE error message improvements change the code a lot and\nconflict with these parse-options patches.  Please drop the latter and\nlet's discuss the former first, as their user-visible changes are more\ntangible and useful.  I'll send an adjusted and perhaps bigger type\nsafety test balloon eventually.\n\nRené\n\n"}]}