{"thread":{"id":"56253","subject":"What's cooking in git.git (Aug 2021, #04; Tue, 10)","startedAt":"2021-08-11T01:12:44Z","lastAt":"2021-08-13T08:11:08Z","messageCount":14,"participants":["Junio C Hamano","brian m. carlson","Fabian Stelzer","Carlo Marcelo Arenas Belón","Phillip Wood","Atharva Raykar","Patrick Steinhardt","David Turner","ZheNing Hu"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"432431","messageId":"xmqqh7fwbx86.fsf@gitster.g","threadId":"56253","inReplyTo":null,"subject":"What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-08-11T01:12:41Z","receivedAt":"2021-08-11T01:12:44Z","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',\nwhich means nothing more than that I have found them of interest for\nsome reason (like \"it may have hard-to-resolve conflicts with\nanother topic already in flight\" or \"this may turn out to be\nuseful\").  Do not read too much into a topic being in (or not in)\n'seen'.  The ones marked with '.' do not appear in any of the\nintegration branches, but I am still holding onto them.\n\nGit 2.33-rc2 will be tagged tomorrow, with a few build and\nregression fixes (not in 'master' yet as of this writing).\n\nCopies of the source code to Git live in many repositories, and the\nfollowing is a list of the ones I push into or their mirrors.  Some\nrepositories have only a subset of branches.\n\nWith maint, master, next, seen, todo:\n\n\tgit://git.kernel.org/pub/scm/git/git.git/\n\tgit://repo.or.cz/alt-git.git/\n\thttps://kernel.googlesource.com/pub/scm/git/git/\n\thttps://github.com/git/git/\n\thttps://gitlab.com/git-vcs/git/\n\nWith all the integration branches and topics broken out:\n\n\thttps://github.com/gitster/git/\n\nEven though the preformatted documentation in HTML and man format\nare not sources, they are published in these repositories for\nconvenience (replace \"htmldocs\" with \"manpages\" for the manual\npages):\n\n\tgit://git.kernel.org/pub/scm/git/git-htmldocs.git/\n\thttps://github.com/gitster/git-htmldocs.git/\n\nRelease tarballs are available at:\n\n\thttps://www.kernel.org/pub/software/scm/git/\n\n--------------------------------------------------\n[New Topics]\n\n* cb/builtin-merge-format-string-fix (2021-08-09) 1 commit\n - builtin/merge: avoid -Wformat-extra-args from ancient Xcode\n\n Code clean-up.\n\n Will merge to 'next'.\n\n\n* cb/many-alternate-optim-fixup (2021-08-09) 2 commits\n  (merged to 'next' on 2021-08-09 at 3572bef349)\n + object-store: avoid extra ';' from KHASH_INIT\n + oidtree: avoid nested struct oidtree_node\n (this branch is used by cb/ci-build-pedantic.)\n\n Build fix.\n\n Will merge to 'master'.\n\n\n* ka/want-ref-in-namespace (2021-08-09) 3 commits\n - docs: clarify the interaction of transfer.hideRefs and namespaces\n - upload-pack.c: treat want-ref relative to namespace\n - t5730: introduce fetch command helper\n\n \"git upload-pack\" which runs on the other side of \"git fetch\"\n forgot to take the ref namespaces into account when handling\n want-ref requests.\n\n\n* np/blame-ignore-revs-file-may-be-optional (2021-08-09) 1 commit\n - blame: add config `blame.ignoreRevsFileIsOptional`\n\n When the file named by blame.ignoreRevsFile configuration variable\n does not exist, it causes \"git blame\" to die.  Sometimes, it is\n useful if the files named by configuration variables can be made\n optional (it would allow ~/.gitconfig to give a filename, and make\n it effective only in repositories that have a file with that name).\n\n This uses an extra variable that marks that the variable is\n optional.  Yet another alternative is being discussed to define\n syntax for \"optional\" filename values, so that the same mechanism\n can be used for not just blame.ignoreRevsFile but other filenames.\n\n Queued just as a reminder of the theme.\n\n\n* cb/ci-build-pedantic (2021-08-09) 1 commit\n - ci: run a pedantic build as part of the GitHub workflow\n (this branch uses cb/many-alternate-optim-fixup.)\n\n CI update.\n\n Will merge to 'next'.\n\n\n* jn/log-m-does-not-imply-p (2021-08-09) 1 commit\n  (merged to 'next' on 2021-08-09 at d937d09924)\n + Revert 'diff-merges: let \"-m\" imply \"-p\"'\n\n Earlier \"git log -m\" was changed to always produce patch output,\n which would break existing scripts, which has been reverted.\n\n Will merge to 'master'.\n\n\n* ds/sparse-index-ignored-files (2021-08-10) 9 commits\n - sparse-checkout: clear tracked sparse dirs\n - sparse-index: add SPARSE_INDEX_IGNORE_CONFIG flag\n - attr: be careful about sparse directories\n - sparse-checkout: create helper methods\n - unpack-trees: fix nested sparse-dir search\n - sparse-index: silently return when cache tree fails\n - sparse-index: silently return when not using cone-mode patterns\n - t7519: rewrite sparse index test\n - Merge branch 'ds/add-with-sparse-index' into ds/sparse-index-ignored-files\n (this branch uses ds/add-with-sparse-index.)\n\n In cone mode, the sparse-index codepath learned to remove ignored\n files (like build artifacts) outside the sparse cone, allowing the\n entire directory outside the sparse cone to be removed, which is\n especially useful when the sparse patterns change.\n\n\n* jc/userdiff-pattern-hint (2021-08-10) 1 commit\n - userdiff: comment on the builtin patterns\n\n Remind developers that the userdiff patterns should be kept simple\n and permissive, assuming that the contents they apply are always\n syntactically correct.\n\n\n* jk/apply-binary-hunk-parsing-fix (2021-08-10) 1 commit\n - apply: keep buffer/size pair in sync when parsing binary hunks\n\n \"git apply\" miscounted the bytes and failed to read to the end of\n binary hunks.\n\n Will merge to 'next'.\n\n\n* jk/range-diff-fixes (2021-08-10) 3 commits\n - range-diff: use ssize_t for parsed \"len\" in read_patches()\n - range-diff: handle unterminated lines in read_patches()\n - range-diff: drop useless \"offset\" variable from read_patches()\n\n \"git range-diff\" code clean-up.\n\n Will merge to 'next'.\n\n\n* js/advise-when-skipping-cherry-picked (2021-08-10) 2 commits\n - SQUASH???\n - sequencer: advise if skipping cherry-picked commit\n\n \"git rebase\" by default skips changes that are equivalent to\n commits that are already in the history the branch is rebased onto;\n give messages when this happens to let the users be aware of\n skipped commits, and also teach them how to tell \"rebase\" to keep\n duplicated changes.\n\n\n* jt/grep-wo-submodule-odb-as-alternate (2021-08-10) 7 commits\n - t7814: show lack of alternate ODB-adding\n - grep: add repository to OID grep sources\n - grep: allocate subrepos on heap\n - grep: read submodule entry with explicit repo\n - grep: typesafe versions of grep_source_init\n - grep: use submodule-ODB-as-alternate lazy-addition\n - submodule: lazily add submodule ODBs as alternates\n\n The code to make \"git grep\" recurse into submodules has been\n updated to migrate away from the \"add submodule's object store as\n an alternate object store\" mechanism (which is suboptimal).\n\n--------------------------------------------------\n[Stalled]\n\n* gh/gitweb-branch-sort (2021-06-10) 1 commit\n - gitweb: use HEAD as secondary sort key in git_get_heads_list()\n\n Tie-break branches that point at the same object in the list of\n branches on GitWeb to show the one pointed at by HEAD early.\n\n Waiting for reviews.\n\n\n* lh/systemd-timers (2021-07-02) 3 commits\n - maintenance: add support for systemd timers on Linux\n - maintenance: `git maintenance run` learned `--scheduler=<scheduler>`\n - cache.h: Introduce a generic \"xdg_config_home_for(…)\" function\n\n \"git maintenance\" scheduler learned to use systemd timers as a\n possible backend.\n\n Waiting for reviews.\n\n\n* fc/completion-updates (2021-06-07) 4 commits\n - completion: bash: add correct suffix in variables\n - completion: bash: fix for multiple dash commands\n - completion: bash: fix for suboptions with value\n - completion: bash: fix prefix detection in branch.*\n\n Command line completion updates.\n\n Expecting a reroll.\n cf. <60be6f7fa4435_db80d208f2@natae.notmuch>\n\n\n* es/superproject-aware-submodules (2021-06-16) 5 commits\n - SQUASH???\n - submodule: cache superproject gitdir during 'update'\n - submodule: cache superproject gitdir during absorbgitdirs\n - introduce submodule.superprojectGitDir cache\n - t7400-submodule-basic: modernize inspect() helper\n\n A configuration variable in a submodule points at the location of\n the superproject it is bound to (RFC).\n\n Waiting for reviews.\n\n\n* en/zdiff3 (2021-06-15) 2 commits\n - update documentation for new zdiff3 conflictStyle\n - xdiff: implement a zealous diff3, or \"zdiff3\"\n\n \"Zealous diff3\" style of merge conflict presentation has been added.\n\n Expecting a reroll.\n cf. <CABPp-BE7-E03+x38EK-=AE5mwwdST+d50hiiud2eY2Nsf3rM5g@mail.gmail.com>\n\n\n* ao/p4-avoid-decoding (2021-04-12) 2 commits\n - git-p4: do not decode data from perforce by default\n - git-p4: avoid decoding more data from perforce\n\n \"git p4\" in Python-2 days used to accept a lot more kinds of data\n from Perforce server as uninterrupted byte sequence, but after\n switching to Python-3, too many things are expected to be in UTF-8,\n which broke traditional use cases.\n\n Waiting for reviews.\n\n\n* tv/p4-fallback-encoding (2021-04-30) 1 commit\n - git-p4: git-p4.fallbackEncoding to specify non UTF-8 charset\n\n \"git p4\" learns the fallbackEncoding configuration variable to\n safely accept changeset descriptions that aren't written in UTF-8.\n\n Waiting for reviews.\n\n--------------------------------------------------\n[Cooking]\n\n* ps/fetch-pack-load-refs-optim (2021-08-04) 1 commit\n  (merged to 'next' on 2021-08-09 at 4744a01fd5)\n + fetch-pack: speed up loading of refs via commit graph\n\n Loading of ref tips to prepare for common ancestry negotiation in\n \"git fetch-pack\" has been optimized by taking advantage of the\n commit graph when available.\n\n Will cook in 'next'.\n\n\n* ps/connectivity-optim (2021-08-09) 5 commits\n - revision: avoid hitting packfiles when commits are in commit-graph\n - commit-graph: split out function to search commit position\n - revision: stop retrieving reference twice\n - connected: do not sort input revisions\n - revision: separate walk and unsorted flags\n\n The revision traversal API has been optimized by taking advanrage\n of the commit-graph, when available, to determine if a commit is\n reachable from any of the existing refs.\n\n Will merge to 'next'.\n\n\n* ar/submodule-add-more (2021-08-10) 10 commits\n - submodule--helper: rename compute_submodule_clone_url()\n - submodule--helper: remove resolve-relative-url subcommand\n - submodule--helper: remove add-config subcommand\n - submodule--helper: remove add-clone subcommand\n - submodule--helper: convert the bulk of cmd_add() to C\n - dir: libify and export helper functions from clone.c\n - submodule--helper: remove repeated code in sync_submodule()\n - submodule--helper: refactor resolve_relative_url() helper\n - submodule--helper: add options for compute_submodule_clone_url()\n - Merge branch 'ar/submodule-add-config' into ar/submodule-add\n (this branch uses ar/submodule-add-config.)\n\n More parts of \"git submoudle add\" has been rewritten in C.\n\n\n* cb/makefile-apple-clang (2021-08-06) 3 commits\n - build: catch clang that identifies itself as \"$VENDOR clang\"\n - build: clang version may not be followed by extra words\n - build: update detect-compiler for newer Xcode version\n\n Build update.\n\n\n* jk/refs-files-cleanup-cleanup (2021-08-06) 1 commit\n  (merged to 'next' on 2021-08-09 at 37b0b8c910)\n + refs: drop unused \"flags\" parameter to lock_ref_oid_basic()\n (this branch uses ab/refs-files-cleanup.)\n\n Code cleanup.\n\n Will cook in 'next'.\n\n\n* cb/reftable-fixup (2021-08-02) 3 commits\n - openbsd: allow reftable building with zlib 1.2.3\n - reftable: clarify zlib version dependency\n - fixup! Provide zlib's uncompress2 from compat/zlib-compat.c\n (this branch uses hn/reftable.)\n\n Fixes to another topic.\n\n Will discard after they are picked up by the target topic.\n\n\n* en/merge-strategy-docs (2021-08-05) 10 commits\n - Update error message and code comment\n - merge-strategies.txt: add coverage of the `ort` merge strategy\n - git-rebase.txt: correct out-of-date and misleading text about renames\n - merge-strategies.txt: fix simple capitalization error\n - merge-strategies.txt: avoid giving special preference to patience algorithm\n - merge-strategies.txt: do not imply using copy detection is desired\n - merge-strategies.txt: update wording for the resolve strategy\n - Documentation: edit awkward references to `git merge-recursive`\n - directory-rename-detection.txt: small updates due to merge-ort optimizations\n - git-rebase.txt: correct antiquated claims about --rebase-merges\n (this branch is used by en/ort-becomes-the-default.)\n\n Documentation updates.\n\n Will merge to 'next'.\n\n\n* en/ort-becomes-the-default (2021-08-05) 2 commits\n - Update docs for change of default merge backend\n - Change default merge backend from recursive to ort\n (this branch uses en/merge-strategy-docs.)\n\n Use `ort` instead of `recursive` as the default merge strategy.\n\n Will merge to 'next'.\n\n\n* js/log-protocol-version (2021-08-10) 1 commit\n - connect, protocol: log negotiated protocol version\n\n Debugging aid.\n\n Will merge to 'next'.\n\n\n* ow/clone-bare-origin (2021-08-03) 1 commit\n - clone: Allow combining --bare and --origin\n\n \"git clone\" did not like to take \"--bare\" and \"--origin=X\" at the\n same time; loosen the restriction.\n\n Under discussion.  This may require some follow-on work.\n cf. <20210802174944.53745-1-oystwa@gmail.com>\n\n\n* jc/bisect-sans-show-branch (2021-07-28) 2 commits\n  (merged to 'next' on 2021-08-02 at 89a8d9a47b)\n + bisect: simplify return code from bisect_checkout()\n + bisect: do not run show-branch just to show the current commit\n\n \"git bisect\" spawned \"git show-branch\" only to pretty-print the\n title of the commit after checking out the next version to be\n tested; this has been rewritten in C.\n\n Will cook in 'next'.\n\n\n* jc/trivial-threeway-binary-merge (2021-07-28) 1 commit\n - ll-merge: teach ll_binary_merge() a trivial three-way merge\n\n The built-in merge driver for binary files learned to resolve\n trivial three-way merges (e.g. apply change, which turns A into B,\n to content A) by itself, which would help \"git apply --3way\" used\n when there is no need to use \"--3way\".\n\n Will discard.\n Replace with a trivial-merge logic in apply.c::try_treeway() or\n apply.c::three_way_merge().\n\n\n* ab/http-drop-old-curl (2021-07-30) 5 commits\n  (merged to 'next' on 2021-08-02 at b382ac042f)\n + http: rename CURLOPT_FILE to CURLOPT_WRITEDATA\n + http: drop support for curl < 7.19.3 and < 7.17.0 (again)\n + http: drop support for curl < 7.19.4\n + http: drop support for curl < 7.16.0\n + http: drop support for curl < 7.11.1\n\n Support for ancient versions of cURL library has been dropped.\n\n Will cook in 'next'.\n\n\n* ab/lib-subtest (2021-08-05) 11 commits\n - test-lib tests: assert 1 exit code, not non-zero\n - test-lib tests: refactor common part of check_sub_test_lib_test*()\n - test-lib tests: avoid subshell for \"test_cmp\" for readability\n - test-lib tests: assert no copy/pasted mock test code\n - test-lib tests: get rid of copy/pasted mock test code\n - test-lib tests: don't provide a description for the sub-tests\n - test-lib tests: stop using a subshell in write_sub_test_lib_test()\n - test-lib tests: split up \"write and run\" into two functions\n - test-lib tests: move \"run_sub_test\" to a new lib-subtest.sh\n - Merge branch 'ps/t0000-output-directory-fix' into ab/lib-subtest\n - Merge branch 'jk/t0000-subtests-fix' into ab/lib-subtest\n\n Updates to the tests in t0000 to test the test framework.\n\n\n* ds/add-with-sparse-index (2021-07-29) 5 commits\n  (merged to 'next' on 2021-08-02 at ee3e1323bb)\n + add: remove ensure_full_index() with --renormalize\n + add: ignore outside the sparse-checkout in refresh()\n + pathspec: stop calling ensure_full_index\n + add: allow operating on a sparse-only index\n + t1092: test merge conflicts outside cone\n (this branch is used by ds/sparse-index-ignored-files.)\n\n \"git add\" can work better with the sparse index.\n\n Will cook in 'next'.\n\n\n* ab/only-single-progress-at-once (2021-07-23) 8 commits\n - progress.c: add & assert a \"global_progress\" variable\n - pack-bitmap-write.c: add a missing stop_progress()\n - progress.c: add temporary variable from progress struct\n - progress.c: stop eagerly fflush(stderr) when not a terminal\n - progress.c: call progress_interval() from progress_test_force_update()\n - progress.c: move signal handler functions lower\n - progress.c tests: test some invalid usage\n - progress.c tests: make start/stop verbs on stdin\n\n Further tweaks on progress API.\n\n\n* ab/progress-users-adjust-counters (2021-08-05) 3 commits\n - entry: show finer-grained counter in \"Filtering content\" progress line\n - midx: don't provide a total for QSORT() progress\n - commit-graph: fix bogus counter in \"Scanning merged commits\" progress line\n\n The code to show progress indicator in a few codepaths did not\n cover between 0-100%, which has been corrected.\n\n\n* ar/submodule-add-config (2021-08-10) 1 commit\n - submodule--helper: introduce add-config subcommand\n (this branch is used by ar/submodule-add-more.)\n\n Large part of \"git submodule add\" gets rewritten in C.\n\n\n* en/ort-perf-batch-15 (2021-08-03) 9 commits\n  (merged to 'next' on 2021-08-04 at 87fc290e71)\n + merge-ort: remove compile-time ability to turn off usage of memory pools\n + merge-ort: reuse path strings in pool_alloc_filespec\n + merge-ort: store filepairs and filespecs in our mem_pool\n + diffcore-rename, merge-ort: add wrapper functions for filepair alloc/dealloc\n + merge-ort: switch our strmaps over to using memory pools\n + merge-ort: set up a memory pool\n + merge-ort: add pool_alloc, pool_calloc, and pool_strndup wrappers\n + diffcore-rename: use a mem_pool for exact rename detection's hashmap\n + merge-ort: rename str{map,intmap,set}_func()\n\n Final batch for \"merge -sort\" optimization.\n\n Will cook in 'next'.\n\n\n* js/expand-runtime-prefix (2021-07-26) 6 commits\n  (merged to 'next' on 2021-08-04 at b95a81a004)\n + expand_user_path: allow in-flight topics to keep using the old name\n + interpolate_path(): allow specifying paths relative to the runtime prefix\n + Use a better name for the function interpolating paths\n + expand_user_path(): clarify the role of the `real_home` parameter\n + expand_user_path(): remove stale part of the comment\n + tests: exercise the RUNTIME_PREFIX feature\n\n Pathname expansion (like \"~username/\") learned a way to specify a\n location relative to Git installation (e.g. its $sharedir which is\n $(prefix)/share), with \"%(prefix)\".\n\n Will cook in 'next'.\n\n\n* zh/cherry-pick-help-is-only-for-sequencer (2021-08-03) 2 commits\n  (merged to 'next' on 2021-08-04 at 9ea14ed106)\n + cherry-pick: use better advice message\n + cherry-pick: fix bug when used with GIT_CHERRY_PICK_HELP\n\n \"git cherry-pick\" loses its state file when a stray\n GIT_CHERRY_PICK_HELP environment is present, which has been\n corrected.\n\n Will cook in 'next'.\n\n\n* dt/submodule-diff-fixes (2021-08-02) 3 commits\n - diff --submodule=diff: Don't print failure message twice\n - diff --submodule=diff: do not fail on ever-initialied deleted submodules\n - t4060: remove unused variable\n\n \"git diff --submodule=diff\" showed failure from run_command() when\n trying to run diff inside a submodule, when the user manually\n removes the submodule directory.\n\n Seems to break CI when merged to 'seen'\n cf. https://github.com/git/git/runs/3259477809?check_suite_focus=true#step:4:2618\n\n\n* fs/ssh-signing (2021-08-03) 9 commits\n - ssh signing: test that gpg fails for unkown keys\n - ssh signing: tests for logs, tags & push certs\n - ssh signing: duplicate t7510 tests for commits\n - ssh signing: verify signatures using ssh-keygen\n - ssh signing: provide a textual signing_key_id\n - ssh signing: retrieve a default key from ssh-agent\n - ssh signing: add ssh key format and signing code\n - ssh signing: add test prereqs\n - ssh signing: preliminary refactoring and clean-up\n\n Use ssh public crypto for object and push-cert signing.\n\n Comments?\n\n\n* hn/refs-test-cleanup (2021-08-02) 11 commits\n  (merged to 'next' on 2021-08-04 at 5651c32f4b)\n + t6001: avoid direct file system access\n + t6500: use \"ls -1\" to snapshot ref database state\n + t7064: use update-ref -d to remove upstream branch\n + t1410: mark test as REFFILES\n + t1405: mark test for 'git pack-refs' as REFFILES\n + t1405: use 'git reflog exists' to check reflog existence\n + t2402: use ref-store test helper to create broken symlink\n + t3320: use git-symbolic-ref rather than filesystem access\n + t6120: use git-update-ref rather than filesystem access\n + t1503: mark symlink test as REFFILES\n + t6050: use git-update-ref rather than filesystem access\n\n A handful of tests that assumed implementation details of files\n backend for refs have been cleaned up.\n\n Will cook in 'next'.\n\n\n* hn/reftable (2021-07-20) 26 commits\n - t7004: avoid direct filesystem access\n - t1404: annotate test cases with REFFILES\n - t1401,t2011: parameterize HEAD.lock for REFFILES\n - t1301: document what needs to be done for reftable\n - Add \"test-tool dump-reftable\" command.\n - git-prompt: prepare for reftable refs backend\n - refs: RFC: Reftable support for git-core\n - reftable: add dump utility\n - reftable: implement stack, a mutable database of reftable files.\n - reftable: implement refname validation\n - reftable: add merged table view\n - reftable: add a heap-based priority queue for reftable records\n - reftable: reftable file level tests\n - reftable: read reftable files\n - reftable: generic interface to tables\n - reftable: write reftable files\n - reftable: a generic binary tree implementation\n - reftable: reading/writing blocks\n - Provide zlib's uncompress2 from compat/zlib-compat.c\n - reftable: (de)serialization for the polymorphic record type.\n - reftable: add blocksource, an abstraction for random access reads\n - reftable: utility functions\n - reftable: add error related functionality\n - reftable: RFC: add LICENSE\n - init-db: set the_repository->hash_algo early on\n - hash.h: provide constants for the hash IDs\n (this branch is used by cb/reftable-fixup.)\n\n The \"reftable\" backend for the refs API.\n\n Seems to break CI jobs in 'seen'.\n cf. https://github.com/git/git/runs/3257622953?check_suite_focus=true#step:4:1685\n\n\n* ab/refs-files-cleanup (2021-08-02) 11 commits\n  (merged to 'next' on 2021-08-04 at 8ca0ef1b6e)\n + refs/files: remove unused \"errno != ENOTDIR\" condition\n + refs/files: remove unused \"errno == EISDIR\" code\n + refs/files: remove unused \"oid\" in lock_ref_oid_basic()\n + reflog expire: don't lock reflogs using previously seen OID\n + refs/files: add a comment about refs_reflog_exists() call\n + refs: make repo_dwim_log() accept a NULL oid\n + refs/debug: re-indent argument list for \"prepare\"\n + refs/files: remove unused \"skip\" in lock_raw_ref() too\n + refs/files: remove unused \"extras/skip\" in lock_ref_oid_basic()\n + refs/files: remove unused REF_DELETING in lock_ref_oid_basic()\n + refs/packet: add missing BUG() invocations to reflog callbacks\n (this branch is used by hn/refs-errno-cleanup and jk/refs-files-cleanup-cleanup.)\n\n Will cook in 'next'.\n\n\n* en/pull-conflicting-options (2021-07-22) 8 commits\n - pull: fix handling of multiple heads\n - pull: update docs & code for option compatibility with rebasing\n - pull: abort by default when fast-forwarding is not possible\n - pull: make --rebase and --no-rebase override pull.ff=only\n - pull: since --ff-only overrides, handle it first\n - pull: abort if --ff-only is given and fast-forwarding is impossible\n - t7601: add tests of interactions with multiple merge heads and config\n - t7601: test interaction of merge/rebase/fast-forward flags and options\n\n \"git pull\" had various corner cases that were not well thought out\n around its --rebase backend, e.g. \"git pull --ff-only\" did not stop\n but went ahead and rebased when the history on other side is not a\n descendant of our history.  The series tries to fix them up.\n\n Will merge to 'next'.\n\n\n* bc/inactive-submodules (2021-07-02) 1 commit\n - submodule: mark submodules with update=none as inactive\n\n Usability update for inactive submodules.\n\n Comments?\n cf. <fc5ec100-1d42-4199-236e-7a99c9218f38@gmail.com>\n cf. <bf1893ee-6973-d8b2-659e-bb239a0a9ae2@gmail.com>\n\n\n* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit\n - fetch: fix segfault on --set-upstream while on a detached HEAD\n\n \"git fetch --set-upstream\" while on detached HEAD segfaulted\n instead of noticing that such an operation did not make sense.\n\n Expecting a reroll.\n cf. <xmqqsg0ri5mq.fsf@gitster.g>\n\n\n* ab/bundle-doc (2021-08-02) 4 commits\n  (merged to 'next' on 2021-08-04 at b3b3b0fa98)\n + bundle doc: replace \"basis\" with \"prerequsite(s)\"\n + bundle doc: elaborate on rev<->ref restriction\n + bundle doc: elaborate on object prerequisites\n + bundle doc: rewrite the \"DESCRIPTION\" section\n\n Doc update.\n\n Will cook in 'next'.\n\n\n* ab/pack-stdin-packs-fix (2021-07-09) 2 commits\n  (merged to 'next' on 2021-08-04 at f464b74a6f)\n + pack-objects: fix segfault in --stdin-packs option\n + pack-objects tests: cover blindspots in stdin handling\n\n Input validation of \"git pack-objects --stdin-packs\" has been\n corrected.\n\n Will cook in 'next'.\n\n\n* jt/push-negotiation-fixes (2021-07-15) 3 commits\n  (merged to 'next' on 2021-08-09 at ea7da8239c)\n + fetch: die on invalid --negotiation-tip hash\n + send-pack: fix push nego. when remote has refs\n + send-pack: fix push.negotiate with remote helper\n\n Bugfix for common ancestor negotiation recently introduced in \"git\n push\" codepath.\n\n Will cook in 'next'.\n\n\n* ab/make-tags-cleanup (2021-08-05) 5 commits\n - Makefile: normalize clobbering & xargs for tags targets\n - Makefile: remove \"cscope.out\", not \"cscope*\" in cscope.out target\n - Makefile: don't use \"FORCE\" for tags targets\n - Makefile: add QUIET_GEN to \"cscope\" target\n - Makefile: move \".PHONY: cscope\" near its target\n\n Build clean-up for \"make tags\" and friends.\n\n Expecting a reroll.\n 4/5 may want a minor tweak to the log and the patch text but otherwise looks good.\n\n\n* tb/multi-pack-bitmaps (2021-07-27) 25 commits\n - p5326: perf tests for MIDX bitmaps\n - p5310: extract full and partial bitmap tests\n - midx: respect 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP'\n - t7700: update to work with MIDX bitmap test knob\n - t5319: don't write MIDX bitmaps in t5319\n - t5310: disable GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP\n - t0410: disable GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP\n - t5326: test multi-pack bitmap behavior\n - t/helper/test-read-midx.c: add --checksum mode\n - t5310: move some tests to lib-bitmap.sh\n - pack-bitmap: write multi-pack bitmaps\n - pack-bitmap: read multi-pack bitmaps\n - pack-bitmap.c: avoid redundant calls to try_partial_reuse\n - pack-bitmap.c: introduce 'bitmap_is_preferred_refname()'\n - pack-bitmap.c: introduce 'nth_bitmap_object_oid()'\n - pack-bitmap.c: introduce 'bitmap_num_objects()'\n - midx: avoid opening multiple MIDXs when writing\n - midx: close linked MIDXs, avoid leaking memory\n - midx: infer preferred pack when not given one\n - midx: reject empty `--preferred-pack`'s\n - midx: clear auxiliary .rev after replacing the MIDX\n - Documentation: describe MIDX-based bitmaps\n - pack-bitmap-write.c: free existing bitmaps\n - pack-bitmap-write.c: gracefully fail to write non-closed bitmaps\n - pack-bitmap.c: harden 'test_bitmap_walk()' to check type bitmaps\n\n The reachability bitmap file used to be generated only for a single\n pack, but now we've learned to generate bitmaps for history that\n span across multiple packfiles.\n\n Comments?\n\n\n* ab/config-based-hooks-base (2021-08-03) 36 commits\n - hooks: fix a TOCTOU in \"did we run a hook?\" heuristic\n - receive-pack: convert receive hooks to hook.h\n - post-update: use hook.h library\n - receive-pack: convert 'update' hook to hook.h\n - hooks: allow callers to capture output\n - run-command: allow capturing of collated output\n - reference-transaction: use hook.h to run hooks\n - hook tests: use a modern style for \"pre-push\" tests\n - hook tests: test for exact \"pre-push\" hook input\n - transport: convert pre-push hook to hook.h\n - hook: convert 'post-rewrite' hook in sequencer.c to hook.h\n - hook: provide stdin by string_list or callback\n - run-command: add stdin callback for parallelization\n - am: convert 'post-rewrite' hook to hook.h\n - hook: support passing stdin to hooks\n - run-command: allow stdin for run_processes_parallel\n - run-command: remove old run_hook_{le,ve}() hook API\n - receive-pack: convert push-to-checkout hook to hook.h\n - read-cache: convert post-index-change to use hook.h\n - commit: convert {pre-commit,prepare-commit-msg} hook to hook.h\n - git-p4: use 'git hook' to run hooks\n - send-email: use 'git hook run' for 'sendemail-validate'\n - git hook run: add an --ignore-missing flag\n - merge: convert post-merge to use hook.h\n - hooks: convert 'post-checkout' hook to hook library\n - am: convert applypatch to use hook.h\n - rebase: convert pre-rebase to use hook.h\n - gc: use hook library for pre-auto-gc hook\n - hook: add 'run' subcommand\n - hook-list.h: add a generated list of hooks, like config-list.h\n - hook.c users: use \"hook_exists()\" insted of \"find_hook()\"\n - hook.c: add a hook_exists() wrapper and use it in bugreport.c\n - hook.[ch]: move find_hook() to this new library\n - Makefile: remove an out-of-date comment\n - Makefile: stop hardcoding {command,config}-list.h\n - Makefile: mark \"check\" target as .PHONY\n\n Restructuring of (a subset of) Emily's config-based-hooks series,\n to demonstrate that a series can be presented as a more logical and\n focused progression.\n\n Waiting for reviews.\n\n\n* ab/serve-cleanup (2021-08-05) 10 commits\n - upload-pack: document and rename --advertise-refs\n - serve.[ch]: remove \"serve_options\", split up --advertise-refs code\n - {upload,receive}-pack tests: add --advertise-refs tests\n - serve.c: move version line to advertise_capabilities()\n - serve: move transfer.advertiseSID check into session_id_advertise()\n - serve.[ch]: don't pass \"struct strvec *keys\" to commands\n - serve: use designated initializers\n - transport: use designated initializers\n - transport: rename \"fetch\" in transport_vtable to \"fetch_refs\"\n - serve: mark has_capability() as static\n\n Code clean-up around \"git serve\".\n\n Expecting a reroll.\n\n\n* pw/diff-color-moved-fix (2021-08-05) 13 commits\n  (merged to 'next' on 2021-08-05 at 7b5e312aac)\n + diff: drop unused options parameter from cmp_in_block_with_wsd()\n  (merged to 'next' on 2021-08-04 at 4de4a451e0)\n + diff --color-moved: intern strings\n + diff: use designated initializers for emitted_diff_symbol\n + diff --color-moved-ws=allow-indentation-change: improve hash lookups\n + diff --color-moved: stop clearing potential moved blocks\n + diff --color-moved: shrink potential moved blocks as we go\n + diff --color-moved: unify moved block growth functions\n + diff --color-moved: call comparison function directly\n + diff --color-moved-ws=allow-indentation-change: simplify and optimize\n + diff: simplify allow-indentation-change delta calculation\n + diff --color-moved: avoid false short line matches and bad zerba coloring\n + diff --color-moved=zebra: fix alternate coloring\n + diff --color-moved: add perf tests\n\n Long-overdue correctness and performance update to \"diff\n --color-moved\" feature.\n\n Will cook in 'next'.\n\n\n* hn/refs-errno-cleanup (2021-08-02) 7 commits\n  (merged to 'next' on 2021-08-04 at 7fe3c31e7f)\n + refs: make errno output explicit for refs_resolve_ref_unsafe\n + refs: explicitly return failure_errno from parse_loose_ref_contents\n + refs: add failure_errno to refs_read_raw_ref() signature\n + refs: make errno output explicit for read_raw_ref_fn\n + refs/files-backend: stop setting errno from lock_ref_oid_basic\n + refs: remove EINVAL errno output from specification of read_raw_ref_fn\n + refs file backend: move raceproof_create_file() here\n (this branch uses ab/refs-files-cleanup.)\n\n Futz with the way 'errno' is relied on in the refs API to carry the\n failure modes up the callchain.\n\n Will cook in 'next'.\n\n\n* ab/test-tool-cache-cleanup (2021-06-08) 4 commits\n - read-cache perf: add a perf test for refresh_index()\n - test-tool: migrate read-cache-again to parse_options()\n - test-tool: migrate read-cache-perf to parse_options()\n - test-tool: split up test-tool read-cache\n\n Test code shuffling.\n\n Expecting a reroll.\n\n\n* ab/pack-objects-stdin (2021-07-09) 5 commits\n - pack-objects.c: make use of REV_INFO_STDIN_LINE_PROCESS\n - pack-objects.c: do stdin parsing via revision.c's API\n - revision.[ch]: add a \"handle_stdin_line\" API\n - revision.h: refactor \"disable_stdin\" and \"read_from_stdin\"\n - upload-pack: run is_repository_shallow() before setup_revisions()\n\n Introduce handle_stdin_line callback to revision API and uses it.\n\n Waiting for reviews.\n\n\n* zh/ref-filter-raw-data (2021-07-26) 6 commits\n  (merged to 'next' on 2021-08-04 at 4c4529d8d0)\n + ref-filter: add %(rest) atom\n + ref-filter: use non-const ref_format in *_atom_parser()\n + ref-filter: --format=%(raw) support --perl\n + ref-filter: add %(raw) atom\n + ref-filter: add obj-type check in grab contents\n + Merge branch 'zh/cat-file-batch-fix' into zh/ref-filter-raw-data\n\n Prepare the \"ref-filter\" machinery that drives the \"--format\"\n option of \"git for-each-ref\" and its friends to be used in \"git\n cat-file --batch\".\n\n Will cook in 'next'.\n\n\n* jh/builtin-fsmonitor (2021-07-12) 35 commits\n - BANDAID: sparse fixes\n - t7527: test FS event reporing on MacOS WRT case and Unicode\n - fsmonitor: handle shortname for .git\n - t7527: test status with untracked-cache and fsmonitor--daemon\n - fsmonitor: force update index after large responses\n - fsmonitor: enhance existing comments\n - fsmonitor--daemon: use a cookie file to sync with file system\n - fsmonitor--daemon: periodically truncate list of modified files\n - t7527: create test for fsmonitor--daemon\n - t/perf/p7519: add fsmonitor--daemon test cases\n - t/perf: avoid copying builtin fsmonitor files into test repo\n - t/perf/p7519: speed up test using \"test-tool touch\"\n - t/helper/test-touch: add helper to touch a series of files\n - fsmonitor--daemon: implement handle_client callback\n - fsmonitor-fs-listen-macos: implement FSEvent listener on MacOS\n - fsmonitor-fs-listen-macos: add macos header files for FSEvent\n - fsmonitor-fs-listen-win32: implement FSMonitor backend on Windows\n - fsmonitor--daemon: create token-based changed path cache\n - fsmonitor--daemon: define token-ids\n - fsmonitor--daemon: add pathname classification\n - fsmonitor: do not try to operate on bare repos\n - fsmonitor--daemon: implement 'start' command\n - fsmonitor--daemon: implement 'run' command\n - fsmonitor-fs-listen-macos: stub in backend for MacOS\n - fsmonitor-fs-listen-win32: stub in backend for Windows\n - t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon\n - fsmonitor--daemon: implement 'stop' and 'status' commands\n - fsmonitor--daemon: add a built-in fsmonitor daemon\n - fsmonitor: use IPC to query the builtin FSMonitor daemon\n - fsmonitor: config settings are repository-specific\n - help: include fsmonitor--daemon feature flag in version info\n - fsmonitor-ipc: create client routines for git-fsmonitor--daemon\n - fsmonitor--daemon: update fsmonitor documentation\n - fsmonitor--daemon: man page\n - simple-ipc: preparations for supporting binary messages.\n\n An attempt to write and ship with a watchman equivalent tailored\n for our use.\n\n Expecting a reroll post 2.33 release.\n\n\n* es/trace2-log-parent-process-name (2021-07-22) 2 commits\n  (merged to 'next' on 2021-08-04 at 47e35c31b0)\n + tr2: log parent process name\n + tr2: make process info collection platform-generic\n\n trace2 logs learned to show parent process name to see in what\n context Git was invoked.\n\n Will cook in 'next'.\n\n\n* ab/fsck-unexpected-type (2021-07-12) 21 commits\n - fsck: report invalid object type-path combinations\n - fsck: report invalid types recorded in objects\n - object-store.h: move read_loose_object() below 'struct object_info'\n - fsck: don't hard die on invalid object types\n - object-file.c: return -2 on \"header too long\" in unpack_loose_header()\n - object-file.c: return -1, not \"status\" from unpack_loose_header()\n - object-file.c: guard against future bugs in loose_object_info()\n - object-file.c: stop dying in parse_loose_header()\n - object-file.c: split up ternary in parse_loose_header()\n - object-file.c: simplify unpack_loose_short_header()\n - object-file.c: add missing braces to loose_object_info()\n - object-file.c: make parse_loose_header_extended() public\n - object-file.c: don't set \"typep\" when returning non-zero\n - cache.h: move object functions to object-store.h\n - cat-file tests: test for current --allow-unknown-type behavior\n - cat-file tests: add corrupt loose object test\n - rev-list tests: test for behavior with invalid object types\n - cat-file tests: test that --allow-unknown-type isn't on by default\n - cat-file tests: test for missing object with -t and -s\n - fsck tests: add test for fsck-ing an unknown type\n - fsck tests: refactor one test to use a sub-repo\n\n \"git fsck\" has been taught to report mismatch between expected and\n actual types of an object better.\n\n Needs review.\n\n--------------------------------------------------\n[Discarded]\n\n* ab/test-columns (2021-08-05) 3 commits\n - test-lib.sh: use GIT_TEST_COLUMNS over COLUMNS\n - test-lib-functions.sh: add a test_with_columns function\n - test-lib-functions.sh: rename test_must_fail_acceptable()\n\n Shells that adjust COLUMNS (e.g. bash with checkwinsize shell\n option), affect and break tests on progress meters and anything\n that depends on term_columns().  An test-only environment variable\n has been introduced as a workaround.\n\n Seems too involved for a last-minute fix.\n cf. <20210804212825.GH23408@szeder.dev>\n"},{"id":"432432","messageId":"YRMpEV/uuHrxcOug@camp.crustytoothpaste.net","threadId":"56253","inReplyTo":"xmqqh7fwbx86.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2021-08-11T01:34:09Z","receivedAt":"2021-08-11T01:34:45Z","isPatch":false,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On 2021-08-11 at 01:12:41, Junio C Hamano wrote:\n> * bc/inactive-submodules (2021-07-02) 1 commit\n>  - submodule: mark submodules with update=none as inactive\n> \n>  Usability update for inactive submodules.\n> \n>  Comments?\n>  cf. <fc5ec100-1d42-4199-236e-7a99c9218f38@gmail.com>\n>  cf. <bf1893ee-6973-d8b2-659e-bb239a0a9ae2@gmail.com>\n\nI haven't had time to look at this recently, so I'd suggest dropping it\nfor now, and hopefully I'll get back to it in the future.\n-- \nbrian m. carlson (he/him or they/them)\nToronto, Ontario, CA\n"},{"id":"432453","messageId":"503f6c75-5b1b-c6aa-3d21-1abef887a689@gigacodes.de","threadId":"56253","inReplyTo":"xmqqh7fwbx86.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Fabian Stelzer","fromEmail":"fs@gigacodes.de","sentAt":"2021-08-11T07:22:36Z","receivedAt":"2021-08-11T07:22:43Z","isPatch":false,"sender":{"key":"fs@gigacodes.de","avatar":"https://avatars.githubusercontent.com/u/564858?v=4"},"body":"On 11.08.21 03:12, Junio C Hamano wrote:>\n> * fs/ssh-signing (2021-08-03) 9 commits\n>  - ssh signing: test that gpg fails for unkown keys\n>  - ssh signing: tests for logs, tags & push certs\n>  - ssh signing: duplicate t7510 tests for commits\n>  - ssh signing: verify signatures using ssh-keygen\n>  - ssh signing: provide a textual signing_key_id\n>  - ssh signing: retrieve a default key from ssh-agent\n>  - ssh signing: add ssh key format and signing code\n>  - ssh signing: add test prereqs\n>  - ssh signing: preliminary refactoring and clean-up\n> \n>  Use ssh public crypto for object and push-cert signing.\n> \n>  Comments?\n> \n\nAnything i can do to help this along?\nI don't think there are any more open review issues but i'm of course\nopen to new ones ;)\nI do have a minimal change (initially i used git_config_string instead\nof _pathname for the allowedSigners and revocation files) that i could\nsubmit in a new version to bump it up but not really anything else.\n\nI do have a few follow up todos that i'd like to start working on. But\ni'm not sure if thats a good idea when the base functionality might\nstill change.\n\nMy roadmap for this feature:\n - check/fix usage of gpg-interface:check_signature. some call sites\ncurrently ignore its exit code and unconditionally dereference signature\ncheck results :/ - This could probably be done right now.\n\n - rename \"gpg.\" options (sign. ?) and make documentation clear that\nsigning is no longer limited to gpg. (backwards compatible of course)\n\n - rename gpg-interface (signing.h|c ?) and at least some of its api\ncode to be less gpg specific to make developers aware that this code not\nonly deals with gpg anymore\n\n - implement ssh's new verify-time so we can verify commits in the past.\nWith git i only need to trust the key up to the commit timestamp. Unless\nits is revoked specifically i don't mind if it expires and i don't want\nto invalidate a developers commits just because they change their key.\nThe old commit should still verify. This is not really possible with gpg\nunless people renew/extend and then distribute their existing keys.\n\n - Add a config option to fix the ssh signing principal to the\ncommitters email address instead of looking it up by the signatures\npublic key (this is required for the next feature)\n\n - Allow \"Trust on first use\". Corporate environments and forges can\neasily roll their own allowedSigners file based on the user data they\nalready have (and even distribute this file to their users). Other\nworkflows (email based patches) make this file much harder to maintain.\nIf we use the committers email as principal to look up their key we can\nadd it automatically, or ask the user similar to a first ssh connection\nif we should add it to our local allowedSigners file if not found. Only\na change of keys is a problematic operation and needs to be monitored /\nverified manually (not sure how we would handle this yet). Something\nlike this was already suggested here: https://lwn.net/Articles/803619/\n\n - add patch signing & verification to format-patch & am. Since ssh\nsignatures are rather small we could probably append them to the patches\nsomehow. This needs some planning since it's probably easy to break\npeoples scripts/workflows if not careful.\n"},{"id":"432465","messageId":"YROElmCJQGaR8Lsx@carlos-mbp.lan","threadId":"56253","inReplyTo":"xmqqh7fwbx86.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Carlo Marcelo Arenas Belón","fromEmail":"carenas@gmail.com","sentAt":"2021-08-11T08:04:38Z","receivedAt":"2021-08-11T08:08:23Z","isPatch":false,"sender":{"key":"carenas@gmail.com","avatar":"https://avatars.githubusercontent.com/u/76036?v=4"},"body":"On Tue, Aug 10, 2021 at 06:12:41PM -0700, Junio C Hamano wrote:\n> \n> * cb/ci-build-pedantic (2021-08-09) 1 commit\n>  - ci: run a pedantic build as part of the GitHub workflow\n>  (this branch uses cb/many-alternate-optim-fixup.)\n> \n>  CI update.\n> \n>  Will merge to 'next'.\n\nthis version has the bug you reported[1] and provided a fix for\nbecause the base image doesn't include git, and while the bug is\nharmless it is still silly enough that should be worth fixing\nbefore going to next IMHO..\n\nI was preparing a version 2 reroll that included the tests, as\nyou suggested, which I was also planning to make a little more\nuseful by including other test dependencies missing from other jobs.\n\non that line, I also forgot to build with PCRE, which was the reason\nwhy it was included as a dependency, and that has been corrected as\nwell; alternatively it could be removed and make the job slightly faster.\n\nbut if you want to have a less buggy and even faster job[2] in next\nmeanwhile could use instead the \"1.5\" reroll below which will be also\neasier to base on for v2; alternatively it could wait, but was also\ntempted to include UBsan in this job, and so it would need additional\nfixes before it can be promoted in that case\n\nCarlo\n\n[1] https://lore.kernel.org/git/xmqqeeb1dumx.fsf@gitster.g/\n[2] https://github.com/carenas/git/runs/3298216810\n--- >8 ---\nSubject: [PATCH v1.5] ci: run a pedantic build as part of the GitHub workflow\n\nsimilar to the recently added sparse task, it is nice to know as early\nas possible.\n\nadd a dockerized build using fedora (that usually has the latest gcc)\nto be ahead of the curve and avoid older ISO C issues at the same time.\n\nSigned-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\nChanges in v1.5\n* really build with PCRE\n* install a smaller perl and git (used by the CI scripts)\n\n .github/workflows/main.yml        |  2 ++\n ci/install-docker-dependencies.sh |  6 ++++++\n ci/run-build-and-tests.sh         | 11 ++++++++---\n 3 files changed, 16 insertions(+), 3 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 73856bafc9..b93561978d 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -324,6 +324,8 @@ jobs:\n           image: alpine\n         - jobname: Linux32\n           image: daald/ubuntu32:xenial\n+        - jobname: pedantic\n+          image: fedora\n     env:\n       jobname: ${{matrix.vector.jobname}}\n     runs-on: ubuntu-latest\ndiff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh\nindex 26a6689766..eba4b212e4 100755\n--- a/ci/install-docker-dependencies.sh\n+++ b/ci/install-docker-dependencies.sh\n@@ -15,4 +15,10 @@ linux-musl)\n \tapk add --update build-base curl-dev openssl-dev expat-dev gettext \\\n \t\tpcre2-dev python3 musl-libintl perl-utils ncurses >/dev/null\n \t;;\n+pedantic)\n+\tdnf -yq update >/dev/null &&\n+\tdnf -yq install gcc make findutils diffutils perl-interpreter \\\n+\t\tgettext git zlib-devel expat-devel openssl-devel \\\n+\t\tcurl-devel pcre2-devel >/dev/null\n+\t;;\n esac\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex 3ce81ffee9..724f9b54c8 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -10,6 +10,12 @@ windows*) cmd //c mklink //j t\\\\.prove \"$(cygpath -aw \"$cache_dir/.prove\")\";;\n *) ln -s \"$cache_dir/.prove\" t/.prove;;\n esac\n \n+if test \"$jobname\" = \"pedantic\"\n+then\n+\texport DEVOPTS=pedantic\n+\texport USE_LIBPCRE=1\n+fi\n+\n make\n case \"$jobname\" in\n linux-gcc)\n@@ -35,10 +41,9 @@ linux-clang)\n \texport GIT_TEST_DEFAULT_HASH=sha256\n \tmake test\n \t;;\n-linux-gcc-4.8)\n+linux-gcc-4.8|pedantic)\n \t# Don't run the tests; we only care about whether Git can be\n-\t# built with GCC 4.8, as it errors out on some undesired (C99)\n-\t# constructs that newer compilers seem to quietly accept.\n+\t# built with GCC 4.8 or with pedantic\n \t;;\n *)\n \tmake test\n-- \n2.33.0.rc1.379.g2890ef5eb6\n\n"},{"id":"432470","messageId":"7fc86441-add0-b08f-17ae-9e0dc5b010b0@gmail.com","threadId":"56253","inReplyTo":"xmqqh7fwbx86.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Phillip Wood","fromEmail":"phillip.wood123@gmail.com","sentAt":"2021-08-11T09:51:02Z","receivedAt":"2021-08-11T09:51:07Z","isPatch":false,"sender":{"key":"phillip.wood@dunelm.org.uk","avatar":null},"body":"On 11/08/2021 02:12, Junio C Hamano wrote:\n> Here are the topics that have been cooking in my tree.  Commits\n> prefixed with '+' are in 'next' (being in 'next' is a sign that a\n> topic is stable enough to be used and are candidate to be in a\n> future release).  Commits prefixed with '-' are only in 'seen',\n> which means nothing more than that I have found them of interest for\n> some reason (like \"it may have hard-to-resolve conflicts with\n> another topic already in flight\" or \"this may turn out to be\n> useful\").  Do not read too much into a topic being in (or not in)\n> 'seen'.  The ones marked with '.' do not appear in any of the\n> integration branches, but I am still holding onto them.\n> \n> Git 2.33-rc2 will be tagged tomorrow, with a few build and\n> regression fixes (not in 'master' yet as of this writing).\n> \n> * ab/progress-users-adjust-counters (2021-08-05) 3 commits\n>   - entry: show finer-grained counter in \"Filtering content\" progress line\n>   - midx: don't provide a total for QSORT() progress\n>   - commit-graph: fix bogus counter in \"Scanning merged commits\" progress line\n> \n>   The code to show progress indicator in a few codepaths did not\n>   cover between 0-100%, which has been corrected.\n\nI think the midx patch wants to be dropped cf. \n<87v94jzoxj.fsf@evledraar.gmail.com>\n> \n> * zh/cherry-pick-help-is-only-for-sequencer (2021-08-03) 2 commits\n>    (merged to 'next' on 2021-08-04 at 9ea14ed106)\n>   + cherry-pick: use better advice message\n>   + cherry-pick: fix bug when used with GIT_CHERRY_PICK_HELP\n> \n>   \"git cherry-pick\" loses its state file when a stray\n>   GIT_CHERRY_PICK_HELP environment is present, which has been\n>   corrected.\n> \n>   Will cook in 'next'.\n\nSorry I missed this going into next, I thought the conclusion was to \ndrop these[1] in favor of[2]\n\n[1] \nhttps://lore.kernel.org/git/CAOLTT8S+x3aGRopiXwWcNYsyQtiGWChR+f8u+7nM5A0xpusR3A@mail.gmail.com/\n\n[2] \nhttps://lore.kernel.org/git/pull.1010.v3.git.1628142482640.gitgitgadget@gmail.com/\n\n\nBest Wishes\n\nPhillip\n"},{"id":"432475","messageId":"m2mtpo9s4e.fsf@gmail.com","threadId":"56253","inReplyTo":"xmqqh7fwbx86.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Atharva Raykar","fromEmail":"raykar.ath@gmail.com","sentAt":"2021-08-11T10:45:53Z","receivedAt":"2021-08-11T10:46:00Z","isPatch":false,"sender":{"key":"raykar.ath@gmail.com","avatar":"https://avatars.githubusercontent.com/u/24277692?v=4"},"body":"\nJunio C Hamano <gitster@pobox.com> writes:\n\n> Here are the topics that have been cooking in my tree.  Commits\n> prefixed with '+' are in 'next' (being in 'next' is a sign that a\n> topic is stable enough to be used and are candidate to be in a\n> future release).  Commits prefixed with '-' are only in 'seen',\n> which means nothing more than that I have found them of interest for\n> some reason (like \"it may have hard-to-resolve conflicts with\n> another topic already in flight\" or \"this may turn out to be\n> useful\").  Do not read too much into a topic being in (or not in)\n> 'seen'.  The ones marked with '.' do not appear in any of the\n> integration branches, but I am still holding onto them.\n>\n> [...]\n>\n> --------------------------------------------------\n> [New Topics]\n\nKaartic Sivaraam had sent a patch to fix a cosmetic bug introduced by my\nadd-clone conversion series which has already been merged to master:\n\nhttps://lore.kernel.org/git/20210805192803.679948-1-kaartic.sivaraam@gmail.com/\n\nI think it will be re-rolled soon. Just wanted to ensure this did not\nget lost among the other topics.\n"},{"id":"432478","messageId":"YRPAsJSfVbNmYh3v@ncase","threadId":"56253","inReplyTo":"xmqqh7fwbx86.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2021-08-11T12:21:04Z","receivedAt":"2021-08-11T12:21:16Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Tue, Aug 10, 2021 at 06:12:41PM -0700, Junio C Hamano wrote:\n[snip]\n> * ps/fetch-pack-load-refs-optim (2021-08-04) 1 commit\n>   (merged to 'next' on 2021-08-09 at 4744a01fd5)\n>  + fetch-pack: speed up loading of refs via commit graph\n> \n>  Loading of ref tips to prepare for common ancestry negotiation in\n>  \"git fetch-pack\" has been optimized by taking advantage of the\n>  commit graph when available.\n> \n>  Will cook in 'next'.\n> \n> \n> * ps/connectivity-optim (2021-08-09) 5 commits\n>  - revision: avoid hitting packfiles when commits are in commit-graph\n>  - commit-graph: split out function to search commit position\n>  - revision: stop retrieving reference twice\n>  - connected: do not sort input revisions\n>  - revision: separate walk and unsorted flags\n> \n>  The revision traversal API has been optimized by taking advanrage\n\nThese descriptions end up in the release notes, right? If so:\n\n    s/advanrage/advantage/\n\n>  of the commit-graph, when available, to determine if a commit is\n>  reachable from any of the existing refs.\n> \n>  Will merge to 'next'.\n\nThanks for both!\n\nPatrick\n"},{"id":"432491","messageId":"xmqqr1f09cyk.fsf@gitster.g","threadId":"56253","inReplyTo":"YROElmCJQGaR8Lsx@carlos-mbp.lan","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-08-11T16:13:23Z","receivedAt":"2021-08-11T16:13:29Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Carlo Marcelo Arenas Belón <carenas@gmail.com> writes:\n\n> On Tue, Aug 10, 2021 at 06:12:41PM -0700, Junio C Hamano wrote:\n>> \n>> * cb/ci-build-pedantic (2021-08-09) 1 commit\n>>  - ci: run a pedantic build as part of the GitHub workflow\n>>  (this branch uses cb/many-alternate-optim-fixup.)\n>> \n>>  CI update.\n>> \n>>  Will merge to 'next'.\n>\n> this version has the bug you reported[1] and provided a fix for\n> because the base image doesn't include git, and while the bug is\n> harmless it is still silly enough that should be worth fixing\n> before going to next IMHO..\n\nWill mark it as \"expecting a reroll\".  I do not think we are in a\nhurry for this step, even though, as I said, we would probably want\nto have the two other changes in the upcoming release.\n\n> I was preparing a version 2 reroll that included the tests, as\n> you suggested, which I was also planning to make a little more\n> useful by including other test dependencies missing from other jobs.\n>\n> on that line, I also forgot to build with PCRE, which was the reason\n> why it was included as a dependency, and that has been corrected as\n> well; alternatively it could be removed and make the job slightly faster.\n\nSounds good.  We are not in a hurry for anything that may go into\n'next' at this stage.  A version that you think will help us start\nthe cycle after this one well would be desirable.\n\nThanks.\n"},{"id":"432492","messageId":"xmqqlf589cor.fsf@gitster.g","threadId":"56253","inReplyTo":"7fc86441-add0-b08f-17ae-9e0dc5b010b0@gmail.com","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-08-11T16:19:16Z","receivedAt":"2021-08-11T16:19:19Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Phillip Wood <phillip.wood123@gmail.com> writes:\n\n>> * ab/progress-users-adjust-counters (2021-08-05) 3 commits\n>>   - entry: show finer-grained counter in \"Filtering content\" progress line\n>>   - midx: don't provide a total for QSORT() progress\n>>   - commit-graph: fix bogus counter in \"Scanning merged commits\" progress line\n>>   The code to show progress indicator in a few codepaths did not\n>>   cover between 0-100%, which has been corrected.\n>\n> I think the midx patch wants to be dropped\n> cf. <87v94jzoxj.fsf@evledraar.gmail.com>\n\nThanks.  I was not expecting it to advance as-is; will make a\ncomment as such.\n\n\n>> * zh/cherry-pick-help-is-only-for-sequencer (2021-08-03) 2 commits\n>>    (merged to 'next' on 2021-08-04 at 9ea14ed106)\n>>   + cherry-pick: use better advice message\n>>   + cherry-pick: fix bug when used with GIT_CHERRY_PICK_HELP\n>>   \"git cherry-pick\" loses its state file when a stray\n>>   GIT_CHERRY_PICK_HELP environment is present, which has been\n>>   corrected.\n>>   Will cook in 'next'.\n>\n> Sorry I missed this going into next, I thought the conclusion was to\n> drop these[1] in favor of[2]\n\nThanks again.  Let's make sure the \"better advice message\" will be\nthe approach we'll take in the next cycle.\n"},{"id":"432493","messageId":"xmqqh7fw9bio.fsf@gitster.g","threadId":"56253","inReplyTo":"YRPAsJSfVbNmYh3v@ncase","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-08-11T16:44:31Z","receivedAt":"2021-08-11T16:44:37Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n>>  The revision traversal API has been optimized by taking advanrage\n>\n> These descriptions end up in the release notes, right? If so:\n>\n>     s/advanrage/advantage/\n\nThanks.\n"},{"id":"432498","messageId":"xmqq1r6zanyy.fsf@gitster.g","threadId":"56253","inReplyTo":"m2mtpo9s4e.fsf@gmail.com","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-08-11T17:30:13Z","receivedAt":"2021-08-11T17:30:17Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Atharva Raykar <raykar.ath@gmail.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> Here are the topics that have been cooking in my tree.  Commits\n>> prefixed with '+' are in 'next' (being in 'next' is a sign that a\n>> topic is stable enough to be used and are candidate to be in a\n>> future release).  Commits prefixed with '-' are only in 'seen',\n>> which means nothing more than that I have found them of interest for\n>> some reason (like \"it may have hard-to-resolve conflicts with\n>> another topic already in flight\" or \"this may turn out to be\n>> useful\").  Do not read too much into a topic being in (or not in)\n>> 'seen'.  The ones marked with '.' do not appear in any of the\n>> integration branches, but I am still holding onto them.\n>>\n>> [...]\n>>\n>> --------------------------------------------------\n>> [New Topics]\n>\n> Kaartic Sivaraam had sent a patch to fix a cosmetic bug introduced by my\n> add-clone conversion series which has already been merged to master:\n>\n> https://lore.kernel.org/git/20210805192803.679948-1-kaartic.sivaraam@gmail.com/\n>\n> I think it will be re-rolled soon. Just wanted to ensure this did not\n> get lost among the other topics.\n\nThanks.  Will (try to) keep an eye on it.\n"},{"id":"432502","messageId":"0C7D8DD1-C26A-4E04-BAAA-A63BF1017142@novalis.org","threadId":"56253","inReplyTo":"xmqqh7fwbx86.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"David Turner","fromEmail":"novalis@novalis.org","sentAt":"2021-08-11T17:49:08Z","receivedAt":"2021-08-11T18:07:49Z","isPatch":false,"sender":{"key":"novalis@novalis.org","avatar":"https://avatars.githubusercontent.com/u/77003?v=4"},"body":"\n\nOn August 10, 2021 9:12:41 PM EDT, Junio C Hamano <gitster@pobox.com> wrote:\n>Here are the topics that have been cooking in my tree.  \n>...\n>* dt/submodule-diff-fixes (2021-08-02) 3 commits\n> - diff --submodule=diff: Don't print failure message twice\n> - diff --submodule=diff: do not fail on ever-initialied deleted submodules\n> - t4060: remove unused variable\n>\n> \"git diff --submodule=diff\" showed failure from run_command() when\n> trying to run diff inside a submodule, when the user manually\n> removes the submodule directory.\n>\n> Seems to break CI when merged to 'seen'\n> cf. https://github.com/git/git/runs/3259477809?check_suite_focus=true#step:4:2618\n\nThat link says \"Merge branch 'fs/ssh-signing' into seen\" -- that's not my branch.\n-- \nSent from my Android device with K-9 Mail. Please excuse my brevity.\n"},{"id":"432504","messageId":"xmqqk0kr958b.fsf@gitster.g","threadId":"56253","inReplyTo":"0C7D8DD1-C26A-4E04-BAAA-A63BF1017142@novalis.org","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-08-11T19:00:20Z","receivedAt":"2021-08-11T19:00:26Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Turner <novalis@novalis.org> writes:\n\n> On August 10, 2021 9:12:41 PM EDT, Junio C Hamano <gitster@pobox.com> wrote:\n>>Here are the topics that have been cooking in my tree.  \n>>...\n>>* dt/submodule-diff-fixes (2021-08-02) 3 commits\n>> - diff --submodule=diff: Don't print failure message twice\n>> - diff --submodule=diff: do not fail on ever-initialied deleted submodules\n>> - t4060: remove unused variable\n>>\n>> \"git diff --submodule=diff\" showed failure from run_command() when\n>> trying to run diff inside a submodule, when the user manually\n>> removes the submodule directory.\n>>\n>> Seems to break CI when merged to 'seen'\n>> cf. https://github.com/git/git/runs/3259477809?check_suite_focus=true#step:4:2618\n>\n> That link says \"Merge branch 'fs/ssh-signing' into seen\" -- that's not my branch.\n\nThat one was for 913a4aa7e46 which had not just fs/ssh-signing but also\ndt/submodule-diff-fixes; near its tip there are:\n\n913a4aa7e4 Merge branch 'fs/ssh-signing' into seen\nc9787deb45 Merge branch 'ab/only-single-progress-at-once' into seen\na3a4793406 Merge branch 'ab/lib-subtest' into seen\ncb170c8941 Merge branch 'jh/builtin-fsmonitor' into seen\n4eaca15257 Merge branch 'cf/fetch-set-upstream-while-detached' into seen\nfc20552335 Merge branch 'tb/multi-pack-bitmaps' into seen\nf6758f313b Merge branch 'dt/submodule-diff-fixes' into seen\nc29c5aa324 Merge branch 'ab/make-tags-cleanup' into seen\nca277e7504 Merge branch 'ab/fsck-unexpected-type' into seen\na2c57f0aca Merge branch 'ab/config-based-hooks-base' into seen\nf586246edb Merge branch 'ab/serve-cleanup' into seen\nf55b1792d9 Merge branch 'es/superproject-aware-submodules' into seen\n"},{"id":"432632","messageId":"CAOLTT8RL_MTqZnW+tPbh=t-3TFbBSYc1XtrqQp=vcWW-xO_MuQ@mail.gmail.com","threadId":"56253","inReplyTo":"xmqqlf589cor.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2021, #04; Tue, 10)","fromName":"ZheNing Hu","fromEmail":"adlternative@gmail.com","sentAt":"2021-08-13T08:10:55Z","receivedAt":"2021-08-13T08:11:08Z","isPatch":false,"sender":{"key":"adlternative@gmail.com","avatar":"https://avatars.githubusercontent.com/u/58138461?v=4"},"body":"Junio C Hamano <gitster@pobox.com> 于2021年8月12日周四 上午12:19写道：\n>\n> Phillip Wood <phillip.wood123@gmail.com> writes:\n>\n>\n> Thanks again.  Let's make sure the \"better advice message\" will be\n> the approach we'll take in the next cycle.\n\nThank you both.\nPerhaps as Phillip said, this optimization can also be applied to git revert.\n\n--\nZheNing Hu\n"}]}