From a06ef406ad8ba7f9e2f0c5ed8b4443426ce54dd5 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 11 Oct 2021 12:55:01 -0700 Subject: [PATCH] What's cooking (2021/10 #03) --- whats-cooking.txt | 919 +++++++++++++++++++--------------------------- 1 file changed, 373 insertions(+), 546 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 5e948b4db5..152ed6e35b 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Oct 2021, #02; Wed, 6) -X-master-at: 106298f7f9cca4158a980de149ef217751e1f943 -X-next-at: 6e70778dc91e2139466c15ff15a02a22a2ada2d1 +Subject: What's cooking in git.git (Oct 2021, #03; Mon, 11) +X-master-at: 2a97289ad8b103625d3a1a12f66c27f50df822ce +X-next-at: b88fcb3f61432d526395a9937acaea0c67ee1aaf -What's cooking in git.git (Oct 2021, #02; Wed, 6) +What's cooking in git.git (Oct 2021, #03; Mon, 11) -------------------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -18,7 +18,8 @@ useful"). Do not read too much into a topic being in (or not in) 'seen'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -The eleventh batch is in. +The eleventh and twelfth batches of topics are in the 'master' +branch, and quite a many topics started cooking in 'next'. Copies of the source code to Git live in many repositories, and the following is a list of the ones I push into or their mirrors. Some @@ -51,161 +52,294 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* ab/repo-settings-cleanup (2021-09-22) 5 commits - (merged to 'next' on 2021-09-28 at 43d70c31e1) - + repository.h: don't use a mix of int and bitfields - + repo-settings.c: simplify the setup - + read-cache & fetch-negotiator: check "enum" values in switch() - + environment.c: remove test-specific "ignore_untracked..." variable - + wrapper.c: add x{un,}setenv(), and use xsetenv() in environment.c +* ab/designated-initializers (2021-09-27) 5 commits + (merged to 'next' on 2021-10-03 at 179f652de6) + + cbtree.h: define cb_init() in terms of CBTREE_INIT + + *.h: move some *_INIT to designated initializers + + *.h _INIT macros: don't specify fields equal to 0 + + *.[ch] *_INIT macros: use { 0 } for a "zero out" idiom + + submodule-config.h: remove unused SUBMODULE_INIT macro + (this branch is used by ab/designated-initializers-more.) - Code cleanup. + Code clean-up. -* ab/retire-decl-of-missing-unused-funcs (2021-10-01) 4 commits - (merged to 'next' on 2021-10-03 at a49287eaa9) - + config.h: remove unused git_config_get_untracked_cache() declaration - + log-tree.h: remove unused function declarations - + grep.h: remove unused grep_threads_ok() declaration - + builtin.h: remove cmd_tar_tree() declaration +* ab/http-pinned-public-key-mismatch (2021-09-27) 1 commit + (merged to 'next' on 2021-10-03 at cd67328eed) + + http: check CURLE_SSL_PINNEDPUBKEYNOTMATCH when emitting errors - Remove external declaration of functions that no longer exist. + HTTPS error handling updates. -* ab/retire-refs-unused-funcs (2021-09-28) 5 commits - (merged to 'next' on 2021-10-03 at f91e74fa7d) - + refs/ref-cache.[ch]: remove "incomplete" from create_dir_entry() - + refs/ref-cache.c: remove "mkdir" parameter from find_containing_dir() - + refs/ref-cache.[ch]: remove unused add_ref_entry() - + refs/ref-cache.[ch]: remove unused remove_entry_from_dir() - + refs.[ch]: remove unused ref_storage_backend_exists() +* ab/retire-git-config-key-is-valid (2021-09-28) 1 commit + (merged to 'next' on 2021-10-03 at fc7a0a55d1) + + config.c: remove unused git_config_key_is_valid() Code cleanup. -* ab/retire-string-list-init (2021-09-28) 1 commit - (merged to 'next' on 2021-10-03 at 4834949cc3) - + string-list.[ch]: remove string_list_init() compatibility function +* ab/sanitize-leak-ci (2021-09-23) 2 commits + (merged to 'next' on 2021-10-03 at dcd62a3fc6) + + tests: add a test mode for SANITIZE=leak, run it in CI + + Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS + (this branch is used by ab/mark-leak-free-tests, ab/mark-leak-free-tests-more and ab/unpack-trees-leakfix.) - Code cleanup. + CI learns to run the leak sanitizer builds. -* ew/midx-doc-update (2021-09-24) 1 commit - (merged to 'next' on 2021-09-28 at f2cbe598eb) - + doc/technical: update note about core.multiPackIndex +* da/difftool (2021-09-30) 6 commits + (merged to 'next' on 2021-10-03 at 3ba0335e4e) + + difftool: add a missing space to the run_dir_diff() comments + + difftool: remove an unnecessary call to strbuf_release() + + difftool: refactor dir-diff to write files using helper functions + + difftool: create a tmpdir path without repeated slashes + + Merge branch 'da/difftool-dir-diff-symlink-fix' into da/difftool + + Merge branch 'ab/retire-option-argument' into da/difftool - Doc tweak. + Code clean-up in "git difftool". -* gc/doc-first-contribution-reroll (2021-09-22) 1 commit - (merged to 'next' on 2021-09-29 at b7dea55eae) - + MyFirstContribution: Document --range-diff option when writing v2 +* jk/ref-paranoia (2021-09-27) 16 commits + (merged to 'next' on 2021-10-03 at 8c2cb6a3a6) + + refs: drop "broken" flag from for_each_fullref_in() + + ref-filter: drop broken-ref code entirely + + ref-filter: stop setting FILTER_REFS_INCLUDE_BROKEN + + repack, prune: drop GIT_REF_PARANOIA settings + + refs: turn on GIT_REF_PARANOIA by default + + refs: omit dangling symrefs when using GIT_REF_PARANOIA + + refs: add DO_FOR_EACH_OMIT_DANGLING_SYMREFS flag + + refs-internal.h: reorganize DO_FOR_EACH_* flag documentation + + refs-internal.h: move DO_FOR_EACH_* flags next to each other + + t5312: be more assertive about command failure + + t5312: test non-destructive repack + + t5312: create bogus ref as necessary + + t5312: drop "verbose" helper + + t5600: provide detached HEAD for corruption failures + + t5516: don't use HEAD ref for invalid ref-deletion tests + + t7900: clean up some more broken refs + (this branch is used by jt/no-abuse-alternate-odb-for-submodules.) - Doc update. + The ref iteration code used to optionally allow dangling refs to be + shown, which has been tightened up. -* jk/grep-haystack-is-read-only (2021-09-22) 5 commits - (merged to 'next' on 2021-09-28 at 1660a6be89) - + grep: store grep_source buffer as const - + grep: mark "haystack" buffers as const - + grep: stop modifying buffer in grep_source_1() - + grep: stop modifying buffer in show_line() - + grep: stop modifying buffer in strip_timestamp - (this branch is used by hm/paint-hits-in-log-grep.) +* js/win-lazyload-buildfix (2021-09-28) 3 commits + (merged to 'next' on 2021-10-03 at 26802e5d73) + + Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better + + lazyload.h: use an even more generic function pointer than FARPROC + + lazyload.h: fix warnings about mismatching function pointer types - Code clean-up in the "grep" machinery. + Compilation fix. -* jt/add-submodule-odb-clean-up (2021-09-09) 3 commits - (merged to 'next' on 2021-09-28 at 4d843448be) - + revision: remove "submodule" from opt struct - + repository: support unabsorbed in repo_submodule_init - + submodule: remove unnecessary unabsorbed fallback - (this branch is used by jt/no-abuse-alternate-odb-for-submodules.) +* mr/bisect-in-c-4 (2021-10-01) 1 commit + (merged to 'next' on 2021-10-06 at c13c14238d) + + bisect--helper: add space between colon and following sentence - More code paths that use the hack to add submodule's object - database to the set of alternate object store have been cleaned up. + Message fix. -* lh/systemd-timers (2021-09-27) 1 commit - (merged to 'next' on 2021-10-03 at 81834609ea) - + maintenance: fix test t7900-maintenance.sh +* rs/p3400-lose-tac (2021-10-03) 1 commit + (merged to 'next' on 2021-10-06 at 688dc7137c) + + p3400: stop using tac(1) - Testfix. + Test portability update. -* os/status-docfix (2021-09-28) 1 commit - (merged to 'next' on 2021-10-03 at a13019916a) - + doc: fix capitalization in "git status --porcelain=v2" description +* sg/test-split-index-fix (2021-09-07) 7 commits + (merged to 'next' on 2021-09-29 at 661ae75778) + + read-cache: fix GIT_TEST_SPLIT_INDEX + + tests: disable GIT_TEST_SPLIT_INDEX for sparse index tests + + read-cache: look for shared index files next to the index, too + + t1600-index: disable GIT_TEST_SPLIT_INDEX + + t1600-index: don't run git commands upstream of a pipe + + t1600-index: remove unnecessary redirection + + Merge branch 'ds/sparse-index-ignored-files' into sg/test-split-index-fix + + Test updates. - Docfix. +* tb/aggregate-ignore-leading-whitespaces (2021-10-04) 1 commit + (merged to 'next' on 2021-10-06 at 619a7db2d4) + + t/perf/aggregate.perl: tolerate leading spaces + + Test portability update. -* pw/rebase-of-a-tag-fix (2021-09-22) 10 commits - (merged to 'next' on 2021-09-28 at 980add2a67) - + rebase: dereference tags - + rebase: use lookup_commit_reference_by_name() - + rebase: use our standard error return value - + t3407: rework rebase --quit tests - + t3407: strengthen rebase --abort tests - + t3407: use test_path_is_missing - + t3407: rename a variable - + t3407: use test_cmp_rev - + t3407: use test_commit - + t3407: run tests in $TEST_DIRECTORY - (this branch is used by pw/fix-some-issues-in-reset-head.) - "git rebase " failed when aborted in the middle, as - it mistakenly tried to write the tag object instead of peeling it - to HEAD. +* tb/midx-write-propagate-namehash (2021-09-17) 7 commits + (merged to 'next' on 2021-09-29 at 24732fcfc8) + + t5326: test propagating hashcache values + + p5326: generate pack bitmaps before writing the MIDX bitmap + + p5326: don't set core.multiPackIndex unnecessarily + + p5326: create missing 'perf-tag' tag + + midx.c: respect 'pack.writeBitmapHashcache' when writing bitmaps + + pack-bitmap.c: propagate namehash values from existing bitmaps + + t/helper/test-bitmap.c: add 'dump-hashes' mode + "git multi-pack-index write --bitmap" learns to propagate the + hashcache from original bitmap to resulting bitmap. -* pw/rebase-reread-todo-after-editing (2021-09-24) 2 commits - (merged to 'next' on 2021-09-28 at c67d5e383e) - + rebase: fix todo-list rereading - + sequencer.c: factor out a function +-------------------------------------------------- +[New Topics] - The code to re-read the edited todo list in "git rebase -i" was - made more robust. +* ab/mark-leak-free-tests (2021-10-07) 11 commits + - leak tests: mark some misc tests as passing with SANITIZE=leak + - leak tests: mark various "generic" tests as passing with SANITIZE=leak + - leak tests: mark some read-tree tests as passing with SANITIZE=leak + - leak tests: mark some ls-files tests as passing with SANITIZE=leak + - leak tests: mark all checkout-index tests as passing with SANITIZE=leak + - leak tests: mark all trace2 tests as passing with SANITIZE=leak + - leak tests: mark all ls-tree tests as passing with SANITIZE=leak + - leak tests: mark t0000-init.sh as passing with SANITIZE=leak + - leak tests: run various "test-tool" tests in t00*.sh SANITIZE=leak + - leak tests: run various built-in tests in t00*.sh SANITIZE=leak + - Merge branch 'ab/sanitize-leak-ci' into ab/mark-leak-free-tests + + Bunch of tests are marked as "passing leak check". + Expecting a reroll. + cf. -* tb/commit-graph-usage-fix (2021-09-22) 2 commits - (merged to 'next' on 2021-09-28 at f021339c39) - + builtin/multi-pack-index.c: disable top-level --[no-]progress - + builtin/commit-graph.c: don't accept common --[no-]progress - Regression in "git commit-graph" command line parsing has been - corrected. +* ab/mark-leak-free-tests-more (2021-10-07) 8 commits + - merge: add missing strbuf_release() + - ls-files: add missing string_list_clear() + - ls-files: fix a trivial dir_clear() leak + - tests: fix test-oid-array leak, test in SANITIZE=leak + - tests: fix a memory leak in test-oidtree.c + - tests: fix a memory leak in test-parse-options.c + - tests: fix a memory leak in test-prio-queue.c + - Merge branch 'ab/sanitize-leak-ci' into ab/mark-leak-free-tests-more + Bunch of tests are marked as "passing leak check". -* ws/refer-to-forkpoint-config-in-rebase-doc (2021-09-20) 1 commit - (merged to 'next' on 2021-09-29 at 49181eaafb) - + Document `rebase.forkpoint` in rebase man page + Will merge to 'next'? - Doc update. --------------------------------------------------- -[New Topics] +* ab/unpack-trees-leakfix (2021-10-07) 2 commits + - unpack-trees: don't leak memory in verify_clean_subdirectory() + - Merge branch 'ab/sanitize-leak-ci' into ab/unpack-trees-leakfix -* gc/use-repo-settings (2021-10-04) 3 commits - - gc: perform incremental repack when implictly enabled - - fsck: verify multi-pack-index when implictly enabled - - fsck: verify commit graph when implicitly enabled + Leakfix. - It is wrong to read some settings directly from the config - subsystem, as things like feature.experimental can affect their - default values. + Will merge to 'next'? + + +* jk/cat-file-batch-all-wo-replace (2021-10-08) 5 commits + (merged to 'next' on 2021-10-11 at 9415f7c43a) + + cat-file: use packed_object_info() for --batch-all-objects + + cat-file: split ordered/unordered batch-all-objects callbacks + + cat-file: disable refs/replace with --batch-all-objects + + cat-file: mention --unordered along with --batch-all-objects + + t1006: clean up broken objects + + "git cat-file --batch" with the "--batch-all-objects" option is + supposed to iterate over all the objects found in a repository, but + it used to translate these object names using the replace mechanism, + which defeats the point of enumerating all objects in the repository. + This has been corrected. + + Will merge to 'master'. + + +* js/userdiff-cpp (2021-10-10) 6 commits + - userdiff-cpp: learn the C++ spaceship operator + - userdiff-cpp: permit the digit-separating single-quote in numbers + - userdiff-cpp: prepare test cases with yet unsupported features + - userdiff-cpp: tighten word regex + - t4034: add tests showing problematic cpp tokenizations + - t4034/cpp: actually test that operator tokens are not split + + Userdiff patterns for the C++ language has been updated. + + Will merge to 'next'? + + +* mp/absorb-submodule-git-dir-upon-deinit (2021-10-07) 1 commit + - submodule: absorb git dir instead of dying on deinit + + "git submodule deinit" for a submodule whose .git metadata + directory is embedded in its working tree refused to work, until + the submodule gets converted to use the "absorbed" form where the + metadata directory is stored in superproject, and a gitfile at the + top-level of the working tree of the submodule points at it. The + command is taught to convert such submodules to the absorbed form + as needed. Under review. - cf. <70aca052-716f-40ed-47c4-1882fdbd221e@gmail.com> + cf. -* jh/perf-remove-test-times (2021-10-04) 1 commit - - t/perf/perf-lib.sh: remove test_times.* at the end test_perf_() +* ns/remerge-diff (2021-10-08) 8 commits + - doc/diff-options: explain the new --remerge-diff option + - show, log: adapt Elijah Newren's changes to common tmp-objdir API + - show, log: provide a --remerge-diff capability + - merge-ort: capture and print ll-merge warnings in our preferred fashion + - ll-merge: add API for capturing warnings in a strbuf instead of stderr + - merge-ort: add ability to record conflict messages in a file + - merge-ort: mark a few more conflict messages as omittable + - Merge branch 'ns/tmp-objdir' into ns/remerge-diff + (this branch uses ns/tmp-objdir.) - Perf test fix. + A new presentation for two-parent merge "--remerge-diff" can be + used to show the difference between mechanical (and possibly + conflicted) merge results and the recorded resolution. + + On hold. + This is Elijah's remerge-diff rebased on ns/tmp-objdir to share the + "create objects temporarily, only to discard without committing + them to longer-term storage" infrastructure with another topic. - Will merge to 'next'. + +* ns/tmp-objdir (2021-10-04) 2 commits + - tmp-objdir: disable ref updates when replacing the primary odb + - tmp-objdir: new API for creating temporary writable databases + (this branch is used by ns/batched-fsync and ns/remerge-diff.) + + New interface into the tmp-objdir API to help in-core use of the + quarantine feature. + + Will merge to 'next'? + + +* pw/sparse-cache-tree-verify-fix (2021-10-07) 1 commit + (merged to 'next' on 2021-10-11 at 2f90c87850) + + sparse index: fix use-after-free bug in cache_tree_verify() + + Recent sparse-index addition, namely any use of index_name_pos(), + can expand sparse index entries and breaks any code that walks + cache-tree or existing index entries. One such instance of such a + breakage has been corrected. + + Will merge to 'master'. + + +* rs/make-verify-path-really-verify-again (2021-10-07) 3 commits + (merged to 'next' on 2021-10-11 at 6b4358876f) + + read-cache: let verify_path() reject trailing dir separators again + + read-cache: add verify_path_internal() + + t3905: show failure to ignore sub-repo + + Recent sparse-index work broke safety against attempts to add paths + with trailing slashes to the index, which has been corrected. + + Will merge to 'master'. + + +* vd/sparse-reset (2021-10-07) 8 commits + - unpack-trees: improve performance of next_cache_entry + - reset: make --mixed sparse-aware + - reset: make sparse-aware (except --mixed) + - reset: integrate with sparse index + - reset: expand test coverage for sparse checkouts + - update-index: add --force-full-index option for expand/collapse test + - reset: preserve skip-worktree bit in mixed reset + - reset: rename is_missing to !is_in_reset_tree + + Various operating modes of "git reset" have been made to work + better with the sparse index. + + Needs review. -------------------------------------------------- [Stalled] @@ -225,11 +359,65 @@ Release tarballs are available at: Kicked out of 'seen' to make room for es/superproject-aware-submodules which is among the topics this topic stomps on. + +* pw/diff-color-moved-fix (2021-08-05) 13 commits + - diff: drop unused options parameter from cmp_in_block_with_wsd() + - diff --color-moved: intern strings + - diff: use designated initializers for emitted_diff_symbol + - diff --color-moved-ws=allow-indentation-change: improve hash lookups + - diff --color-moved: stop clearing potential moved blocks + - diff --color-moved: shrink potential moved blocks as we go + - diff --color-moved: unify moved block growth functions + - diff --color-moved: call comparison function directly + - diff --color-moved-ws=allow-indentation-change: simplify and optimize + - diff: simplify allow-indentation-change delta calculation + - diff --color-moved: avoid false short line matches and bad zerba coloring + - diff --color-moved=zebra: fix alternate coloring + - diff --color-moved: add perf tests + + Originally merged to 'next' on 2021-08-05 + + Long-overdue correctness and performance update to "diff + --color-moved" feature. + + Expecting a reroll. + cf. <8bec1a6d-5052-50c3-4100-e6348289d581@gmail.com> + + +* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit + - fetch: fix segfault on --set-upstream while on a detached HEAD + + "git fetch --set-upstream" while on detached HEAD segfaulted + instead of noticing that such an operation did not make sense. + + Expecting a reroll. + cf. + -------------------------------------------------- [Cooking] -* pw/fix-some-issues-in-reset-head (2021-10-06) 13 commits - - sparse index: fix use-after-free bug in cache_tree_verify() +* gc/use-repo-settings (2021-10-04) 3 commits + - gc: perform incremental repack when implictly enabled + - fsck: verify multi-pack-index when implictly enabled + - fsck: verify commit graph when implicitly enabled + + It is wrong to read some settings directly from the config + subsystem, as things like feature.experimental can affect their + default values. + + Under review. + cf. <70aca052-716f-40ed-47c4-1882fdbd221e@gmail.com> + + +* jh/perf-remove-test-times (2021-10-04) 1 commit + - t/perf/perf-lib.sh: remove test_times.* at the end test_perf_() + + Perf test fix. + + Will merge to 'next'. + + +* pw/fix-some-issues-in-reset-head (2021-10-01) 12 commits - rebase -m: don't fork git checkout - rebase --apply: set ORIG_HEAD correctly - rebase --apply: fix reflog @@ -251,7 +439,9 @@ Release tarballs are available at: protect the fixes. -* rs/mergesort (2021-10-01) 9 commits +* rs/mergesort (2021-10-08) 10 commits + (merged to 'next' on 2021-10-08 at 2e83706316) + + test-mergesort: use repeatable random numbers (merged to 'next' on 2021-10-03 at 29a672574f) + mergesort: use ranks stack + p0071: test performance of llist_mergesort() @@ -269,44 +459,27 @@ Release tarballs are available at: Will merge to 'master'. -* bs/doc-blame-color-lines (2021-10-01) 2 commits - - blame: document --color-* options - - blame: describe default output format +* bs/doc-blame-color-lines (2021-10-08) 2 commits + (merged to 'next' on 2021-10-11 at a2cb7768b6) + + blame: document --color-* options + + blame: describe default output format The "--color-lines" and "--color-by-age" options of "git blame" have been missing, which are now documented. - Expecting a reroll. - cf. - - -* mr/bisect-in-c-4 (2021-10-01) 1 commit - (merged to 'next' on 2021-10-06 at c13c14238d) - + bisect--helper: add space between colon and following sentence - - Message fix. - Will merge to 'master'. * cm/save-restore-terminal (2021-10-06) 2 commits - - editor: save and reset terminal after calling EDITOR - - terminal: teach git how to save/restore its terminal settings + (merged to 'next' on 2021-10-11 at 962bb3e75b) + + editor: save and reset terminal after calling EDITOR + + terminal: teach git how to save/restore its terminal settings An editor session launched during a Git operation (e.g. during 'git commit') can leave the terminal in a funny state. The code path has updated to save the terminal state before, and restore it after, it spawns an editor. - Will merge to 'next'. - - -* rs/p3400-lose-tac (2021-10-03) 1 commit - (merged to 'next' on 2021-10-06 at 688dc7137c) - + p3400: stop using tac(1) - - Test portability update. - Will merge to 'master'. @@ -322,51 +495,27 @@ Release tarballs are available at: Will merge to 'master'. -* tb/aggregate-ignore-leading-whitespaces (2021-10-04) 1 commit - (merged to 'next' on 2021-10-06 at 619a7db2d4) - + t/perf/aggregate.perl: tolerate leading spaces - - Test portability update. - - Will merge to 'master'. - - -* ab/designated-initializers (2021-09-27) 5 commits - (merged to 'next' on 2021-10-03 at 179f652de6) - + cbtree.h: define cb_init() in terms of CBTREE_INIT - + *.h: move some *_INIT to designated initializers - + *.h _INIT macros: don't specify fields equal to 0 - + *.[ch] *_INIT macros: use { 0 } for a "zero out" idiom - + submodule-config.h: remove unused SUBMODULE_INIT macro - (this branch is used by ab/designated-initializers-more.) - - Code clean-up. - - Will merge to 'master'. - - * ab/designated-initializers-more (2021-10-01) 6 commits - - builtin/remote.c: add and use SHOW_INFO_INIT - - builtin/remote.c: add and use a REF_STATES_INIT - - urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT - - builtin/blame.c: refactor commit_info_init() to COMMIT_INFO_INIT macro - - daemon.c: refactor hostinfo_init() to HOSTINFO_INIT macro - - Merge branch 'ab/designated-initializers' into ab/designated-initializers-more - (this branch uses ab/designated-initializers.) + (merged to 'next' on 2021-10-11 at 9b9836c3df) + + builtin/remote.c: add and use SHOW_INFO_INIT + + builtin/remote.c: add and use a REF_STATES_INIT + + urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT + + builtin/blame.c: refactor commit_info_init() to COMMIT_INFO_INIT macro + + daemon.c: refactor hostinfo_init() to HOSTINFO_INIT macro + + Merge branch 'ab/designated-initializers' into ab/designated-initializers-more Code clean-up. - Will merge to 'next'. + Will merge to 'master'. -* ab/parse-options-cleanup (2021-10-01) 11 commits +* ab/parse-options-cleanup (2021-10-08) 10 commits - parse-options: change OPT_{SHORT,UNSET} to an enum - parse-options tests: test optname() output - parse-options.[ch]: make opt{bug,name}() "static" - commit-graph: stop using optname() - parse-options.c: move optname() earlier in the file - parse-options.h: make the "flags" in "struct option" an enum - - parse-options.c: use exhaustive "case" arms for "enum parse_opt_type" - parse-options.c: use exhaustive "case" arms for "enum parse_opt_result" - parse-options.[ch]: consistently use "enum parse_opt_result" - parse-options.[ch]: consistently use "enum parse_opt_flags" @@ -377,15 +526,6 @@ Release tarballs are available at: Will merge to 'next'? -* ab/retire-git-config-key-is-valid (2021-09-28) 1 commit - (merged to 'next' on 2021-10-03 at fc7a0a55d1) - + config.c: remove unused git_config_key_is_valid() - - Code cleanup. - - Will merge to 'master'. - - * mt/grep-submodule-textconv (2021-09-29) 1 commit (merged to 'next' on 2021-10-06 at 1950944b8c) + grep: demonstrate bug with textconv attributes and submodules @@ -454,52 +594,6 @@ Release tarballs are available at: Will merge to 'master'. -* ab/http-pinned-public-key-mismatch (2021-09-27) 1 commit - (merged to 'next' on 2021-10-03 at cd67328eed) - + http: check CURLE_SSL_PINNEDPUBKEYNOTMATCH when emitting errors - - HTTPS error handling updates. - - Will merge to 'master'. - - -* jk/ref-paranoia (2021-09-27) 16 commits - (merged to 'next' on 2021-10-03 at 8c2cb6a3a6) - + refs: drop "broken" flag from for_each_fullref_in() - + ref-filter: drop broken-ref code entirely - + ref-filter: stop setting FILTER_REFS_INCLUDE_BROKEN - + repack, prune: drop GIT_REF_PARANOIA settings - + refs: turn on GIT_REF_PARANOIA by default - + refs: omit dangling symrefs when using GIT_REF_PARANOIA - + refs: add DO_FOR_EACH_OMIT_DANGLING_SYMREFS flag - + refs-internal.h: reorganize DO_FOR_EACH_* flag documentation - + refs-internal.h: move DO_FOR_EACH_* flags next to each other - + t5312: be more assertive about command failure - + t5312: test non-destructive repack - + t5312: create bogus ref as necessary - + t5312: drop "verbose" helper - + t5600: provide detached HEAD for corruption failures - + t5516: don't use HEAD ref for invalid ref-deletion tests - + t7900: clean up some more broken refs - (this branch is used by jt/no-abuse-alternate-odb-for-submodules.) - - The ref iteration code used to optionally allow dangling refs to be - shown, which has been tightened up. - - Will merge to 'master'. - - -* js/win-lazyload-buildfix (2021-09-28) 3 commits - (merged to 'next' on 2021-10-03 at 26802e5d73) - + Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better - + lazyload.h: use an even more generic function pointer than FARPROC - + lazyload.h: fix warnings about mismatching function pointer types - - Compilation fix. - - Will merge to 'master'. - - * ab/make-sparse-for-real (2021-09-22) 1 commit (merged to 'next' on 2021-10-06 at 10e3c31d6a) + Makefile: make the "sparse" target non-.PHONY @@ -510,8 +604,7 @@ Release tarballs are available at: Will merge to 'master'. -* jt/no-abuse-alternate-odb-for-submodules (2021-10-01) 10 commits - - fixup! refs: plumb repo into ref stores +* jt/no-abuse-alternate-odb-for-submodules (2021-10-08) 9 commits - submodule: trace adding submodule ODB as alternate - submodule: pass repo to check_has_commit() - object-file: only register submodule ODB if needed @@ -521,28 +614,29 @@ Release tarballs are available at: - refs: plumb repo into ref stores - Merge branch 'jk/ref-paranoia' into jt/no-abuse-alternate-odb-for-submodules - Merge branch 'jt/add-submodule-odb-clean-up' into jt/no-abuse-alternate-odb-for-submodules - (this branch uses jk/ref-paranoia.) Follow through the work to use the repo interface to access submodule objects in-process, instead of abusing the alternate object database interface. - Expecting a reroll. + Will merge to 'next'? -* tp/send-email-completion (2021-09-22) 3 commits +* tp/send-email-completion (2021-10-07) 3 commits - send-email docs: add format-patch options - - send-email: move bash completions to core script + - send-email: programmatically generate bash completions - send-email: terminate --git-completion-helper with LF The command line complation for "git send-email" options have been tweaked to make it easier to keep it in sync with the command itself. - Stalled. - cf. + Expecting a reroll. + cf. <87fst7lkjx.fsf@evledraar.gmail.com> -* hm/paint-hits-in-log-grep (2021-09-29) 3 commits +* hm/paint-hits-in-log-grep (2021-10-08) 5 commits + - SQUASH??? + - grep: fix an edge case concerning ascii patterns and UTF-8 data - pretty: colorize pattern matches in commit messages - grep: refactor next_match() and match_one_pattern() for external use - Merge branch 'jk/grep-haystack-is-read-only' into hm/paint-hits-in-log-grep @@ -551,21 +645,7 @@ Release tarballs are available at: like "git grep string" does. Expecting a reroll. - cf. <87v92bju64.fsf@evledraar.gmail.com> - - -* da/difftool (2021-09-30) 6 commits - (merged to 'next' on 2021-10-03 at 3ba0335e4e) - + difftool: add a missing space to the run_dir_diff() comments - + difftool: remove an unnecessary call to strbuf_release() - + difftool: refactor dir-diff to write files using helper functions - + difftool: create a tmpdir path without repeated slashes - + Merge branch 'da/difftool-dir-diff-symlink-fix' into da/difftool - + Merge branch 'ab/retire-option-argument' into da/difftool - - Code clean-up in "git difftool". - - Will merge to 'master'. + cf. * en/removing-untracked-fixes (2021-09-27) 12 commits @@ -597,24 +677,21 @@ Release tarballs are available at: cf. -* ns/batched-fsync (2021-10-04) 9 commits - . core.fsyncobjectfiles: performance tests for add and stash - . core.fsyncobjectfiles: tests for batch mode - . unpack-objects: use the bulk-checkin infrastructure - . update-index: use the bulk-checkin infrastructure - . core.fsyncobjectfiles: add windows support for batch mode - . core.fsyncobjectfiles: batched disk flushes - . bulk-checkin: rename 'state' variable and separate 'plugged' boolean - . tmp-objdir: disable ref updates when replacing the primary odb - . tmp-objdir: new API for creating temporary writable databases +* ns/batched-fsync (2021-10-08) 8 commits + - core.fsyncobjectfiles: performance tests for add and stash + - core.fsyncobjectfiles: tests for batch mode + - unpack-objects: use the bulk-checkin infrastructure + - update-index: use the bulk-checkin infrastructure + - core.fsyncobjectfiles: add windows support for batch mode + - core.fsyncobjectfiles: batched disk flushes + - bulk-checkin: rename 'state' variable and separate 'plugged' boolean + - Merge branch 'ns/tmp-objdir' into ns/batched-fsync + (this branch uses ns/tmp-objdir.) The "core.fsyncobjectfiles" configuration variable can now be set to "batch" for improved performance. - Under discussion. - - Handling of temporary object directory is worked out with the - en/remerge-diff topic. + Will merge to 'next'? * jh/builtin-fsmonitor-part1 (2021-09-20) 7 commits @@ -664,7 +741,9 @@ Release tarballs are available at: Will merge to 'master'. -* tb/repack-write-midx (2021-10-01) 9 commits +* tb/repack-write-midx (2021-10-07) 10 commits + (merged to 'next' on 2021-10-08 at ff8fec247e) + + test-read-midx: fix leak of bitmap_index struct (merged to 'next' on 2021-10-06 at ccdd5aaf2a) + builtin/repack.c: pass `--refs-snapshot` when writing bitmaps + builtin/repack.c: make largest pack preferred @@ -705,22 +784,6 @@ Release tarballs are available at: Will merge to 'master'. -* tb/midx-write-propagate-namehash (2021-09-17) 7 commits - (merged to 'next' on 2021-09-29 at 24732fcfc8) - + t5326: test propagating hashcache values - + p5326: generate pack bitmaps before writing the MIDX bitmap - + p5326: don't set core.multiPackIndex unnecessarily - + p5326: create missing 'perf-tag' tag - + midx.c: respect 'pack.writeBitmapHashcache' when writing bitmaps - + pack-bitmap.c: propagate namehash values from existing bitmaps - + t/helper/test-bitmap.c: add 'dump-hashes' mode - - "git multi-pack-index write --bitmap" learns to propagate the - hashcache from original bitmap to resulting bitmap. - - Will merge to 'master'. - - * en/zdiff3 (2021-09-20) 2 commits - update documentation for new zdiff3 conflictStyle - xdiff: implement a zealous diff3, or "zdiff3" @@ -728,7 +791,7 @@ Release tarballs are available at: "Zealous diff3" style of merge conflict presentation has been added. -* js/scalar (2021-09-14) 15 commits +* js/scalar (2021-10-07) 15 commits - scalar: accept -C and -c options before the subcommand - scalar: implement the `version` command - scalar: implement the `delete` command @@ -747,19 +810,6 @@ Release tarballs are available at: Add pieces from "scalar" to contrib/. - Waiting for a response. - cf. - - -* ab/sanitize-leak-ci (2021-09-23) 2 commits - (merged to 'next' on 2021-10-03 at dcd62a3fc6) - + tests: add a test mode for SANITIZE=leak, run it in CI - + Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS - - CI learns to run the leak sanitizer builds. - - Will merge to 'master'. - * ms/customizable-ident-expansion (2021-09-01) 1 commit - keyword expansion: make "$Id$" string configurable @@ -767,6 +817,8 @@ Release tarballs are available at: Instead of "$Id$", user-specified string (like $FreeBSD$) can be used as an in-blob placeholder for keyword expansion. + What's the status of this one? Meh? + * js/retire-preserve-merges (2021-09-07) 11 commits (merged to 'next' on 2021-09-10 at f645ffd7a3) @@ -787,40 +839,6 @@ Release tarballs are available at: Will cook in 'next'. -* en/remerge-diff (2021-08-31) 7 commits - - doc/diff-options: explain the new --remerge-diff option - - show, log: provide a --remerge-diff capability - - tmp-objdir: new API for creating and removing primary object dirs - - merge-ort: capture and print ll-merge warnings in our preferred fashion - - ll-merge: add API for capturing warnings in a strbuf instead of stderr - - merge-ort: add ability to record conflict messages in a file - - merge-ort: mark a few more conflict messages as omittable - - A new presentation for two-parent merge "--remerge-diff" can be - used to show the difference between mechanical (and possibly - conflicted) merge results and the recorded resolution. - - Expecting a reroll. - - Handling of temporary object directory is worked out with the - ns/batched-fsync topic. - - -* sg/test-split-index-fix (2021-09-07) 7 commits - (merged to 'next' on 2021-09-29 at 661ae75778) - + read-cache: fix GIT_TEST_SPLIT_INDEX - + tests: disable GIT_TEST_SPLIT_INDEX for sparse index tests - + read-cache: look for shared index files next to the index, too - + t1600-index: disable GIT_TEST_SPLIT_INDEX - + t1600-index: don't run git commands upstream of a pipe - + t1600-index: remove unnecessary redirection - + Merge branch 'ds/sparse-index-ignored-files' into sg/test-split-index-fix - - Test updates. - - Will merge to 'master'. - - * ab/refs-errno-cleanup (2021-08-25) 4 commits - refs: make errno output explicit for refs_resolve_ref_unsafe - refs: explicitly return failure_errno from parse_loose_ref_contents @@ -829,8 +847,6 @@ Release tarballs are available at: The "remainder" of hn/refs-errno-cleanup topic. - What's the status of this one? Meh? - * ab/lib-subtest (2021-09-22) 9 commits (merged to 'next' on 2021-10-06 at e8fa261811) @@ -861,63 +877,28 @@ Release tarballs are available at: Further tweaks on progress API. + Under review. + cf. <20211010212949.GC571180@szeder.dev> + * fs/ssh-signing (2021-09-10) 9 commits - - ssh signing: test that gpg fails for unknown keys - - ssh signing: tests for logs, tags & push certs - - ssh signing: duplicate t7510 tests for commits - - ssh signing: verify signatures using ssh-keygen - - ssh signing: provide a textual signing_key_id - - ssh signing: retrieve a default key from ssh-agent - - ssh signing: add ssh key format and signing code - - ssh signing: add test prereqs - - ssh signing: preliminary refactoring and clean-up + (merged to 'next' on 2021-10-11 at b456b95672) + + ssh signing: test that gpg fails for unknown keys + + ssh signing: tests for logs, tags & push certs + + ssh signing: duplicate t7510 tests for commits + + ssh signing: verify signatures using ssh-keygen + + ssh signing: provide a textual signing_key_id + + ssh signing: retrieve a default key from ssh-agent + + ssh signing: add ssh key format and signing code + + ssh signing: add test prereqs + + ssh signing: preliminary refactoring and clean-up Use ssh public crypto for object and push-cert signing. - Will merge to 'next'. - - -* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit - - fetch: fix segfault on --set-upstream while on a detached HEAD - - "git fetch --set-upstream" while on detached HEAD segfaulted - instead of noticing that such an operation did not make sense. - - Expecting a reroll. - cf. - - -* pw/diff-color-moved-fix (2021-08-05) 13 commits - - diff: drop unused options parameter from cmp_in_block_with_wsd() - - diff --color-moved: intern strings - - diff: use designated initializers for emitted_diff_symbol - - diff --color-moved-ws=allow-indentation-change: improve hash lookups - - diff --color-moved: stop clearing potential moved blocks - - diff --color-moved: shrink potential moved blocks as we go - - diff --color-moved: unify moved block growth functions - - diff --color-moved: call comparison function directly - - diff --color-moved-ws=allow-indentation-change: simplify and optimize - - diff: simplify allow-indentation-change delta calculation - - diff --color-moved: avoid false short line matches and bad zerba coloring - - diff --color-moved=zebra: fix alternate coloring - - diff --color-moved: add perf tests - - Originally merged to 'next' on 2021-08-05 - - Long-overdue correctness and performance update to "diff - --color-moved" feature. - - Expecting a reroll. - cf. <8bec1a6d-5052-50c3-4100-e6348289d581@gmail.com> + Will merge to 'master'. -* hn/reftable (2021-10-01) 24 commits - - reftable: avoid non portable compile time pointer to function - - config.mak.uname: last release and snapshots of Minix still use zlib 1.2.3 - - fixup! reftable: implement stack, a mutable database of reftable files. - - fixup! reftable: add a heap-based priority queue for reftable records - - squash! reftable: reading/writing blocks +* hn/reftable (2021-10-08) 19 commits - Add "test-tool dump-reftable" command. - reftable: add dump utility - reftable: implement stack, a mutable database of reftable files. @@ -935,178 +916,24 @@ Release tarballs are available at: - reftable: add blocksource, an abstraction for random access reads - reftable: utility functions - reftable: add error related functionality - - reftable: RFC: add LICENSE + - reftable: add LICENSE - hash.h: provide constants for the hash IDs The "reftable" backend for the refs API, without integrating into the refs subsystem. - Expecting a reroll. - -------------------------------------------------- [Discarded] -* ao/p4-avoid-decoding (2021-04-12) 2 commits - . git-p4: do not decode data from perforce by default - . git-p4: avoid decoding more data from perforce - - "git p4" in Python-2 days used to accept a lot more kinds of data - from Perforce server as uninterrupted byte sequence, but after - switching to Python-3, too many things are expected to be in UTF-8, - which broke traditional use cases. - - Have been stalled for too long. - cf. <20210504220153.1d9f0cb2@ado-tr> - - -* tv/p4-fallback-encoding (2021-04-30) 1 commit - . git-p4: git-p4.fallbackEncoding to specify non UTF-8 charset - - "git p4" learns the fallbackEncoding configuration variable to - safely accept changeset descriptions that aren't written in UTF-8. - - Have been stalled for too long. - cf. - - -* jh/builtin-fsmonitor (2021-09-03) 37 commits - . fixup! fsmonitor--daemon: implement handle_client callback - . SQUASH??? https://github.com/git/git/runs/3438543601?check_suite_focus=true#step:5:136 - . BANDAID: sparse fixes - . t7527: test FS event reporing on MacOS WRT case and Unicode - . fsmonitor: handle shortname for .git - . t7527: test status with untracked-cache and fsmonitor--daemon - . fsmonitor: force update index after large responses - . fsmonitor: enhance existing comments - . fsmonitor--daemon: use a cookie file to sync with file system - . fsmonitor--daemon: periodically truncate list of modified files - . t7527: create test for fsmonitor--daemon - . t/perf/p7519: add fsmonitor--daemon test cases - . t/perf: avoid copying builtin fsmonitor files into test repo - . t/perf/p7519: speed up test using "test-tool touch" - . t/helper/test-touch: add helper to touch a series of files - . fsmonitor--daemon: implement handle_client callback - . fsmonitor-fs-listen-macos: implement FSEvent listener on MacOS - . fsmonitor-fs-listen-macos: add macos header files for FSEvent - . fsmonitor-fs-listen-win32: implement FSMonitor backend on Windows - . fsmonitor--daemon: create token-based changed path cache - . fsmonitor--daemon: define token-ids - . fsmonitor--daemon: add pathname classification - . fsmonitor: do not try to operate on bare repos - . fsmonitor--daemon: implement 'start' command - . fsmonitor--daemon: implement 'run' command - . fsmonitor-fs-listen-macos: stub in backend for MacOS - . fsmonitor-fs-listen-win32: stub in backend for Windows - . t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon - . fsmonitor--daemon: implement 'stop' and 'status' commands - . fsmonitor--daemon: add a built-in fsmonitor daemon - . fsmonitor: use IPC to query the builtin FSMonitor daemon - . fsmonitor: config settings are repository-specific - . help: include fsmonitor--daemon feature flag in version info - . fsmonitor-ipc: create client routines for git-fsmonitor--daemon - . fsmonitor--daemon: update fsmonitor documentation - . fsmonitor--daemon: man page - . simple-ipc: preparations for supporting binary messages. - - An attempt to write and ship with a watchman equivalent tailored - for our use. - - Will be rerolled in pieces. - - -* ab/config-based-hooks-base (2021-09-09) 36 commits - . hooks: fix a TOCTOU in "did we run a hook?" heuristic - . receive-pack: convert receive hooks to hook.h - . post-update: use hook.h library - . receive-pack: convert 'update' hook to hook.h - . hooks: allow callers to capture output - . run-command: allow capturing of collated output - . reference-transaction: use hook.h to run hooks - . hook tests: use a modern style for "pre-push" tests - . hook tests: test for exact "pre-push" hook input - . transport: convert pre-push hook to hook.h - . hook: convert 'post-rewrite' hook in sequencer.c to hook.h - . hook: provide stdin by string_list or callback - . run-command: add stdin callback for parallelization - . am: convert 'post-rewrite' hook to hook.h - . hook: support passing stdin to hooks - . run-command: allow stdin for run_processes_parallel - . run-command: remove old run_hook_{le,ve}() hook API - . receive-pack: convert push-to-checkout hook to hook.h - . read-cache: convert post-index-change to use hook.h - . commit: convert {pre-commit,prepare-commit-msg} hook to hook.h - . git-p4: use 'git hook' to run hooks - . send-email: use 'git hook run' for 'sendemail-validate' - . git hook run: add an --ignore-missing flag - . merge: convert post-merge to use hook.h - . hooks: convert 'post-checkout' hook to hook library - . am: convert applypatch to use hook.h - . rebase: convert pre-rebase to use hook.h - . gc: use hook library for pre-auto-gc hook - . hook: add 'run' subcommand - . hook-list.h: add a generated list of hooks, like config-list.h - . hook.c users: use "hook_exists()" instead of "find_hook()" - . hook.c: add a hook_exists() wrapper and use it in bugreport.c - . hook.[ch]: move find_hook() from run-command.c to hook.c - . Makefile: remove an out-of-date comment - . Makefile: stop hardcoding {command,config}-list.h - . Makefile: mark "check" target as .PHONY - (this branch is used by es/config-based-hooks.) - - Restructuring of (a subset of) Emily's config-based-hooks series, - to demonstrate that a series can be presented as a more logical and - focused progression. - - Will be rerolled in pieces. - - -* es/config-based-hooks (2021-09-09) 6 commits - . hook: allow out-of-repo 'git hook' invocations - . hook: include hooks from the config - . hook: introduce "git hook list" - . hook: allow parallel hook execution - . fixup! hook: run a list of hooks instead - . hook: run a list of hooks instead - (this branch uses ab/config-based-hooks-base.) - - Revamp the hooks subsystem to allow multiple of them to trigger - upon the same event and control via the configuration variables. - - -* cb/make-compdb-fix (2021-09-22) 1 commit - . Makefile: avoid breaking compilation database generation with DEVELOPER - - Adjust to recent change to use -pedantic for developer builds. - - Replaced by the ab/make-compdb-fix topic that uses the same - approach as the ab/auto-depend-with-pedantic topic. - - -* ab/pack-objects-stdin (2021-07-09) 5 commits - . pack-objects.c: make use of REV_INFO_STDIN_LINE_PROCESS - . pack-objects.c: do stdin parsing via revision.c's API - . revision.[ch]: add a "handle_stdin_line" API - . revision.h: refactor "disable_stdin" and "read_from_stdin" - . upload-pack: run is_repository_shallow() before setup_revisions() - - Introduce handle_stdin_line callback to revision API and uses it. - - Retracted for now. - - -* ah/unleak-revisions (2021-09-20) 2 commits - . log: UNLEAK original pending objects - . log: UNLEAK rev to silence a large number of leaks - - Mark a few structures with UNLEAK() to help leak detection CI jobs. - - Retracted. - cf. <05754f9c-cd58-30f5-e2d3-58b9221d2770@ahunt.org> - - -* rs/p5311-use-test-file-size (2021-10-03) 1 commit - . p5311: handle spaces in wc(1) output - - Test portability update. +* en/remerge-diff (2021-08-31) 7 commits + . doc/diff-options: explain the new --remerge-diff option + . show, log: provide a --remerge-diff capability + . tmp-objdir: new API for creating and removing primary object dirs + . merge-ort: capture and print ll-merge warnings in our preferred fashion + . ll-merge: add API for capturing warnings in a strbuf instead of stderr + . merge-ort: add ability to record conflict messages in a file + . merge-ort: mark a few more conflict messages as omittable - The tb/aggregate-ignore-leading-whitespaces supersedes this topic. + A new presentation for two-parent merge "--remerge-diff" can be + used to show the difference between mechanical (and possibly + conflicted) merge results and the recorded resolution. -- 2.47.3