{"thread":{"id":"60290","subject":"What's cooking in git.git (Oct 2023, #01; Mon, 2)","startedAt":"2023-10-03T00:30:56Z","lastAt":"2023-10-06T18:02:46Z","messageCount":12,"participants":["Junio C Hamano","Sergey Organov","Eric W. Biederman"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"482547","messageId":"xmqqedic35u4.fsf@gitster.g","threadId":"60290","inReplyTo":null,"subject":"What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-03T00:30:43Z","receivedAt":"2023-10-03T00:30:56Z","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[Graduated to 'master']\n\n* ds/stat-name-width-configuration (2023-09-18) 1 commit\n  (merged to 'next' on 2023-09-22 at dbf5bd96e8)\n + diff --stat: add config option to limit filename width\n\n \"git diff\" learned diff.statNameWidth configuration variable, to\n give the default width for the name part in the \"--stat\" output.\n source: <87badb12f040d1c66cd9b89074d3de5015a45983.1694446743.git.dsimic@manjaro.org>\n\n\n* hy/doc-show-is-like-log-not-diff-tree (2023-09-20) 1 commit\n  (merged to 'next' on 2023-09-22 at 5492c03eae)\n + show doc: redirect user to git log manual instead of git diff-tree\n\n Doc update.\n source: <20230920132731.1259-1-hanyang.tony@bytedance.com>\n\n\n* jc/alias-completion (2023-09-20) 1 commit\n  (merged to 'next' on 2023-09-22 at 1d069e900b)\n + completion: loosen and document the requirement around completing alias\n\n The command line completion script (in contrib/) can be told to\n complete aliases by including \": git <cmd> ;\" in the alias to tell\n it that the alias should be completed similar to how \"git <cmd>\" is\n completed.  The parsing code for the alias as been loosened to\n allow ';' without an extra space before it.\n cf. <owlyjzssjro2.fsf@fine.c.googlers.com>\n source: <xmqqy1h08zsp.fsf_-_@gitster.g>\n\n\n* jc/unresolve-removal (2023-07-31) 7 commits\n  (merged to 'next' on 2023-09-25 at 0563c8d8a1)\n + checkout: allow \"checkout -m path\" to unmerge removed paths\n + checkout/restore: add basic tests for --merge\n + checkout/restore: refuse unmerging paths unless checking out of the index\n + update-index: remove stale fallback code for \"--unresolve\"\n + update-index: use unmerge_index_entry() to support removal\n + resolve-undo: allow resurrecting conflicted state that resolved to deletion\n + update-index: do not read HEAD and MERGE_HEAD unconditionally\n (this branch is used by jc/rerere-cleanup.)\n\n \"checkout --merge -- path\" and \"update-index --unresolve path\" did\n not resurrect conflicted state that was resolved to remove path,\n but now they do.\n source: <20230731224409.4181277-1-gitster@pobox.com>\n\n\n* jk/fsmonitor-unused-parameter (2023-09-18) 8 commits\n  (merged to 'next' on 2023-09-19 at bd06505f9e)\n + run-command: mark unused parameters in start_bg_wait callbacks\n + fsmonitor: mark unused hashmap callback parameters\n + fsmonitor/darwin: mark unused parameters in system callback\n + fsmonitor: mark unused parameters in stub functions\n + fsmonitor/win32: mark unused parameter in fsm_os__incompatible()\n + fsmonitor: mark some maybe-unused parameters\n + fsmonitor/win32: drop unused parameters\n + fsmonitor: prefer repo_git_path() to git_pathdup()\n\n Unused parameters in fsmonitor related code paths have been marked\n as such.\n source: <20230918222908.GA2659096@coredump.intra.peff.net>\n\n\n* jk/test-pass-ubsan-options-to-http-test (2023-09-21) 1 commit\n  (merged to 'next' on 2023-09-22 at bbe2f75937)\n + test-lib: set UBSAN_OPTIONS to match ASan\n\n UBSAN options were not propagated through the test framework to git\n run via the httpd, unlike ASAN options, which has been corrected.\n source: <20230921041825.GA2814583@coredump.intra.peff.net>\n\n\n* js/doc-status-with-submodules-mark-up-fix (2023-09-22) 1 commit\n  (merged to 'next' on 2023-09-25 at 7ed318fc91)\n + Documentation/git-status: add missing line breaks\n\n Docfix.\n source: <pull.1590.git.1695392082207.gitgitgadget@gmail.com>\n\n\n* kh/range-diff-notes (2023-09-19) 1 commit\n  (merged to 'next' on 2023-09-22 at ac04978b4b)\n + range-diff: treat notes like `log`\n\n \"git range-diff --notes=foo\" compared \"log --notes=foo --notes\" of\n the two ranges, instead of using just the specified notes tree.\n source: <6e114271a2e7d2323193bd58bb307f60101942ce.1695154855.git.code@khaugsbakk.name>\n\n\n* ml/git-gui-exec-path-fix (2023-09-18) 3 commits\n  (merged to 'next' on 2023-09-19 at 0565b0b14b)\n + Merge git-gui into ml/git-gui-exec-path-fix\n + git-gui - use git-hook, honor core.hooksPath\n + git-gui - re-enable use of hook scripts\n\n Fix recent regression in Git-GUI that fails to run hook scripts at\n all.\n\n\n* ob/am-msgfix (2023-09-21) 1 commit\n  (merged to 'next' on 2023-09-22 at 7f7589a06a)\n + am: fix error message in parse_opt_show_current_patch()\n\n The parameters to generate an error message have been corrected.\n source: <20230921110727.789156-1-oswald.buddenhagen@gmx.de>\n\n--------------------------------------------------\n[New Topics]\n\n* cw/prelim-cleanup (2023-09-29) 4 commits\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 'next'.\n source: <cover.1696021277.git.jonathantanmy@google.com>\n\n\n* ds/init-diffstat-width (2023-09-29) 1 commit\n - diff --stat: set the width defaults in a helper function\n\n Code clean-up.\n\n Will merge to 'next'.\n source: <d45d1dac1a20699e370905b88b6fd0ec296751e7.1695441501.git.dsimic@manjaro.org>\n\n\n* ar/diff-index-merge-base-fix (2023-10-02) 1 commit\n - diff: fix --merge-base with annotated tags\n\n source: <20231001151845.3621551-1-hi@alyssa.is>\n\n--------------------------------------------------\n[Stalled]\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* bb/unicode-width-table-15 (2023-09-25) 1 commit\n  (merged to 'next' on 2023-09-28 at bb76f46606)\n + unicode: update the width tables to Unicode 15.1\n\n The display width table for unicode characters has been updated for\n Unicode 15.1\n\n Will merge to 'master'.\n source: <20230925190704.157731-1-dev+git@drbeat.li>\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* jk/commit-graph-verify-fix (2023-09-28) 6 commits\n  (merged to 'next' on 2023-09-28 at e3ed560a2f)\n + commit-graph: report incomplete chains during verification\n + commit-graph: tighten chain size check\n + commit-graph: detect read errors when verifying graph chain\n + t5324: harmonize sha1/sha256 graph chain corruption\n + commit-graph: check mixed generation validation when loading chain file\n + commit-graph: factor out chain opening function\n\n Various fixes to \"git commit-graph verify\".\n\n Will merge to 'master'.\n source: <20230928043746.GB57926@coredump.intra.peff.net>\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 eyeballing.\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 Breaks a few CI jobs when merged to 'seen'.\n cf. <xmqqbkdmjbkp.fsf@gitster.g>\n source: <878r8l929e.fsf@gmail.froward.int.ebiederm.org>\n\n\n* xz/commit-title-soft-limit-doc (2023-09-28) 1 commit\n  (merged to 'next' on 2023-09-28 at 20df852430)\n + doc: correct the 50 characters soft limit\n\n Doc tweak.\n\n Will merge to 'master'.\n source: <pull.1580.git.git.1695895155985.gitgitgadget@gmail.com>\n\n\n* jx/remote-archive-over-smart-http (2023-09-25) 3 commits\n - archive: support remote archive from stateless transport\n - transport-helper: run do_take_over in connect_helper\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 Expecting a reroll.\n cf. <CANYiYbFkG+CvrNFBkdNewZs7ADROVsjd051SDQsU0zVq8eBhew@mail.gmail.com>\n source: <20230923152201.14741-1-worldhello.net@gmail.com>\n\n\n* jx/sideband-chomp-newline-fix (2023-09-25) 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: <CANYiYbF+Xmk4rCNLMJe+i_CFafg8=QU5vbXWNUZbOVsDLTe5QQ@mail.gmail.com>\n\n\n* ks/ref-filter-mailmap (2023-09-25) 3 commits\n  (merged to 'next' on 2023-09-28 at 0d3fd9959a)\n + ref-filter: add mailmap support\n + t/t6300: introduce test_bad_atom\n + t/t6300: cleanup test_atom\n\n \"git for-each-ref\" and friends learn to apply mailmap to authorname\n and other fields.\n\n Will merge to 'master'.\n source: <20230925175050.3498-1-five231003@gmail.com>\n\n\n* ps/revision-cmdline-stdin-not (2023-09-25) 1 commit\n  (merged to 'next' on 2023-09-28 at a28201e0dd)\n + revision: make pseudo-opt flags read via stdin behave consistently\n\n \"git rev-list --stdin\" learned to take non-revisions (like \"--not\")\n recently from the standard input, but the way such a \"--not\" was\n handled was quite confusing, which has been rethought.  This is\n potentially a change that breaks backward compatibility.\n\n Will merge to 'master'.\n source: <6221acd2796853144f8e84081655fbc79fdc6634.1695646898.git.ps@pks.im>\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-09-25) 7 commits\n - SQUASH???\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 Looking good.\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 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 Waiting for review response.\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 Comments?\n source: <e6d8a291-03de-cfd3-3813-747fc2cad145@web.de>\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 Teach a new \"-d\" option that shows the patch against the first\n parent for merge commits (which is \"--diff-merges=first-parent -p\").\n\n Letting a less useful combination of options squat on short-and-sweet \"-d\" feels dubious.\n source: <20230909125446.142715-1-sorganov@gmail.com>\n\n\n* cc/repack-sift-filtered-objects-to-separate-pack (2023-10-02) 9 commits\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 'next'.\n cf. <ZRsknb4NxNHTR21E@nand.local>\n source: <20231002165504.1325153-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* 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 May want to wait until tb/repack-existing-packs-cleanup stabilizes.\n source: <20230907092521.733746-1-christian.couder@gmail.com>\n\n\n* la/trailer-test-and-doc-updates (2023-09-07) 13 commits\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 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 Waiting for review response.\n cf. <xmqq350hw6n7.fsf@gitster.g>\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 Waiting for the base topic to settle.\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 Still being discussed.\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"},{"id":"482554","messageId":"871qecgpg1.fsf@osv.gnss.ru","threadId":"60290","inReplyTo":"xmqqedic35u4.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Sergey Organov","fromEmail":"sorganov@gmail.com","sentAt":"2023-10-03T07:01:02Z","receivedAt":"2023-10-03T07:02:41Z","isPatch":false,"sender":{"key":"sorganov@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8501568?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\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>  Teach a new \"-d\" option that shows the patch against the first\n>  parent for merge commits (which is \"--diff-merges=first-parent -p\").\n\nWhich happens to naturally mean \"show diff for all commits\" for the\nuser.\n\n>\n>  Letting a less useful combination of options squat on short-and-sweet\n>  \"-d\" feels dubious. source:\n>  <20230909125446.142715-1-sorganov@gmail.com>\n\nI believe I've addressed this in details in my reply here:\n<87o7hok8dx.fsf@osv.gnss.ru>, and got no further objections from you\nsince then, so I figure I'd ask to finally let the patch in.\n\nTo summarize my position here, \"-d\" meaning \"show me *d*iff for all\ncommits\", as implemented in the patch, is very mnemonic, has natural\nsemantics for \"-d\" in the context of \"git log\", and is straight to the\npoint. Therefore it is indeed short-and-sweet compared to the only\nalternative proposed: \"follow first parent only while traversing history\nand show me diffs for all commits\", that would indeed need a different\nshort-cut, if any.\n\nThanks,\n-- Sergey Organov\n"},{"id":"482573","messageId":"xmqq34yr3btn.fsf@gitster.g","threadId":"60290","inReplyTo":"871qecgpg1.fsf@osv.gnss.ru","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-03T16:33:40Z","receivedAt":"2023-10-03T16:33:48Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sergey Organov <sorganov@gmail.com> writes:\n\n> I believe I've addressed this in details in my reply here:\n> <87o7hok8dx.fsf@osv.gnss.ru>, and got no further objections from you\n> since then, so I figure I'd ask to finally let the patch in.\n\nYou need to know that no response does not mean no objection.  You\nrepeated why the less useful combination is what you want, but that\ndoes not mean the combination deserves to squat on short-and-sweet\n'd' and prevent others from coming up with a better use for it.\n"},{"id":"482580","messageId":"874jj7lh7x.fsf@osv.gnss.ru","threadId":"60290","inReplyTo":"xmqq34yr3btn.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Sergey Organov","fromEmail":"sorganov@gmail.com","sentAt":"2023-10-03T17:59:46Z","receivedAt":"2023-10-03T17:59:55Z","isPatch":false,"sender":{"key":"sorganov@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8501568?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Sergey Organov <sorganov@gmail.com> writes:\n>\n>> I believe I've addressed this in details in my reply here:\n>> <87o7hok8dx.fsf@osv.gnss.ru>, and got no further objections from you\n>> since then, so I figure I'd ask to finally let the patch in.\n>\n> You need to know that no response does not mean no objection.  You\n> repeated why the less useful combination is what you want, but that\n> does not mean the combination deserves to squat on short-and-sweet\n> 'd' and prevent others from coming up with a better use for it.\n\nYep, but I've asked what's better use for -d than \"get me diff\"? Do you\nreally have an idea?\n\nThanks,\n-- Sergey Organov\n"},{"id":"482632","messageId":"875y3n4207.fsf@email.froward.int.ebiederm.org","threadId":"60290","inReplyTo":"xmqqedic35u4.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Eric W. Biederman","fromEmail":"ebiederm@xmission.com","sentAt":"2023-10-04T01:20:24Z","receivedAt":"2023-10-04T01:21:05Z","isPatch":false,"sender":{"key":"ebiederm@xmission.com","avatar":"https://avatars.githubusercontent.com/u/7477136?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\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>  Breaks a few CI jobs when merged to 'seen'.\n>  cf. <xmqqbkdmjbkp.fsf@gitster.g>\n\nI see that you have picked up the v2 version.  Thank you.\n\nI pushed v2 out precisely because it contains fixes that should have\nfixed all of the CI breakages.\n\nI am not really familiar with github but looking at the recent CI runs\nit appears since v2 landed the seen branch has been building cleanly.\n\nI haven't misread something have I?\n\nI just don't want people to avoid reviewing it because it is that huge\npatchset that causes problems in seen.\n\nEric\n\n\n"},{"id":"482636","messageId":"xmqqo7hessro.fsf@gitster.g","threadId":"60290","inReplyTo":"874jj7lh7x.fsf@osv.gnss.ru","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-04T08:20:43Z","receivedAt":"2023-10-04T08:20:52Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sergey Organov <sorganov@gmail.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> Sergey Organov <sorganov@gmail.com> writes:\n>>\n>>> I believe I've addressed this in details in my reply here:\n>>> <87o7hok8dx.fsf@osv.gnss.ru>, and got no further objections from you\n>>> since then, so I figure I'd ask to finally let the patch in.\n>>\n>> You need to know that no response does not mean no objection.  You\n>> repeated why the less useful combination is what you want, but that\n>> does not mean the combination deserves to squat on short-and-sweet\n>> 'd' and prevent others from coming up with a better use for it.\n>\n> Yep, but I've asked what's better use for -d than \"get me diff\"? Do you\n> really have an idea?\n\nThe primary point is to leave it open for future developers.\n\nIf I have to pick a candidate for \"get me diff\" that is the most\nuseful among those currently are available, it is \"give patches to\nall single-parent commit, and show tricky conflict resolution part\nonly for merge commits\".  Before \"--remerge-diff\" was invented, my\nanswer would have been \"give patches to all single-parent commit,\nand show combined diff in the compact form for merge commits\", aka\n\"git log --cc\".  Even though we did not know if a better output\npresentation for merge commits would be coming, we did not let it\nsquat on any short-and-sweet single letter synonym.\n"},{"id":"482639","messageId":"871qeay6tz.fsf@osv.gnss.ru","threadId":"60290","inReplyTo":"xmqqo7hessro.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Sergey Organov","fromEmail":"sorganov@gmail.com","sentAt":"2023-10-04T11:18:00Z","receivedAt":"2023-10-04T11:18:09Z","isPatch":false,"sender":{"key":"sorganov@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8501568?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Sergey Organov <sorganov@gmail.com> writes:\n>\n>> Junio C Hamano <gitster@pobox.com> writes:\n>>\n>>> Sergey Organov <sorganov@gmail.com> writes:\n>>>\n>>>> I believe I've addressed this in details in my reply here:\n>>>> <87o7hok8dx.fsf@osv.gnss.ru>, and got no further objections from you\n>>>> since then, so I figure I'd ask to finally let the patch in.\n>>>\n>>> You need to know that no response does not mean no objection.  You\n>>> repeated why the less useful combination is what you want, but that\n>>> does not mean the combination deserves to squat on short-and-sweet\n>>> 'd' and prevent others from coming up with a better use for it.\n>>\n>> Yep, but I've asked what's better use for -d than \"get me diff\"? Do you\n>> really have an idea?\n>\n> The primary point is to leave it open for future developers.\n\nWell, I'm not actually convinced it's justified in this particular case,\nbut I'll re-roll with another option name, even though I suspect this\nwill leave short-and-sweet '-d' unused for yet another 18 years.\n\nJust for better understanding: does it mean that *any* addition of\none-letter option is prohibited from any existing Git command? Cause it\ndefinitely sounds this way.\n\nAnd while we are at it, is it allowed to have \"long\" one-letter options,\ne.g., \"--d\"?\n\n>\n> If I have to pick a candidate for \"get me diff\" that is the most\n> useful among those currently are available, it is \"give patches to\n> all single-parent commit, and show tricky conflict resolution part\n> only for merge commits\".\n\nI'm afraid you need to pick a candidate that will be natural for '-d',\nnot just most useful output for your workflows, whatever it happens to\nbe.\n\n> Before \"--remerge-diff\" was invented, my answer would have been \"give\n> patches to all single-parent commit, and show combined diff in the\n> compact form for merge commits\", aka \"git log --cc\".\n\nAnd this is already there as well, or do you suggest\n\n-d == --remerge-diff ?\n-d == --cc ?\n\n> Even though we did not know if a better output presentation for merge\n> commits would be coming, we did not let it squat on any\n> short-and-sweet single letter synonym.\n\nExcept -m and -c, and when \"better\" actually came where \"better\" means\nbasic functionality that should *better* have been there from the very\nbeginning, you argue against it.\n\nAnd then, as in your view diff is not the best presentation for merge\ncommits, the best will have nothing to do with diff anyway, and so won't\nbe using '-d' with 99.99% probability.\n\nThen, hopefully, somebody sometime will agree that we can finally use -d\nfor what it fits best: diff, plain old simple diff.\n\nOverall, please expect a re-roll with another option name.\n\nThanks,\n-- Sergey Organov\n"},{"id":"482658","messageId":"xmqq5y3ms67j.fsf@gitster.g","threadId":"60290","inReplyTo":"875y3n4207.fsf@email.froward.int.ebiederm.org","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-04T16:28:00Z","receivedAt":"2023-10-04T16:28:13Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Eric W. Biederman\" <ebiederm@xmission.com> writes:\n\n> I pushed v2 out precisely because it contains fixes that should have\n> fixed all of the CI breakages.\n>\n> I am not really familiar with github but looking at the recent CI runs\n> it appears since v2 landed the seen branch has been building cleanly.\n\nhttps://github.com/git/git/actions/runs/6398848314 shows the CI run\nwith seen at 7052c9b and it seems it does have the\neb/hash-transition topic in it.\n\n> I just don't want people to avoid reviewing it because it is that huge\n> patchset that causes problems in seen.\n\nCertainly.\n\nI have seen people review patches that do not even compile, though,\nso \"problems in seen\" may not be that much of an issue, compared to\nhow intimidating the large series looks like.\n\nThanks.\n"},{"id":"482686","messageId":"xmqqjzs1mkma.fsf@gitster.g","threadId":"60290","inReplyTo":"871qeay6tz.fsf@osv.gnss.ru","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-05T10:25:33Z","receivedAt":"2023-10-05T14:43:15Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sergey Organov <sorganov@gmail.com> writes:\n\n> Just for better understanding: does it mean that *any* addition of\n> one-letter option is prohibited from any existing Git command? Cause it\n> definitely sounds this way.\n\nNo, we just prefer to think twice before giving short-and-sweet\nsingle letter option to a feature that is not proven useful, and\nduring the discussion it has become rather clear that the proposed\ncombination of options goes against helping normal Git users by\nforcing them to read an aggregated and redundant patch for a merge\nwhen they already see patches for individual commits on the side\nbranch that was merged.\n\n>> If I have to pick a candidate for \"get me diff\" that is the most\n>> useful among those currently are available, it is \"give patches to\n>> all single-parent commit, and show tricky conflict resolution part\n>> only for merge commits\".\n>\n> I'm afraid you need to pick a candidate that will be natural for '-d',\n> not just most useful output for your workflows, whatever it happens to\n> be.\n\nLiteral match to word \"diff\" does not necessarily mean it is useful,\nand short-and-sweet single-letter option name is primarily about\nletting users reach useful features with minimum typing [*1*], so you\ncannot avoid \"most useful\" being a large part of the equation.\n\nI am wondering if we can have a generalized \"personal command option\nalias\" mechanism implemented.  Then you can give '-[a-z]'[*2*] to\nwhatever combination you like without affecting others by only\nfutzing with your $HOME/.gitconfig file.\n\n\n[Footnote]\n\n *1* ...or if we are mimicking options of an existing external\n     commmand, we need to match them, but in this case it does not\n     apply.\n\n *2* If we were to do this for real, it may make sense to carve out\n     option namespace so that end-user aliases cannot overlap with\n     official set of options.  For example, if you can never get a\n     string that matches \"^-![a-z]$\" recognised as an official\n     command line option by our parsers, then '-!' followed by a\n     single letter would be a good candidate for our \"personal\n     command option alias\" to work with, and '-!d' might be\n     something you want to use your personal option alias, without\n     having to worry about a later version of Git using the option\n     officially for something else.\n\n     Another thing that need to be considered when designing such a\n     \"command option alias\" feature is how to express the set of\n     commands an alias applies to, as some underlying commands may\n     share the same set of options.  For example, having to say\n\n\toptionAlias.bisect.1 = --first-parent\n\toptionAlias.blame.1 = --first-parent\n\toptionAlias.log.1 = --first-parent\n\n     is a bit too cumbersome to allow me to say \"git bisect -!1\",\n     \"git blame -!1\", and \"git log -!1\".  But I am not offhand sure\n     if a much simpler\n\n\toptionAlias.1 = --first-parent\n\n     is sufficient.  \"git commit -!1\" would expand into \"git commit\n     --first-parent\" and would give you an error with the usage\n     message, which may not be too bad.  I dunno.\n\n"},{"id":"482715","messageId":"87lecgeqfu.fsf@osv.gnss.ru","threadId":"60290","inReplyTo":"xmqqjzs1mkma.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Sergey Organov","fromEmail":"sorganov@gmail.com","sentAt":"2023-10-05T20:59:17Z","receivedAt":"2023-10-05T20:59:24Z","isPatch":false,"sender":{"key":"sorganov@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8501568?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Sergey Organov <sorganov@gmail.com> writes:\n\n[...]\n\n>>> If I have to pick a candidate for \"get me diff\" that is the most\n>>> useful among those currently are available, it is \"give patches to\n>>> all single-parent commit, and show tricky conflict resolution part\n>>> only for merge commits\".\n>>\n>> I'm afraid you need to pick a candidate that will be natural for '-d',\n>> not just most useful output for your workflows, whatever it happens to\n>> be.\n>\n> Literal match to word \"diff\" does not necessarily mean it is useful,\n\nSure, who argues? I don't.\n\n> and short-and-sweet single-letter option name is primarily about\n> letting users reach useful features with minimum typing [*1*], so you\n> cannot avoid \"most useful\" being a large part of the equation.\n\nI don't try to avoid \"most useful\" either, quite opposite. With whom do\nyou argue?\n\nI just pointed that a short-cut would better be natural (or mnemonic)\n/as well/, so you probably don't actually want:\n\n  -d:\n     give patches to all single-parent commits, and show tricky conflict\n     resolution part only for merge commits.\n\n, or do you?\n\nOverall, as an example, I'd understand if you had deflected the patch\nwith \"let's rather use -d for '--decorate=short', or '--date=relative'\",\nor something like that, but you don't, leaving me uncertain about your\nactual worries and intentions.\n\nAnyway, I re-submitted the patches avoiding precious, too hard to\ndeserve single-letter option.\n\nThanks,\n-- Sergey Organov\n"},{"id":"482726","messageId":"xmqqh6n4eo7n.fsf@gitster.g","threadId":"60290","inReplyTo":"87lecgeqfu.fsf@osv.gnss.ru","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2023-10-05T21:47:24Z","receivedAt":"2023-10-05T21:47:34Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sergey Organov <sorganov@gmail.com> writes:\n\n> Overall, as an example, I'd understand if you had deflected the patch\n> with \"let's rather use -d for '--decorate=short', or '--date=relative'\",\n> or something like that, but you don't, leaving me uncertain about your\n> actual worries and intentions.\n\nOh, I would be very much more sympathetic if somebody wanted to make\na short-and-sweet single-letter option to stand for \"--first-parent\n-p\", if they come with the \"first-parent chain is special---it is\nthe trunk history of the development\" world view.  And the resulting\nbehaviour would be \"give me the diffs\" in their world view, so I\nwould understand if they wanted to use \"-d\" for such an operation.\n\nHowever, to folks who do not subscribe to \"the first parent chain is\nthe trunk history\" world view, \"give me the diffs\" is not an\nexplanation of the resulting behaviour, because in \"-d\" there is no\ntrace of hint that it is also about first-parent traversal.  \n\nSo \"-d\" may not be a perfect fit for it, either.  But at least it is\nbased on a more consistent world view, I would think, than\n\"--diff-merges=1 -p\", whose behaviour becomes unexplainable when it\nhits \"reverse\" merges in a world where the first parent chain is not\nnecessarily the trunk.\n\nAnyway, I've tentatively queued the \"--dd\" round.  Naming is hard,\nI cannot tell what \"dd\" stards for, and I suspect no user can X-<.\n\nThanks.\n"},{"id":"482750","messageId":"87il7jr5mn.fsf@osv.gnss.ru","threadId":"60290","inReplyTo":"xmqqh6n4eo7n.fsf@gitster.g","subject":"Re: What's cooking in git.git (Oct 2023, #01; Mon, 2)","fromName":"Sergey Organov","fromEmail":"sorganov@gmail.com","sentAt":"2023-10-06T18:02:40Z","receivedAt":"2023-10-06T18:02:46Z","isPatch":false,"sender":{"key":"sorganov@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8501568?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Sergey Organov <sorganov@gmail.com> writes:\n>\n>> Overall, as an example, I'd understand if you had deflected the patch\n>> with \"let's rather use -d for '--decorate=short', or '--date=relative'\",\n>> or something like that, but you don't, leaving me uncertain about your\n>> actual worries and intentions.\n>\n> Oh, I would be very much more sympathetic if somebody wanted to make\n> a short-and-sweet single-letter option to stand for \"--first-parent\n> -p\", if they come with the \"first-parent chain is special---it is\n> the trunk history of the development\" world view.  And the resulting\n> behaviour would be \"give me the diffs\" in their world view, so I\n> would understand if they wanted to use \"-d\" for such an operation.\n>\n> However, to folks who do not subscribe to \"the first parent chain is\n> the trunk history\" world view, \"give me the diffs\" is not an\n> explanation of the resulting behaviour, because in \"-d\" there is no\n> trace of hint that it is also about first-parent traversal.  \n>\n> So \"-d\" may not be a perfect fit for it, either.  But at least it is\n> based on a more consistent world view, I would think, than\n> \"--diff-merges=1 -p\", whose behaviour becomes unexplainable when it\n> hits \"reverse\" merges in a world where the first parent chain is not\n> necessarily the trunk.\n>\n> Anyway, I've tentatively queued the \"--dd\" round.  Naming is hard,\n> I cannot tell what \"dd\" stards for, and I suspect no user can X-<.\n\nThanks, it stands for diff-diff (for both merges and regulars), and got\ninspired by --cc as well. Also selected as being fairly easy to type.\n\nShould I add this to the commit message?\n\n-- Sergey Organov\n"}]}