{"thread":{"id":"58155","subject":"What's cooking in git.git (Jul 2022, #04; Wed, 13)","startedAt":"2022-07-14T01:32:37Z","lastAt":"2022-07-17T16:58:23Z","messageCount":7,"participants":["Junio C Hamano","Derrick Stolee","Ævar Arnfjörð Bjarmason","Han Xin","Elijah Newren","ZheNing Hu"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"459030","messageId":"xmqq7d4g8onl.fsf@gitster.g","threadId":"58155","inReplyTo":null,"subject":"What's cooking in git.git (Jul 2022, #04; Wed, 13)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-07-14T01:32:30Z","receivedAt":"2022-07-14T01:32:37Z","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',\nand aren't considered \"accepted\" at all.\n\nCopies of the source code to Git live in many repositories, and the\nfollowing is a list of the ones I push into or their mirrors.  Some\nrepositories have only a subset of branches.\n\nWith maint, master, next, seen, todo:\n\n\tgit://git.kernel.org/pub/scm/git/git.git/\n\tgit://repo.or.cz/alt-git.git/\n\thttps://kernel.googlesource.com/pub/scm/git/git/\n\thttps://github.com/git/git/\n\thttps://gitlab.com/git-vcs/git/\n\nWith all the integration branches and topics broken out:\n\n\thttps://github.com/gitster/git/\n\nEven though the preformatted documentation in HTML and man format\nare not sources, they are published in these repositories for\nconvenience (replace \"htmldocs\" with \"manpages\" for the manual\npages):\n\n\tgit://git.kernel.org/pub/scm/git/git-htmldocs.git/\n\thttps://github.com/gitster/git-htmldocs.git/\n\nRelease tarballs are available at:\n\n\thttps://www.kernel.org/pub/software/scm/git/\n\n--------------------------------------------------\n[Graduated to 'master']\n\n* ab/test-quoting-fix (2022-06-30) 3 commits\n  (merged to 'next' on 2022-07-06 at 0aa78fd9db)\n + config tests: fix harmless but broken \"rm -r\" cleanup\n + test-lib.sh: fix prepend_var() quoting issue\n + tests: add missing double quotes to included library paths\n\n Fixes for tests when the source directory has unusual characters in\n its path, e.g. whitespaces, double-quotes, etc.\n source: <cover-v2-0.3-00000000000-20220630T101646Z-avarab@gmail.com>\n\n\n* cl/grep-max-count (2022-06-22) 1 commit\n  (merged to 'next' on 2022-07-08 at 646199ab4c)\n + grep: add --max-count command line option\n\n \"git grep -m<max-hits>\" is a way to limit the hits shown per file.\n source: <pull.1278.v4.git.git.1655927252899.gitgitgadget@gmail.com>\n\n\n* dr/i18n-die-warn-error-usage (2022-06-21) 1 commit\n  (merged to 'next' on 2022-07-08 at 6f639750a1)\n + i18n: mark message helpers prefix for translation\n\n Give _() markings to fatal/warning/usage: labels that are shown in\n front of these messages.\n source: <pull.1279.v2.git.git.1655819877758.gitgitgadget@gmail.com>\n\n\n* ds/git-rebase-doc-markup (2022-06-30) 1 commit\n  (merged to 'next' on 2022-07-08 at 24a0b80b71)\n + git-rebase.txt: use back-ticks consistently\n\n References to commands-to-be-typed-literally in \"git rebase\"\n documentation mark-up have been corrected.\n source: <pull.1270.v3.git.1656508868146.gitgitgadget@gmail.com>\n\n\n* ds/t5510-brokequote (2022-06-21) 1 commit\n  (merged to 'next' on 2022-07-06 at 2776bed385)\n + t5510: replace 'origin' with URL more carefully\n\n Test fix.\n source: <484a330e-0902-6e1b-8189-63c72dcea494@github.com>\n\n\n* en/t6429-test-must-be-empty-fix (2022-06-30) 1 commit\n  (merged to 'next' on 2022-07-06 at 627c51773c)\n + t6429: fix use of non-existent function\n\n A test fix.\n source: <pull.1276.git.1656652799863.gitgitgadget@gmail.com>\n\n\n* jk/remote-show-with-negative-refspecs (2022-06-17) 1 commit\n  (merged to 'next' on 2022-07-08 at d4e49ad22a)\n + remote: handle negative refspecs in git remote show\n (this branch is used by jk/t5505-restructure.)\n\n \"git remote show [-n] frotz\" now pays attention to negative\n pathspec.\n source: <20220617002036.1577-2-jacob.keller@gmail.com>\n\n\n* ll/ls-files-tests-update (2022-07-06) 1 commit\n  (merged to 'next' on 2022-07-06 at 444d1eabd0)\n + ls-files: update test style\n\n Test update.\n source: <pull.1269.v6.git.1656863349926.gitgitgadget@gmail.com>\n\n\n* ro/mktree-allow-missing-fix (2022-06-21) 1 commit\n  (merged to 'next' on 2022-07-08 at 599ed6fb84)\n + mktree: do not check type of remote objects\n\n \"git mktree --missing\" lazily fetched objects that are missing from\n the local object store, which was totally unnecessary for the purpose\n of creating the tree object(s) from its input.\n source: <748f39a9-65aa-2110-cf92-7ddf81b5f507@roku.com>\n\n\n* tb/pack-objects-remove-pahole-comment (2022-06-28) 1 commit\n  (merged to 'next' on 2022-07-06 at d7494fbdef)\n + pack-objects.h: remove outdated pahole results\n\n Comment fix.\n source: <1379af2e9d271b501ef3942398e7f159a9c77973.1656440978.git.me@ttaylorr.com>\n\n\n* tk/rev-parse-doc-clarify-at-u (2022-06-23) 1 commit\n  (merged to 'next' on 2022-07-08 at 1075452f32)\n + rev-parse: documentation adjustment - mention remote tracking with @{u}\n\n Doc update.\n source: <pull.1265.v2.git.1655960512385.gitgitgadget@gmail.com>\n\n\n* zk/push-use-bitmaps (2022-06-17) 1 commit\n  (merged to 'next' on 2022-07-08 at 8aa1f94fad)\n + send-pack.c: add config push.useBitmaps\n\n \"git push\" sometimes perform poorly when reachability bitmaps are\n used, even in a repository where other operations are helped by\n bitmaps.  The push.useBitmaps configuration variable is introduced\n to allow disabling use of reachability bitmaps only for \"git push\".\n source: <pull.1263.v4.git.1655492779228.gitgitgadget@gmail.com>\n\n--------------------------------------------------\n[New Topics]\n\n* jk/diff-files-cleanup-fix (2022-07-12) 1 commit\n  (merged to 'next' on 2022-07-13 at 9db5235d01)\n + diff-files: move misplaced cleanup label\n\n An earlier attempt to plug leaks placed a clean-up label to jump to\n at a bogus place, which as been corrected.\n\n Will merge to 'master'.\n source: <Ys0c0ePxPOqZ/5ck@coredump.intra.peff.net>\n\n\n* cw/submodule-merge-messages (2022-07-13) 1 commit\n - submodule merge: update conflict error message\n\n Update the message given when \"git merge\" sees conflicts at a path\n with a submodule while merging a superproject.\n\n Needs review.\n source: <20220712231935.2979727-1-calvinwan@google.com>\n\n\n* ds/doc-allowlist (2022-07-13) 3 commits\n - *: use allowlist and denylist\n - t/*: use allowlist\n - Documentation: use allowlist and denylist\n\n Mechanical replacement of s/whitelist/allowlist/.\n\n Expecting a reroll.\n source: <pull.1274.git.1657718450.gitgitgadget@gmail.com>\n\n\n* js/vimdiff-quotepath-fix (2022-07-13) 2 commits\n - SQUASH???\n - mergetool(vimdiff): allow paths to contain spaces again\n\n Variable quoting fix in the vimdiff driver of \"git mergetool\"\n\n Expecting a reroll.\n cf. <xmqqa69cabhq.fsf@gitster.g>\n source: <pull.1287.git.1657726969774.gitgitgadget@gmail.com>\n\n\n* mt/checkout-count-fix (2022-07-13) 3 commits\n - checkout: fix two bugs on the final count of updated entries\n - checkout: show bug about failed entries being included in final report\n - checkout: document bug where delayed checkout counts entries twice\n\n \"git checkout\" miscounted the paths it updated, which has been\n corrected.\n\n Will merge to 'next'?\n source: <cover.1657685948.git.matheus.bernardino@usp.br>\n\n\n* tb/commit-graph-genv2-upgrade-fix (2022-07-13) 3 commits\n - commit-graph: fix corrupt upgrade from generation v1 to v2\n - commit-graph: introduce `repo_find_commit_pos_in_graph()`\n - t5318: demonstrate commit-graph generation v2 corruption\n\n There was a bug in the codepath to upgrade generation information\n in commit-graph from v1 to v2 format, which has been corrected.\n\n Needs review.\n source: <cover.1657667404.git.me@ttaylorr.com>\n\n\n* js/safe-directory-plus (2022-07-13) 3 commits\n - mingw: be more informative when ownership check fails on FAT32\n - mingw: handle a file owned by the Administrators group correctly\n - Allow debugging unsafe directories' ownership\n\n Needs review.\n source: <pull.1286.git.1657700238.gitgitgadget@gmail.com>\n\n--------------------------------------------------\n[Stalled]\n\n* ll/curl-accept-language (2022-07-11) 1 commit\n  (merged to 'next' on 2022-07-13 at 076aba7421)\n + remote-curl: send Accept-Language header to server\n\n Earlier, HTTP transport clients learned to tell the server side\n what locale they are in by sending Accept-Language HTTP header, but\n this was done only for some requests but not others.\n\n Will merge to 'master'.\n source: <pull.1251.v4.git.1657519134336.gitgitgadget@gmail.com>\n\n\n* bc/stash-export (2022-04-08) 4 commits\n - builtin/stash: provide a way to import stashes from a ref\n - builtin/stash: provide a way to export stashes to a ref\n - builtin/stash: factor out revision parsing into a function\n - object-name: make get_oid quietly return an error\n\n A mechanism to export and import stash entries to and from a normal\n commit to transfer it across repositories has been introduced.\n\n Expecting a reroll.\n cf. <YnL2d4Vr9Vr7W4Hj@camp.crustytoothpaste.net>\n source: <20220407215352.3491567-1-sandals@crustytoothpaste.net>\n\n\n* cw/remote-object-info (2022-05-06) 11 commits\n - SQUASH??? coccicheck\n - SQUASH??? ensure that coccicheck is happy\n - SQUASH??? compilation fix\n - cat-file: add --batch-command remote-object-info command\n - cat-file: move parse_cmd and DEFAULT_FORMAT up\n - transport: add object-info fallback to fetch\n - transport: add client side capability to request object-info\n - object-info: send attribute packet regardless of object ids\n - object-store: add function to free object_info contents\n - fetch-pack: move fetch default settings\n - fetch-pack: refactor packet writing\n\n A client component to talk with the object-info endpoint.\n\n Expecting a reroll.\n source: <20220502170904.2770649-1-calvinwan@google.com>\n\n--------------------------------------------------\n[Cooking]\n\n* po/doc-add-renormalize (2022-07-09) 1 commit\n - doc add: renormalize is not idempotent for CRCRLF\n\n Documentation for \"git add --renormalize\" has been improved.\n\n Expecting a reroll.\n cf. <dfe0c1ab-33f8-f13e-71ce-1829bb0d2d7f@iee.email>\n source: <d3b8ed97a105ea1d7e656c964b7eee378e11ede6.1657385781.git.gitgitgadget@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* rs/cocci-array-copy (2022-07-10) 1 commit\n  (merged to 'next' on 2022-07-13 at f21dec0f71)\n + cocci: avoid normalization rules for memcpy\n\n A coccinelle rule (in contrib/) to encourage use of COPY_ARRAY\n macro has been improved.\n\n Will merge to 'master'.\n source: <ded153d4-4aea-d4da-11cb-ec66d181e4c9@web.de>\n\n\n* sg/multi-pack-index-parse-options-fix (2022-07-10) 1 commit\n  (merged to 'next' on 2022-07-11 at 1e14685680)\n + multi-pack-index: simplify handling of unknown --options\n\n The way \"git multi-pack\" uses parse-options API has been improved.\n\n Will merge to 'master'.\n source: <20220710151645.GA2038@szeder.dev>\n\n\n* jk/ref-filter-discard-commit-buffer (2022-07-11) 1 commit\n  (merged to 'next' on 2022-07-13 at d1521724db)\n + ref-filter: disable save_commit_buffer while traversing\n\n Will merge to 'master'.\n source: <Ysw4JtoHW1vWmqhz@coredump.intra.peff.net>\n\n\n* ab/cocci-unused (2022-07-06) 6 commits\n  (merged to 'next' on 2022-07-11 at 7fa60d2a5b)\n + cocci: generalize \"unused\" rule to cover more than \"strbuf\"\n + cocci: add and apply a rule to find \"unused\" strbufs\n + cocci: have \"coccicheck{,-pending}\" depend on \"coccicheck-test\"\n + cocci: add a \"coccicheck-test\" target and test *.cocci rules\n + Makefile & .gitignore: ignore & clean \"git.res\", not \"*.res\"\n + Makefile: remove mandatory \"spatch\" arguments from SPATCH_FLAGS\n\n Add Coccinelle rules to detect the pattern of initializing and then\n finalizing a structure without using it in between at all, which\n happens after code restructuring and the compilers fail to\n recognize as an unused varilable.\n\n Will merge to 'master'.\n source: <cover-v4-0.6-00000000000-20220705T134033Z-avarab@gmail.com>\n\n\n* jk/clone-unborn-confusion (2022-07-11) 4 commits\n  (merged to 'next' on 2022-07-13 at a7ae8cb4b5)\n + clone: move unborn head creation to update_head()\n + clone: use remote branch if it matches default HEAD\n + clone: propagate empty remote HEAD even with other branches\n + clone: drop extra newline from warning message\n\n \"git clone\" from a repository with some ref whose HEAD is unborn\n did not set the HEAD in the resulting repository correctly, which\n has been corrected.\n\n Will merge to 'master'.\n source: <YsdyLS4UFzj0j/wB@coredump.intra.peff.net>\n\n\n* ac/bitmap-lookup-table (2022-07-06) 6 commits\n - p5310-pack-bitmaps.sh: remove pack.writeReverseIndex\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 - 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\n Waiting for a more thorough review.\n cf. <Ys4DjW9JjQFx5Bhb@nand.local>\n source: <pull.1266.v3.git.1656924376.gitgitgadget@gmail.com>\n\n\n* bc/nettle-sha256 (2022-07-10) 1 commit\n  (merged to 'next' on 2022-07-11 at cf9595d8ca)\n + sha256: add support for Nettle\n\n Support for libnettle as SHA256 implementation has been added.\n\n Will merge to 'master'.\n source: <20220710132907.1499365-1-sandals@crustytoothpaste.net>\n\n\n* jc/builtin-mv-move-array (2022-07-09) 1 commit\n  (merged to 'next' on 2022-07-09 at 0d3b3f62e5)\n + builtin/mv.c: use the MOVE_ARRAY() macro instead of memmove()\n\n Apply Coccinelle rule to turn raw memmove() into MOVE_ARRAY() cpp\n macro, which would improve maintainability and readability.\n\n Will merge to 'master'.\n source: <xmqq4jzpu4xp.fsf_-_@gitster.g>\n\n\n* jd/gpg-interface-trust-level-string (2022-07-10) 1 commit\n  (merged to 'next' on 2022-07-11 at 7b3cca73a8)\n + gpg-interface: add function for converting trust level to string\n\n The code to convert between GPG trust level strings and internal\n constants we use to represent them have been cleaned up.\n\n Will merge to 'master'.\n source: <pull.1281.v4.git.1657515650587.gitgitgadget@gmail.com>\n\n\n* kk/p4-client-name-encoding-fix (2022-07-08) 1 commit\n  (merged to 'next' on 2022-07-11 at 9c18616f76)\n + git-p4: fix bug with encoding of p4 client name\n\n \"git p4\" did not handle non-ASCII client name well, which has been\n corrected.\n\n Will merge to 'master'.\n source: <pull.1285.git.git.1657267260405.gitgitgadget@gmail.com>\n\n\n* sa/cat-file-mailmap (2022-07-13) 4 commits\n - cat-file: add mailmap support\n - ident: rename commit_rewrite_person() to apply_mailmap_to_header()\n - ident: move commit_rewrite_person() to ident.c\n - revision: improve commit_rewrite_person()\n\n \"git cat-file\" learned an option to use the mailmap when showing\n commit and tag objects.\n\n Will merge to 'next'?\n source: <20220712160634.213956-1-siddharthasthana31@gmail.com>\n\n\n* fr/vimdiff-layout-fix (2022-07-08) 1 commit\n  (merged to 'next' on 2022-07-09 at d8461bd236)\n + vimdiff: make layout engine more robust against user vim settings\n\n Recent update to vimdiff layout code has been made more robust\n against different end-user vim settings.\n\n Will merge to 'master'.\n source: <20220708181024.45839-1-greenfoo@u92.eu>\n\n\n* ds/rebase-update-ref (2022-07-12) 13 commits\n - sequencer: notify user of --update-refs activity\n - sequencer: ignore HEAD ref under --update-refs\n - rebase: add rebase.updateRefs config option\n - sequencer: rewrite update-refs as user edits todo list\n - rebase: update refs from 'update-ref' commands\n - rebase: add --update-refs option\n - sequencer: add update-ref command\n - sequencer: define array with enum values\n - rebase-interactive: update 'merge' description\n - branch: consider refs under 'update-refs'\n - t2407: test branches currently using apply backend\n - t2407: test bisect and rebase as black-boxes\n - Merge branch 'ds/branch-checked-out' into ds/rebase-update-ref\n\n \"git rebase -i\" learns to update branches whose tip appear in the\n rebased range.\n\n Expecting a reroll.\n cf. <15631ea2-6722-fd24-c8a6-0cee638b0602@github.com>\n source: <pull.1247.v4.git.1657631225.gitgitgadget@gmail.com>\n\n\n* ab/leakfix (2022-07-01) 11 commits\n  (merged to 'next' on 2022-07-11 at 0b107fffcf)\n + pull: fix a \"struct oid_array\" memory leak\n + cat-file: fix a common \"struct object_context\" memory leak\n + gc: fix a memory leak\n + checkout: avoid \"struct unpack_trees_options\" leak\n + merge-file: fix memory leaks on error path\n + merge-file: refactor for subsequent memory leak fix\n + cat-file: fix a memory leak in --batch-command mode\n + revert: free \"struct replay_opts\" members\n + submodule.c: free() memory from xgetcwd()\n + clone: fix memory leak in wanted_peer_refs()\n + check-ref-format: fix trivial memory leak\n\n Plug various memory leaks.\n\n Will merge to 'master'.\n source: <cover-v2-00.11-00000000000-20220701T104017Z-avarab@gmail.com>\n\n\n* ab/test-tool-leakfix (2022-07-01) 9 commits\n  (merged to 'next' on 2022-07-11 at db7a724694)\n + test-tool delta: fix a memory leak\n + test-tool ref-store: fix a memory leak\n + test-tool bloom: fix memory leaks\n + test-tool json-writer: fix memory leaks\n + test-tool regex: call regfree(), fix memory leaks\n + test-tool urlmatch-normalization: fix a memory leak\n + test-tool {dump,scrap}-cache-tree: fix memory leaks\n + test-tool path-utils: fix a memory leak\n + test-tool test-hash: fix a memory leak\n\n Plug various memory leaks in test-tool commands.\n\n Will merge to 'master'.\n source: <cover-v2-0.9-00000000000-20220701T103503Z-avarab@gmail.com>\n\n\n* gc/submodule-use-super-prefix (2022-06-30) 8 commits\n  (merged to 'next' on 2022-07-11 at 0d9cf172f9)\n + submodule--helper: remove display path helper\n + submodule--helper update: use --super-prefix\n + submodule--helper: remove unused SUPPORT_SUPER_PREFIX flags\n + submodule--helper: use correct display path helper\n + submodule--helper: don't recreate recursive prefix\n + submodule--helper update: use display path helper\n + submodule--helper tests: add missing \"display path\" coverage\n + Merge branch 'ab/submodule-cleanup' into gc/submodule-use-super-prefix\n (this branch uses ab/submodule-cleanup.)\n\n Another step to rewrite more parts of \"git submodule\" in C.\n\n Will merge to 'master'.\n source: <20220701021157.88858-1-chooglen@google.com>\n\n\n* hx/lookup-commit-in-graph-fix (2022-07-12) 2 commits\n  (merged to 'next' on 2022-07-13 at 4489696814)\n + t5330: remove run_with_limited_processses()\n  (merged to 'next' on 2022-07-08 at cef32db0b6)\n + commit-graph.c: no lazy fetch in lookup_commit_in_graph()\n\n A corner case bug where lazily fetching objects from a promisor\n remote resulted in infinite recursion has been corrected.\n\n Will merge to 'master'.\n source: <cover.1656593279.git.hanxin.hx@bytedance.com>\n\n\n* pw/xdiff-alloc (2022-07-08) 4 commits\n - xdiff: introduce XDL_ALLOC_GROW()\n - xdiff: introduce XDL_CALLOC_ARRAY()\n - xdiff: introduce xdl_calloc\n - xdiff: introduce XDL_ALLOC_ARRAY()\n\n Add a level of redirection to array allocation API in xdiff part,\n to make it easier to share with the libgit2 project.\n\n Will merge to 'next'?\n source: <pull.1272.v2.git.1657297519.gitgitgadget@gmail.com>\n\n\n* sy/mv-out-of-cone (2022-07-01) 8 commits\n  (merged to 'next' on 2022-07-08 at 654970fdb7)\n + mv: add check_dir_in_index() and solve general dir check issue\n + mv: use flags mode for update_mode\n + mv: check if <destination> exists in index to handle overwriting\n + mv: check if out-of-cone file exists in index with SKIP_WORKTREE bit\n + mv: decouple if/else-if checks using goto\n + mv: update sparsity after moving from out-of-cone to in-cone\n + t1092: mv directory from out-of-cone to in-cone\n + t7002: add tests for moving out-of-cone file/directory\n\n \"git mv A B\" in a sparsely populated working tree can be asked to\n move a path between directories that are \"in cone\" (i.e. expected\n to be materialized in the working tree) and \"out of cone\"\n (i.e. expected to be hidden).  The handling of such cases has been\n improved.\n\n Will merge to 'master'.\n source: <20220630023737.473690-1-shaoxuan.yuan02@gmail.com>\n\n\n* ab/squelch-empty-fsync-traces (2022-06-30) 1 commit\n . trace2: don't include \"fsync\" events in all trace2 logs\n\n Omit fsync-related trace2 entries when their values are all zero.\n\n Breaks tests in hx/unpack-streaming with an interesting interaction.\n source: <patch-v2-1.1-a1fc37de947-20220630T084607Z-avarab@gmail.com>\n\n\n* en/merge-tree (2022-06-22) 17 commits\n  (merged to 'next' on 2022-07-08 at a29b4896ab)\n + git-merge-tree.txt: add a section on potentional usage mistakes\n + merge-tree: add a --allow-unrelated-histories flag\n + merge-tree: allow `ls-files -u` style info to be NUL terminated\n + merge-ort: optionally produce machine-readable output\n + merge-ort: store more specific conflict information\n + merge-ort: make `path_messages` a strmap to a string_list\n + merge-ort: store messages in a list, not in a single strbuf\n + merge-tree: provide easy access to `ls-files -u` style info\n + merge-tree: provide a list of which files have conflicts\n + merge-ort: remove command-line-centric submodule message from merge-ort\n + merge-ort: provide a merge_get_conflicted_files() helper function\n + merge-tree: support including merge messages in output\n + merge-ort: split out a separate display_update_messages() function\n + merge-tree: implement real merges\n + merge-tree: add option parsing and initial shell for real merge function\n + merge-tree: move logic for existing merge into new function\n + merge-tree: rename merge_trees() to trivial_merge_trees()\n\n A new command is introduced that takes two commits and computes a\n tree that would be contained in the resulting merge commit, if the\n histories leading to these two commits were to be merged, and is\n added as a new mode of \"git merge-tree\" subcommand.\n\n Will merge to 'master'.\n source: <pull.1122.v7.git.1655511660.gitgitgadget@gmail.com>\n\n\n* en/merge-restore-to-pristine (2022-06-21) 6 commits\n - merge: do not exit restore_state() prematurely\n - merge: ensure we can actually restore pre-merge state\n - merge: make restore_state() restore staged state too\n - merge: fix save_state() to work when there are racy-dirty files\n - merge: remove unused variable\n - t6424: make sure a failed merge preserves local changes\n\n When \"git merge\" finds that it cannot perform a merge, it should\n restore the working tree to the state before the command was\n initiated, but in some corner cases it didn't.\n\n Needs review.\n source: <pull.1231.v2.git.1655621424.gitgitgadget@gmail.com>\n\n\n* tk/apply-case-insensitive (2022-06-21) 3 commits\n - apply: support case-only renames in case-insensitive filesystems\n - reset: new failing test for reset of case-insensitive duplicate in index\n - t4141: test \"git apply\" with core.ignorecase\n\n \"git apply\" barfed on a patch that makes a case-only rename on a\n case-insensitive filesystem.\n\n Needs review.\n source: <pull.1257.v2.git.1655655027.gitgitgadget@gmail.com>\n\n\n* zh/ls-files-format (2022-07-13) 1 commit\n - ls-files: introduce \"--format\" option\n\n \"git ls-files\" learns the \"--format\" option to tweak its output.\n\n Will merge to 'next'?\n source: <pull.1262.v7.git.1657692472994.gitgitgadget@gmail.com>\n\n\n* en/merge-dual-dir-renames-fix (2022-07-06) 5 commits\n  (merged to 'next' on 2022-07-11 at 5f8dadf87b)\n + merge-ort: fix issue with dual rename and add/add conflict\n + merge-ort: shuffle the computation and cleanup of potential collisions\n + merge-ort: make a separate function for freeing struct collisions\n + merge-ort: small cleanups of check_for_directory_rename\n + t6423: add tests of dual directory rename plus add/add conflict\n\n Fixes a long-standing corner case bug around directory renames in\n the merge-ort strategy.\n\n Will merge to 'master'.\n source: <pull.1268.v4.git.1656984823.gitgitgadget@gmail.com>\n\n\n* js/commit-graph-parsing-without-repo-settings (2022-06-15) 1 commit\n - commit-graph: refactor to avoid prepare_repo_settings\n\n Expecting a reroll.\n source: <9b56496b0809cc8a25af877ea97042e2cb7f2af6.1655246092.git.steadmon@google.com>\n\n\n* jt/connected-show-missing-from-which-side (2022-06-10) 1 commit\n - fetch,fetch-pack: clarify connectivity check error\n\n We may find an object missing after a \"git fetch\" stores the\n objects it obtained from the other side, but it is not necessarily\n because the remote failed to send necessary objects.  Reword the\n messages in an attempt to help users explore other possibilities\n when they hit this error.\n\n Expecting a reroll.\n source: <20220610195247.1177549-1-jonathantanmy@google.com>\n\n\n* ab/submodule-cleanup (2022-06-28) 12 commits\n  (merged to 'next' on 2022-07-08 at 6f3886aa03)\n + git-sh-setup.sh: remove \"say\" function, change last users\n + git-submodule.sh: use \"$quiet\", not \"$GIT_QUIET\"\n + submodule--helper: eliminate internal \"--update\" option\n + submodule--helper: understand --checkout, --merge and --rebase synonyms\n + submodule--helper: report \"submodule\" as our name in some \"-h\" output\n + submodule--helper: rename \"absorb-git-dirs\" to \"absorbgitdirs\"\n + submodule update: remove \"-v\" option\n + submodule--helper: have --require-init imply --init\n + git-submodule.sh: remove unused top-level \"--branch\" argument\n + git-submodule.sh: make the \"$cached\" variable a boolean\n + git-submodule.sh: remove unused $prefix variable\n + git-submodule.sh: remove unused sanitize_submodule_env()\n (this branch is used by gc/submodule-use-super-prefix.)\n\n Further preparation to turn git-submodule.sh into a builtin.\n\n Will merge to 'master'.\n source: <cover-v4-00.12-00000000000-20220628T095914Z-avarab@gmail.com>\n\n\n* jc/resolve-undo (2022-07-11) 2 commits\n  (merged to 'next' on 2022-07-13 at b9ef9482e8)\n + fsck: do not dereference NULL while checking resolve-undo data\n  (merged to 'next' on 2022-06-15 at c195e5a2d9)\n + revision: mark blobs needed for resolve-undo as reachable\n\n The resolve-undo information in the index was not protected against\n GC, which has been corrected.\n\n Will merge to 'master'.\n source: <xmqq35f7kzad.fsf@gitster.g>\n\n\n* ab/build-gitweb (2022-06-28) 8 commits\n  (merged to 'next' on 2022-07-11 at 731e354ff0)\n + gitweb/Makefile: add a \"NO_GITWEB\" parameter\n + Makefile: build 'gitweb' in the default target\n + gitweb/Makefile: include in top-level Makefile\n + gitweb: remove \"test\" and \"test-installed\" targets\n + gitweb/Makefile: prepare to merge into top-level Makefile\n + gitweb/Makefile: clear up and de-duplicate the gitweb.{css,js} vars\n + gitweb/Makefile: add a $(GITWEB_ALL) variable\n + gitweb/Makefile: define all .PHONY prerequisites inline\n\n Teach \"make all\" to build gitweb as well.\n\n Will merge to 'master'.\n source: <cover-v3-0.8-00000000000-20220628T100936Z-avarab@gmail.com>\n\n\n* ab/test-without-templates (2022-06-06) 7 commits\n  (merged to 'next' on 2022-07-11 at afab6c1918)\n + tests: don't assume a .git/info for .git/info/sparse-checkout\n + tests: don't assume a .git/info for .git/info/exclude\n + tests: don't assume a .git/info for .git/info/refs\n + tests: don't assume a .git/info for .git/info/attributes\n + tests: don't assume a .git/info for .git/info/grafts\n + tests: don't depend on template-created .git/branches\n + t0008: don't rely on default \".git/info/exclude\"\n\n Tweak tests so that they still work when the \"git init\" template\n did not create .git/info directory.\n\n Will merge to 'master'.\n source: <cover-v2-0.7-00000000000-20220603T110506Z-avarab@gmail.com>\n\n\n* hx/unpack-streaming (2022-06-13) 6 commits\n  (merged to 'next' on 2022-07-08 at 4eb375ec2f)\n + unpack-objects: use stream_loose_object() to unpack large objects\n + core doc: modernize core.bigFileThreshold documentation\n + object-file.c: add \"stream_loose_object()\" to handle large object\n + object-file.c: factor out deflate part of write_loose_object()\n + object-file.c: refactor write_loose_object() to several steps\n + unpack-objects: low memory footprint for get_data() in dry_run mode\n\n Allow large objects read from a packstream to be streamed into a\n loose object file straight, without having to keep it in-core as a\n whole.\n\n Will merge to 'master'.\n source: <cover.1654914555.git.chiyutianyi@gmail.com>\n\n\n* tb/show-ref-count (2022-06-06) 2 commits\n - builtin/show-ref.c: limit output with `--count`\n - builtin/show-ref.c: rename `found_match` to `matches_nr`\n\n \"git show-ref\" learned to stop after emitting N refs with the new\n \"--count=N\" option.\n\n Expecting a reroll.\n cf. <xmqqczfl4ce1.fsf@gitster.g>\n source: <cover.1654552560.git.me@ttaylorr.com>\n\n\n* ds/bundle-uri-more (2022-06-06) 6 commits\n - fetch: add 'refs/bundle/' to log.excludeDecoration\n - bundle-uri: add support for http(s):// and file://\n - fetch: add --bundle-uri option\n - bundle-uri: create basic file-copy logic\n - remote-curl: add 'get' capability\n - docs: document bundle URI standard\n\n The \"bundle URI\" topic.\n\n Needs review.\n source: <pull.1248.git.1654545325.gitgitgadget@gmail.com>\n\n\n* js/bisect-in-c (2022-06-27) 16 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: teach the `bisect--helper` command to show the correct usage strings\n - bisect--helper: return only correct exit codes in `cmd_*()`\n - bisect--helper: move the `BISECT_STATE` case to the end\n - bisect--helper: make `--bisect-state` optional\n - bisect--helper: align the sub-command order with git-bisect.sh\n - bisect--helper: using `--bisect-state` without an argument is a bug\n - bisect--helper: really retire `--bisect-autostart`\n - bisect--helper: really retire --bisect-next-check\n - bisect--helper: retire the --no-log option\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\n Final bits of \"git bisect.sh\" have been rewritten in C.\n\n Expecting a (hopefully final) reroll.\n cf. <20627.86ilolhnnn.gmgdl@evledraar.gmail.com>\n source: <pull.1132.v4.git.1656354677.gitgitgadget@gmail.com>\n\n\n* gc/bare-repo-discovery (2022-07-07) 5 commits\n - setup.c: create `discovery.bare`\n - safe.directory: use git_protected_config()\n - config: learn `git_protected_config()`\n - Documentation: define protected configuration\n - Documentation/git-config.txt: add SCOPES section\n\n Introduce a discovery.barerepository configuration variable that\n allows users to forbid discovery of bare repositories.\n\n Expecting a reroll.\n cf. <kl6lpmia55ys.fsf@chooglen-macbookpro.roam.corp.google.com>\n source: <pull.1261.v7.git.git.1657234914.gitgitgadget@gmail.com>\n\n\n* gg/worktree-from-the-above (2022-06-21) 2 commits\n  (merged to 'next' on 2022-07-08 at fa0e71ba39)\n + dir: minor refactoring / clean-up\n + dir: traverse into repository\n\n In a non-bare repository, the behavior of Git when the\n core.worktree configuration variable points at a directory that has\n a repository as its subdirectory, regressed in Git 2.27 days.\n\n Will merge to 'master'.\n source: <20220616234433.225-1-gg.oss@outlook.com>\n source: <20220616231956.154-1-gg.oss@outlook.com>\n\n--------------------------------------------------\n[Discarded]\n\n* ar/send-email-confirm-by-default (2022-04-22) 1 commit\n . send-email: always confirm by default\n\n \"git send-email\" is changed so that by default it asks for\n confirmation before sending each message out.\n\n Discarded.\n I wanted to like this, and had it in the version of Git I use\n myself for daily work, but the prompting turned out to be somewhat\n distracting.\n source: <20220422083629.1404989-1-hi@alyssa.is>\n"},{"id":"459042","messageId":"c77648aa-b74b-008b-0bc0-bd6f95eedf2f@github.com","threadId":"58155","inReplyTo":"xmqq7d4g8onl.fsf@gitster.g","subject":"ds/rebase-update-ref (was Re: What's cooking in git.git (Jul 2022, #04; Wed, 13))","fromName":"Derrick Stolee","fromEmail":"derrickstolee@github.com","sentAt":"2022-07-14T12:11:39Z","receivedAt":"2022-07-14T12:12:14Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 7/13/22 9:32 PM, Junio C Hamano wrote:\n\n> * ds/rebase-update-ref (2022-07-12) 13 commits\n>  - sequencer: notify user of --update-refs activity\n>  - sequencer: ignore HEAD ref under --update-refs\n>  - rebase: add rebase.updateRefs config option\n>  - sequencer: rewrite update-refs as user edits todo list\n>  - rebase: update refs from 'update-ref' commands\n>  - rebase: add --update-refs option\n>  - sequencer: add update-ref command\n>  - sequencer: define array with enum values\n>  - rebase-interactive: update 'merge' description\n>  - branch: consider refs under 'update-refs'\n>  - t2407: test branches currently using apply backend\n>  - t2407: test bisect and rebase as black-boxes\n>  - Merge branch 'ds/branch-checked-out' into ds/rebase-update-ref\n> \n>  \"git rebase -i\" learns to update branches whose tip appear in the\n>  rebased range.\n> \n>  Expecting a reroll.\n>  cf. <15631ea2-6722-fd24-c8a6-0cee638b0602@github.com>\n>  source: <pull.1247.v4.git.1657631225.gitgitgadget@gmail.com>\n\nIt looks like you've picked up the latest re-roll (v4), so this\nstatus is a little stale.\n\nThanks,\n-Stolee\n"},{"id":"459052","messageId":"xmqqpmi77iuu.fsf@gitster.g","threadId":"58155","inReplyTo":"c77648aa-b74b-008b-0bc0-bd6f95eedf2f@github.com","subject":"Re: ds/rebase-update-ref (was Re: What's cooking in git.git (Jul 2022, #04; Wed, 13))","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-07-14T16:35:21Z","receivedAt":"2022-07-14T16:35:27Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Derrick Stolee <derrickstolee@github.com> writes:\n\n>>  \"git rebase -i\" learns to update branches whose tip appear in the\n>>  rebased range.\n>> \n>>  Expecting a reroll.\n>>  cf. <15631ea2-6722-fd24-c8a6-0cee638b0602@github.com>\n>>  source: <pull.1247.v4.git.1657631225.gitgitgadget@gmail.com>\n>\n> It looks like you've picked up the latest re-roll (v4), so this\n> status is a little stale.\n\nYes, indeed.  Sorry, and thanks.  Will update.\n"},{"id":"459147","messageId":"220715.86bktqzdb8.gmgdl@evledraar.gmail.com","threadId":"58155","inReplyTo":"xmqq7d4g8onl.fsf@gitster.g","subject":"ab/squelch-empty-fsync-traces & hx/unpack-streaming bug (was: What's cooking in git.git (Jul 2022, #04; Wed, 13))","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2022-07-15T13:40:13Z","receivedAt":"2022-07-15T14:00:25Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Wed, Jul 13 2022, Junio C Hamano wrote:\n\n> * ab/squelch-empty-fsync-traces (2022-06-30) 1 commit\n>  . trace2: don't include \"fsync\" events in all trace2 logs\n>\n>  Omit fsync-related trace2 entries when their values are all zero.\n>\n>  Breaks tests in hx/unpack-streaming with an interesting interaction.\n>  source: <patch-v2-1.1-a1fc37de947-20220630T084607Z-avarab@gmail.com>\n\n[...]\n\n> * hx/unpack-streaming (2022-06-13) 6 commits\n>   (merged to 'next' on 2022-07-08 at 4eb375ec2f)\n>  + unpack-objects: use stream_loose_object() to unpack large objects\n>  + core doc: modernize core.bigFileThreshold documentation\n>  + object-file.c: add \"stream_loose_object()\" to handle large object\n>  + object-file.c: factor out deflate part of write_loose_object()\n>  + object-file.c: refactor write_loose_object() to several steps\n>  + unpack-objects: low memory footprint for get_data() in dry_run mode\n>\n>  Allow large objects read from a packstream to be streamed into a\n>  loose object file straight, without having to keep it in-core as a\n>  whole.\n>\n>  Will merge to 'master'.\n>  source: <cover.1654914555.git.chiyutianyi@gmail.com>\n\nI hadn't had time to look at this until now. There's some interesting\nbehavior here.\n\nThe code to check the hardware flush was added in aaf81223f48\n(unpack-objects: use stream_loose_object() to unpack large objects,\n2022-06-11) (that series is now on master).\n\nBut as my ab/squelch-empty-fsync-traces notes we always add this to the\nevent, so the:\n\n\tgrep fsync/hardware-flush trace2.txt &&\n\nIs equivalent to:\n\n\ttrue &&\n\nI.e. it's not testing worthwhile at all. The reason you're seeing a\nfailure is deu to 412e4caee38 (tests: disable fsync everywhere,\n2021-10-29), i.e. our tests disable fsync(). What you have queued will\npass as:\n\n\tGIT_TEST_FSYNC=true ./t5351-unpack-large-objects.sh\n\nBut I think that would be meaningless, since we'll write out that on\nFSYNC_HARDWARE_FLUSH whether we actually support \"bulk\" or not. AFAICT\nthe way to detect if we support \"bulk\" at all is to check for\nfsync/writeout-only.\n\n*Except* that we we unconditionally increment the \"writeout only\"\ncounter, even if we don't actually support that \"bulk\" mode. We're just\ndoing a regular fsync().\n\nSo, narrowly it looks easy to \"fix\" my ab/squelch-empty-fsync-traces, I\ncould apply this on top:\n\ndiff --git a/t/t5351-unpack-large-objects.sh b/t/t5351-unpack-large-objects.sh\nindex 8ce8aa3b147..29cab843eb9 100755\n--- a/t/t5351-unpack-large-objects.sh\n+++ b/t/t5351-unpack-large-objects.sh\n@@ -53,8 +53,12 @@ BATCH_CONFIGURATION='-c core.fsync=loose-object -c core.fsyncmethod=batch'\n test_expect_success 'unpack big object in stream (core.fsyncmethod=batch)' '\n \tprepare_dest 1m &&\n \tGIT_TRACE2_EVENT=\"$(pwd)/trace2.txt\" \\\n+\tGIT_TEST_FSYNC=true \\\n \t\tgit -C dest.git $BATCH_CONFIGURATION unpack-objects <pack-$PACK.pack &&\n-\tgrep fsync/hardware-flush trace2.txt &&\n+\tgrep fsync/ trace2.txt >wo.txt &&\n+\tsed -e \"s/.*value\\\":\\\"//\" -e \"s/\\\".*//\" <wo.txt >actual &&\n+\ttest_write_lines 6 1 >expect &&\n+\ttest_cmp expect actual &&\n \ttest_dir_is_empty dest.git/objects/pack &&\n \tgit -C dest.git cat-file --batch-check=\"%(objectname)\" <obj-list >current &&\n \tcmp obj-list current\n\nBut does this make any sense in the larger scheme of things?  I.e. the\ntrace2 logging isn't at all logging that we're actually doing with\nfsync, but what we intended to do based on the application logic, is\nthat intended & OK or not?\n"},{"id":"459191","messageId":"CAO0brD3fdjQNfQaUBJRAHxDc24K00zpBUa62zST0=cZ5uz3vGA@mail.gmail.com","threadId":"58155","inReplyTo":"220715.86bktqzdb8.gmgdl@evledraar.gmail.com","subject":"Re: ab/squelch-empty-fsync-traces & hx/unpack-streaming bug (was: What's cooking in git.git (Jul 2022, #04; Wed, 13))","fromName":"Han Xin","fromEmail":"chiyutianyi@gmail.com","sentAt":"2022-07-16T12:23:23Z","receivedAt":"2022-07-16T12:23:39Z","isPatch":false,"sender":{"key":"chiyutianyi@gmail.com","avatar":null},"body":"CC: Johannes Schindelin\n\nOn Fri, Jul 15, 2022 at 10:18 PM Ævar Arnfjörð Bjarmason\n<avarab@gmail.com> wrote:\n>\n> I hadn't had time to look at this until now. There's some interesting\n> behavior here.\n>\n> The code to check the hardware flush was added in aaf81223f48\n> (unpack-objects: use stream_loose_object() to unpack large objects,\n> 2022-06-11) (that series is now on master).\n>\n> But as my ab/squelch-empty-fsync-traces notes we always add this to the\n> event, so the:\n>\n>         grep fsync/hardware-flush trace2.txt &&\n>\n> Is equivalent to:\n>\n>         true &&\n>\n> I.e. it's not testing worthwhile at all. The reason you're seeing a\n> failure is deu to 412e4caee38 (tests: disable fsync everywhere,\n> 2021-10-29), i.e. our tests disable fsync(). What you have queued will\n> pass as:\n>\n>         GIT_TEST_FSYNC=true ./t5351-unpack-large-objects.sh\n>\n> But I think that would be meaningless, since we'll write out that on\n> FSYNC_HARDWARE_FLUSH whether we actually support \"bulk\" or not. AFAICT\n> the way to detect if we support \"bulk\" at all is to check for\n> fsync/writeout-only.\n>\n> *Except* that we we unconditionally increment the \"writeout only\"\n> counter, even if we don't actually support that \"bulk\" mode. We're just\n> doing a regular fsync().\n>\n\nAgree with you.\n\nIn fact, since stream_loose_object() only works with objects of type\n*blob*, the rest objects of *commit* and *tree* will still use\nwrite_loose_object(), so \"grep fsync/hardware-flush trace2.txt\" did\nnot check for the changes in stream_loose_object() at all.\n\nI haven't found any reference cases in the existing tests.\n\nPerhaps, we need more efficient \"fsync\" test cases?\n\nThanks.\n-Han Xin\n"},{"id":"459220","messageId":"CABPp-BFzehrH19zRSbLBB42nEs50_UCcfV2B22ZJFYtPCX=Zsw@mail.gmail.com","threadId":"58155","inReplyTo":"xmqq7d4g8onl.fsf@gitster.g","subject":"en/merge-restore-to-pristine (Was: Re: What's cooking in git.git (Jul 2022, #04; Wed, 13))","fromName":"Elijah Newren","fromEmail":"newren@gmail.com","sentAt":"2022-07-17T03:46:09Z","receivedAt":"2022-07-17T03:47:11Z","isPatch":false,"sender":{"key":"newren@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5455730?v=4"},"body":"Hi ZheNing,\n\nOn Wed, Jul 13, 2022 at 7:36 PM Junio C Hamano <gitster@pobox.com> wrote:\n>\n> * en/merge-restore-to-pristine (2022-06-21) 6 commits\n>  - merge: do not exit restore_state() prematurely\n>  - merge: ensure we can actually restore pre-merge state\n>  - merge: make restore_state() restore staged state too\n>  - merge: fix save_state() to work when there are racy-dirty files\n>  - merge: remove unused variable\n>  - t6424: make sure a failed merge preserves local changes\n>\n>  When \"git merge\" finds that it cannot perform a merge, it should\n>  restore the working tree to the state before the command was\n>  initiated, but in some corner cases it didn't.\n>\n>  Needs review.\n>  source: <pull.1231.v2.git.1655621424.gitgitgadget@gmail.com>\n\nLooks like other reviewers aren't stepping forward (this has been in\n\"Needs review\" for the last 6 \"What's cooking\" reports), which may\nsuggest others aren't as interested in this fix.  Since this was for\nan issue you reported, and which you even volunteered to help\nshepherd[1], perhaps you could step forward as a reviewer even if\nyou're not that familiar with the code?  Some things to look at and\nreport on:\n\n  * Does it fix the issue?  (You reported that v1 did, again at [1],\nbut perhaps you could retest for v2?)\n  * Does it appear I've addressed the issues Junio brought up about v1?\n  * Even if you can't analyze the changes deeply, you can respond to\nmy patches with a \"walk through\" where you try to explain what the\ndifferent hunks of the patches are doing in your own words.  Even\nfolks unfamiliar with code areas can sometimes catch simple mistakes\nthat way, and even if you catch nothing, it means there's another\nperson more familiar with that code area.\n\nI've had a little more time lately, so if you or someone does catch\nsomething in the review, I can try to update the series.\n\n[1] https://lore.kernel.org/git/CAOLTT8RpGGioOyaMw5tkeWXmHpOaBW9UH8JghUvBRQ50ZcDdYQ@mail.gmail.com/\n"},{"id":"459229","messageId":"CAOLTT8R3y4m_ZSuT198_7X16mCu+BtbuMi5756PKs+fAzxpd8A@mail.gmail.com","threadId":"58155","inReplyTo":"CABPp-BFzehrH19zRSbLBB42nEs50_UCcfV2B22ZJFYtPCX=Zsw@mail.gmail.com","subject":"Re: en/merge-restore-to-pristine (Was: Re: What's cooking in git.git (Jul 2022, #04; Wed, 13))","fromName":"ZheNing Hu","fromEmail":"adlternative@gmail.com","sentAt":"2022-07-17T16:58:08Z","receivedAt":"2022-07-17T16:58:23Z","isPatch":false,"sender":{"key":"adlternative@gmail.com","avatar":"https://avatars.githubusercontent.com/u/58138461?v=4"},"body":"Elijah Newren <newren@gmail.com> 于2022年7月17日周日 11:46写道：\n>\n> Hi ZheNing,\n>\n> On Wed, Jul 13, 2022 at 7:36 PM Junio C Hamano <gitster@pobox.com> wrote:\n> >\n> > * en/merge-restore-to-pristine (2022-06-21) 6 commits\n> >  - merge: do not exit restore_state() prematurely\n> >  - merge: ensure we can actually restore pre-merge state\n> >  - merge: make restore_state() restore staged state too\n> >  - merge: fix save_state() to work when there are racy-dirty files\n> >  - merge: remove unused variable\n> >  - t6424: make sure a failed merge preserves local changes\n> >\n> >  When \"git merge\" finds that it cannot perform a merge, it should\n> >  restore the working tree to the state before the command was\n> >  initiated, but in some corner cases it didn't.\n> >\n> >  Needs review.\n> >  source: <pull.1231.v2.git.1655621424.gitgitgadget@gmail.com>\n>\n> Looks like other reviewers aren't stepping forward (this has been in\n> \"Needs review\" for the last 6 \"What's cooking\" reports), which may\n> suggest others aren't as interested in this fix.  Since this was for\n> an issue you reported, and which you even volunteered to help\n> shepherd[1], perhaps you could step forward as a reviewer even if\n> you're not that familiar with the code?  Some things to look at and\n> report on:\n>\n\nSorry that I missed patch update before. And this is my first time\nas a reviewer. I may leak some experience :)\n\n>   * Does it fix the issue?  (You reported that v1 did, again at [1],\n> but perhaps you could retest for v2?)\n\nYes, I have checked the test, it is good enough to solve my problem.\n\n>   * Does it appear I've addressed the issues Junio brought up about v1?\n\nYes, Junio said restore_state() will not be called correctly because\nwe are using\nonly one merge strategy, which has been solved by the patch: \"merge:\nensure we can\nactually restore pre-merge state\".\n\n>   * Even if you can't analyze the changes deeply, you can respond to\n> my patches with a \"walk through\" where you try to explain what the\n> different hunks of the patches are doing in your own words.  Even\n> folks unfamiliar with code areas can sometimes catch simple mistakes\n> that way, and even if you catch nothing, it means there's another\n> person more familiar with that code area.\n>\n\nI have checked(walk through) them carefully. Look at them :)\n\n> I've had a little more time lately, so if you or someone does catch\n> something in the review, I can try to update the series.\n>\n> [1] https://lore.kernel.org/git/CAOLTT8RpGGioOyaMw5tkeWXmHpOaBW9UH8JghUvBRQ50ZcDdYQ@mail.gmail.com/\n\nThanks\n\nZheNing Hu\n"}]}