From: Junio C Hamano Date: Fri, 10 Jun 2022 23:35:08 +0000 (-0700) Subject: What's cooking (2022/06 #03) X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d42bd3f245ef2d29f0610017033bfe20aac22c4c;p=thirdparty%2Fgit.git What's cooking (2022/06 #03) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 190822f5d1..1479434d23 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 (Jun 2022, #02; Tue, 7) -X-master-at: 9c897eef06347cc5a3eb07c3ae409970ab1052c8 -X-next-at: c6f46106abc684656a9b2608ecedc4b8ac04b8ef +Subject: What's cooking in git.git (Jun 2022, #03; Fri, 10) +X-master-at: 5699ec1b0aec51b9e9ba5a2785f65970c5a95d84 +X-next-at: 398c3b25f6b9f91c426747cd7d43f16731766a3a -What's cooking in git.git (Jun 2022, #02; Tue, 7) +What's cooking in git.git (Jun 2022, #03; Fri, 10) -------------------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -14,7 +14,8 @@ future release). Commits prefixed with '-' are only in 'seen', and aren't considered "accepted" at all. This cycle will complete at around the end of June -(https://tinyurl.com/gitCal); we are in the week #7 of the cycle. +(https://tinyurl.com/gitCal); -rc0 and -rc1 are scheduled to happen +next week. 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 @@ -47,295 +48,243 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* ab/plug-leak-in-revisions (2022-04-13) 28 commits - (merged to 'next' on 2022-05-30 at 2ff85c8e71) - + revisions API: add a TODO for diff_free(&revs->diffopt) - + revisions API: have release_revisions() release "topo_walk_info" - + revisions API: have release_revisions() release "date_mode" - + revisions API: call diff_free(&revs->pruning) in revisions_release() - + revisions API: release "reflog_info" in release revisions() - + revisions API: clear "boundary_commits" in release_revisions() - + revisions API: have release_revisions() release "prune_data" - + revisions API: have release_revisions() release "grep_filter" - + revisions API: have release_revisions() release "filter" - + revisions API: have release_revisions() release "cmdline" - + revisions API: have release_revisions() release "mailmap" - + revisions API: have release_revisions() release "commits" - + revisions API users: use release_revisions() for "prune_data" users - + revisions API users: use release_revisions() with UNLEAK() - + revisions API users: use release_revisions() in builtin/log.c - + revisions API users: use release_revisions() in http-push.c - + revisions API users: add "goto cleanup" for release_revisions() - + stash: always have the owner of "stash_info" free it - + revisions API users: use release_revisions() needing REV_INFO_INIT - + revision.[ch]: document and move code declared around "init" - + revisions API users: add straightforward release_revisions() - + revision.[ch]: provide and start using a release_revisions() - + cocci: add and apply free_commit_list() rules - + format-patch: don't leak "extra_headers" or "ref_message_ids" - + string_list API users: use string_list_init_{no,}dup - + blame: use "goto cleanup" for cleanup_scoreboard() - + t/helper/test-fast-rebase.c: don't leak "struct strbuf" - + Merge branch 'ds/partial-bundle-more' into ab/plug-leak-in-revisions - - Plug the memory leaks from the trickiest API of all, the revision - walker. - source: - - -* ds/bundle-uri (2022-05-16) 8 commits - (merged to 'next' on 2022-05-25 at 43b1b9092c) - + bundle.h: make "fd" version of read_bundle_header() public - + remote: allow relative_url() to return an absolute url - + remote: move relative_url() - + http: make http_get_file() external - + fetch-pack: move --keep=* option filling to a function - + fetch-pack: add a deref_without_lazy_fetch_extended() - + dir API: add a generalized path_match_flags() function - + connect.c: refactor sending of agent & object-format - (this branch is used by ds/bundle-uri-more.) - - Preliminary code refactoring around transport and bundle code. - source: - - -* ds/object-file-unpack-loose-header-fix (2022-05-16) 1 commit - (merged to 'next' on 2022-05-26 at b35a1d5db6) - + object-file: convert 'switch' back to 'if' - - Coding style fix. - source: <377be0e9-8a0f-4a86-0a66-3b08c0284dae@github.com> - - -* ds/sparse-sparse-checkout (2022-05-23) 10 commits - (merged to 'next' on 2022-05-26 at e0e07693c5) - + sparse-checkout: integrate with sparse index - + p2000: add test for 'git sparse-checkout [add|set]' - + sparse-index: complete partial expansion - + sparse-index: partially expand directories - + sparse-checkout: --no-sparse-index needs a full index - + cache-tree: implement cache_tree_find_path() - + sparse-index: introduce partially-sparse indexes - + sparse-index: create expand_index() - + t1092: stress test 'git sparse-checkout set' - + t1092: refactor 'sparse-index contents' test - - "sparse-checkout" learns to work well with the sparse-index - feature. - source: - - -* en/sparse-cone-becomes-default (2022-04-21) 9 commits - (merged to 'next' on 2022-05-13 at c168eb55cf) - + Documentation: some sparsity wording clarifications - + git-sparse-checkout.txt: mark non-cone mode as deprecated - + git-sparse-checkout.txt: flesh out pattern set sections a bit - + git-sparse-checkout.txt: add a new EXAMPLES section - + git-sparse-checkout.txt: shuffle some sections and mark as internal - + git-sparse-checkout.txt: update docs for deprecation of 'init' - + git-sparse-checkout.txt: wording updates for the cone mode default - + sparse-checkout: make --cone the default - + tests: stop assuming --no-cone is the default mode for sparse-checkout - - Deprecate non-cone mode of the sparse-checkout feature. - source: - - -* fh/transport-push-leakfix (2022-05-27) 3 commits - (merged to 'next' on 2022-05-30 at e70a36b915) - + transport: free local and remote refs in transport_push() - + transport: unify return values and exit point from transport_push() - + transport: remove unnecessary indenting in transport_push() - - Leakfix. - source: <20220520124952.2393299-1-frantisek@hrbata.com> - - -* jc/all-negative-pathspec (2022-05-29) 1 commit - (merged to 'next' on 2022-05-31 at 2d65a13996) - + pathspec: correct an empty string used as a pathspec element - - A git subcommand like "git add -p" spawns a separate git process - while relaying its command line arguments. A pathspec with only - negative elements was mistakenly passed with an empty string, which - has been corrected. - source: - - -* js/ci-github-workflow-markup (2022-05-21) 12 commits - (merged to 'next' on 2022-05-30 at bd37e9e41f) - + ci: call `finalize_test_case_output` a little later - + ci(github): mention where the full logs can be found - + ci: use `--github-workflow-markup` in the GitHub workflow - + ci(github): avoid printing test case preamble twice - + ci(github): skip the logs of the successful test cases - + ci: optionally mark up output in the GitHub workflow - + ci/run-build-and-tests: add some structure to the GitHub workflow output - + ci: make it easier to find failed tests' logs in the GitHub workflow - + ci/run-build-and-tests: take a more high-level view - + test(junit): avoid line feeds in XML attributes - + tests: refactor --write-junit-xml code - + ci: fix code style - - Update the GitHub workflow support to make it quicker to get to the - failing test. - source: - - -* js/scalar-diagnose (2022-05-30) 8 commits - (merged to 'next' on 2022-05-31 at 8c878f3ac5) - + scalar: teach `diagnose` to gather loose objects information - + scalar: teach `diagnose` to gather packfile info - + scalar diagnose: include disk space information - + scalar: implement `scalar diagnose` - + scalar: validate the optional enlistment argument - + archive --add-virtual-file: allow paths containing colons - + archive: optionally add "virtual" files - + Merge branch 'rs/document-archive-prefix' into js/scalar-diagnose - (this branch uses rs/document-archive-prefix.) - - Implementation of "scalar diagnose" subcommand. - source: <20220528231118.3504387-1-gitster@pobox.com> - - -* jx/l10n-workflow-change (2022-05-26) 10 commits - (merged to 'next' on 2022-05-26 at 252c979843) - + l10n: Document the new l10n workflow - + Makefile: add "po-init" rule to initialize po/XX.po - + Makefile: add "po-update" rule to update po/XX.po - + po/git.pot: don't check in result of "make pot" - + po/git.pot: this is now a generated file - + Makefile: remove duplicate and unwanted files in FOUND_SOURCE_FILES - + i18n CI: stop allowing non-ASCII source messages in po/git.pot - + Makefile: have "make pot" not "reset --hard" - + Makefile: generate "po/git.pot" from stable LOCALIZED_C - + Makefile: sort source files before feeding to xgettext - - A workflow change for translators are being proposed. - source: <20220523152128.26380-1-worldhello.net@gmail.com> - - -* kl/setup-in-unreadable-worktree (2022-05-24) 1 commit - (merged to 'next' on 2022-05-27 at 4867873678) - + setup: don't die if realpath(3) fails on getcwd(3) - - Disable the "do not remove the directory the user started Git in" - logic when Git cannot tell where that directory is. Earlier we - refused to run in such a case. - source: <8b20840014d214023c50ee62439147f798e6f9cc.1653419993.git.kevin@kevinlocke.name> - - -* ns/batch-fsync (2022-04-06) 13 commits - (merged to 'next' on 2022-05-23 at 379d8bd500) - + core.fsyncmethod: performance tests for batch mode - + t/perf: add iteration setup mechanism to perf-lib - + core.fsyncmethod: tests for batch mode - + test-lib-functions: add parsing helpers for ls-files and ls-tree - + core.fsync: use batch mode and sync loose objects by default on Windows - + unpack-objects: use the bulk-checkin infrastructure - + update-index: use the bulk-checkin infrastructure - + builtin/add: add ODB transaction around add_files_to_cache - + cache-tree: use ODB transaction around writing a tree - + core.fsyncmethod: batched disk flushes for loose-objects - + bulk-checkin: rebrand plug/unplug APIs as 'odb transactions' - + bulk-checkin: rename 'state' variable and separate 'plugged' boolean - + Merge branch 'ns/core-fsyncmethod' into ns/batch-fsync - - Introduce a filesystem-dependent mechanism to optimize the way the - bits for many loose object files are ensured to hit the disk - platter. - source: - - -* pb/use-freebsd-12.3-in-cirrus-ci (2022-05-25) 1 commit - (merged to 'next' on 2022-05-26 at cea1e33100) - + ci: update Cirrus-CI image to FreeBSD 12.3 - - Update the version of FreeBSD image used in Cirrus CI. - source: <20220525125112.86954-1-levraiphilippeblain@gmail.com> - - -* rs/document-archive-prefix (2022-05-28) 1 commit - (merged to 'next' on 2022-05-30 at c9e9c54880) - + archive: improve documentation of --prefix - (this branch is used by js/scalar-diagnose.) - - The documentation on the interaction between "--add-file" and - "--prefix" options of "git archive" has been improved. - source: <6ef7f836-45f6-8386-03c0-dc18b125ec67@web.de> - - -* tb/cruft-packs (2022-05-26) 17 commits - (merged to 'next' on 2022-05-27 at cfa4cbd790) - + sha1-file.c: don't freshen cruft packs - + builtin/gc.c: conditionally avoid pruning objects via loose - + builtin/repack.c: add cruft packs to MIDX during geometric repack - + builtin/repack.c: use named flags for existing_packs - + builtin/repack.c: allow configuring cruft pack generation - + builtin/repack.c: support generating a cruft pack - + builtin/pack-objects.c: --cruft with expiration - + reachable: report precise timestamps from objects in cruft packs - + reachable: add options to add_unseen_recent_objects_to_traversal - + builtin/pack-objects.c: --cruft without expiration - + builtin/pack-objects.c: return from create_object_entry() - + t/helper: add 'pack-mtimes' test-tool - + pack-mtimes: support writing pack .mtimes files - + chunk-format.h: extract oid_version() - + pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles' - + pack-mtimes: support reading .mtimes files - + Documentation/technical: add cruft-packs.txt - - A mechanism to pack unreachable objects into a "cruft pack", - instead of ejecting them into loose form to be reclaimed later, has - been introduced. - source: - - -* tb/geom-repack-with-keep-and-max (2022-05-20) 3 commits - (merged to 'next' on 2022-05-26 at 4068f4afd3) - + builtin/repack.c: ensure that `names` is sorted - + t7703: demonstrate object corruption with pack.packSizeLimit - + repack: respect --keep-pack with geometric repack - - Teach "git repack --geometric" work better with "--keep-pack" and - avoid corrupting the repository when packsize limit is used. - source: - - -* tb/midx-race-in-pack-objects (2022-05-24) 4 commits - (merged to 'next' on 2022-05-26 at b51897dfc4) - + builtin/pack-objects.c: ensure pack validity from MIDX bitmap objects - + builtin/pack-objects.c: ensure included `--stdin-packs` exist - + builtin/pack-objects.c: avoid redundant NULL check - + pack-bitmap.c: check preferred pack validity when opening MIDX bitmap - - The multi-pack-index code did not protect the packfile it is going - to depend on from getting removed while in use, which has been - corrected. - source: +* ab/bug-if-bug (2022-06-02) 6 commits + (merged to 'next' on 2022-06-03 at 25290bb7ec) + + cache-tree.c: use bug() and BUG_if_bug() + + receive-pack: use bug() and BUG_if_bug() + + parse-options.c: use optbug() instead of BUG() "opts" check + + parse-options.c: use new bug() API for optbug() + + usage.c: add a non-fatal bug() function to go with BUG() + + common-main.c: move non-trace2 exit() behavior out of trace2.c + + A new bug() and BUG_if_bug() API is introduced to make it easier to + uniformly log "detect multiple bugs and abort in the end" pattern. + source: + + +* ab/env-array (2022-06-02) 2 commits + (merged to 'next' on 2022-06-02 at e1e05318d3) + + run-command API users: use "env" not "env_array" in comments & names + + run-command API: rename "env_array" to "env" + Rename .env_array member to .env in the child_process structure. + source: -* yw/cmake-updates (2022-05-24) 3 commits - (merged to 'next' on 2022-05-30 at ff3184441c) - + cmake: remove (_)UNICODE def on Windows in CMakeLists.txt - + cmake: add pcre2 support - + cmake: fix CMakeLists.txt on Linux - CMake updates. - source: +* cb/buggy-gcc-12-workaround (2022-06-01) 1 commit + (merged to 'next' on 2022-06-01 at 01e199fd58) + + Revert -Wno-error=dangling-pointer + + With a more targetted workaround in http.c in another topic, we may + be able to lift this blanket "GCC12 dangling-pointer warning is + broken and unsalvageable" workaround. + + +* gc/zero-length-branch-config-fix (2022-06-01) 2 commits + (merged to 'next' on 2022-06-02 at 438605f627) + + remote.c: reject 0-length branch names + + remote.c: don't BUG() on 0-length branch names + + A misconfigured 'branch..remote' led to a bug in configuration + parsing. + source: + + +* jh/builtin-fsmonitor-part3 (2022-05-26) 31 commits + (merged to 'next' on 2022-06-02 at 3599e359b3) + + t7527: improve implicit shutdown testing in fsmonitor--daemon + + fsmonitor--daemon: allow --super-prefix argument + + t7527: test Unicode NFC/NFD handling on MacOS + + t/lib-unicode-nfc-nfd: helper prereqs for testing unicode nfc/nfd + + t/helper/hexdump: add helper to print hexdump of stdin + + fsmonitor: on macOS also emit NFC spelling for NFD pathname + + t7527: test FSMonitor on case insensitive+preserving file system + + fsmonitor: never set CE_FSMONITOR_VALID on submodules + + t/perf/p7527: add perf test for builtin FSMonitor + + t7527: FSMonitor tests for directory moves + + fsmonitor: optimize processing of directory events + + fsm-listen-darwin: shutdown daemon if worktree root is moved/renamed + + fsm-health-win32: force shutdown daemon if worktree root moves + + fsm-health-win32: add polling framework to monitor daemon health + + fsmonitor--daemon: stub in health thread + + fsmonitor--daemon: rename listener thread related variables + + fsmonitor--daemon: prepare for adding health thread + + fsmonitor--daemon: cd out of worktree root + + fsm-listen-darwin: ignore FSEvents caused by xattr changes on macOS + + unpack-trees: initialize fsmonitor_has_run_once in o->result + + fsmonitor-settings: NTFS and FAT32 on MacOS are incompatible + + fsmonitor-settings: remote repos on Windows are incompatible + + fsmonitor-settings: remote repos on macOS are incompatible + + fsmonitor-settings: stub in macOS-specific incompatibility checking + + fsmonitor-settings: VFS for Git virtual repos are incompatible + + fsmonitor-settings: stub in Win32-specific incompatibility checking + + fsmonitor-settings: bare repos are incompatible with FSMonitor + + t/helper/fsmonitor-client: create stress test + + t7527: test FSMonitor on repos with Unicode root paths + + fsm-listen-win32: handle shortnames + + Merge branch 'jh/builtin-fsmonitor-part2' into jh/builtin-fsmonitor-part3 + + More fsmonitor--daemon. + source: --------------------------------------------------- -[New Topics] * jy/gitweb-xhtml5 (2022-06-02) 1 commit (merged to 'next' on 2022-06-02 at cc6a77b48b) + gitweb: switch to an XHTML5 DOCTYPE Update the doctype written in gitweb output to xhtml5. + source: <20220602114305.5915-1-jason@jasonyundt.email> + +-------------------------------------------------- +[New Topics] + +* gc/document-config-worktree-scope (2022-06-07) 1 commit + (merged to 'next' on 2022-06-08 at 85f62a864a) + + config: document and test the 'worktree' scope + + Doc update. Will merge to 'master'. - source: <20220602114305.5915-1-jason@jasonyundt.email> + source: + + +* ds/branch-checked-out (2022-06-08) 4 commits + - branch: use branch_checked_out() when deleting refs + - fetch: use new branch_checked_out() and add tests + - branch: check for bisects and rebases + - branch: add branch_checked_out() helper + + Introduce a helper to see if a branch is already being worked on + (hence should not be newly checked out in a working tree), which + performs much better than the existing find_shared_symref() to + replace many uses of the latter. + + Will merge to 'next'? + source: + + +* fs/ssh-default-key-command-doc (2022-06-08) 1 commit + (merged to 'next' on 2022-06-10 at b5cc5b6619) + + gpg docs: explain better use of ssh.defaultKeyCommand + + Doc update. + + Will merge to 'master'. + source: <20220608152437.126276-1-fs@gigacodes.de> + + +* js/ci-github-workflow-markup (2022-06-10) 3 commits + - ci(github): also mark up compile errors + - ci(github): use grouping also in the `win-build` job + - ci(github): bring back the 'print test failures' step + + Recent CI update hides certain failures in test jobs, which has + been corrected. + + Will merge to 'next'? + source: + + +* jt/connected-show-missing-from-which-side (2022-06-10) 1 commit + - fetch,fetch-pack: clarify connectivity check error + + We may find an object missing after a "git fetch" stores the + objects it obtained from the other side, but it is not necessarily + because the remote failed to send necessary objects. Reword the + messages in an attempt to help users explore other possibilities + when they hit this error. + + Expecting a reroll. + source: <20220610195247.1177549-1-jonathantanmy@google.com> + + +* gc/submodule-update (2022-06-10) 8 commits + - submodule update: remove never-used expansion + - submodule update: stop parsing options in .sh + - submodule update: remove -v, pass --quiet + - submodule--helper update: use one param per type + - submodule update: pass --require-init and --init + - submodule update: pass options with stuck forms + - submodule update: pass options containing "[no-]" + - submodule update: remove intermediate parsing + + More work on "git submodule update". + + Needs review. + source: + + +* jc/resolve-undo (2022-06-09) 1 commit + - revision: mark blobs needed for resolve-undo as reachable + + The resolve-undo information in the index was not protected against + GC, which has been corrected. + + Will merge to 'next'? + source: + +-------------------------------------------------- +[Stalled] + +* en/merge-tree (2022-02-23) 13 commits + - git-merge-tree.txt: add a section on potentional usage mistakes + - merge-tree: add a --allow-unrelated-histories flag + - merge-tree: allow `ls-files -u` style info to be NUL terminated + - merge-tree: provide easy access to `ls-files -u` style info + - merge-tree: provide a list of which files have conflicts + - merge-ort: provide a merge_get_conflicted_files() helper function + - merge-tree: support including merge messages in output + - merge-ort: split out a separate display_update_messages() function + - merge-tree: implement real merges + - merge-tree: add option parsing and initial shell for real merge function + - merge-tree: move logic for existing merge into new function + - merge-tree: rename merge_trees() to trivial_merge_trees() + - Merge branch 'en/remerge-diff' into en/merge-trees + + A new command is introduced that takes two commits and computes a + tree that would be contained in the resulting merge commit, if the + histories leading to these two commits were to be merged, and is + added as a new mode of "git merge-tree" subcommand. + + On hold. + cf. + source: + + +* bc/stash-export (2022-04-08) 4 commits + - builtin/stash: provide a way to import stashes from a ref + - builtin/stash: provide a way to export stashes to a ref + - builtin/stash: factor out revision parsing into a function + - object-name: make get_oid quietly return an error + + A mechanism to export and import stash entries to and from a normal + commit to transfer it across repositories has been introduced. + + Expecting a reroll. + cf. + source: <20220407215352.3491567-1-sandals@crustytoothpaste.net> + + +* cw/remote-object-info (2022-05-06) 11 commits + - SQUASH??? coccicheck + - SQUASH??? ensure that coccicheck is happy + - SQUASH??? compilation fix + - cat-file: add --batch-command remote-object-info command + - cat-file: move parse_cmd and DEFAULT_FORMAT up + - transport: add object-info fallback to fetch + - transport: add client side capability to request object-info + - object-info: send attribute packet regardless of object ids + - object-store: add function to free object_info contents + - fetch-pack: move fetch default settings + - fetch-pack: refactor packet writing + A client component to talk with the object-info endpoint. + + Expecting a reroll. + source: <20220502170904.2770649-1-calvinwan@google.com> + +-------------------------------------------------- +[Cooking] * pb/range-diff-with-submodule (2022-06-06) 1 commit (merged to 'next' on 2022-06-07 at e5e31590c4) @@ -349,41 +298,29 @@ Release tarballs are available at: source: -* jp/prompt-clear-before-upstream-mark (2022-06-07) 1 commit - - git-prompt: make colourization consistent +* jp/prompt-clear-before-upstream-mark (2022-06-10) 2 commits + - git-prompt: fix expansion of branch colour codes + (merged to 'next' on 2022-06-08 at 201a84ad63) + + git-prompt: make colourization consistent Bash command line prompt (in contrib/) update. Will merge to 'next'. - source: <20220607115024.64724-1-joak-pet@online.no> + source: <20220609204447.32841-1-joak-pet@online.no> + source: <20220606175022.8410-1-joak-pet@online.no> * jt/unparse-commit-upon-graft-change (2022-06-06) 1 commit - - commit,shallow: unparse commits if grafts changed + (merged to 'next' on 2022-06-08 at 3d8de84325) + + commit,shallow: unparse commits if grafts changed Updating the graft information invalidates the list of parents of in-core commit objects that used to be in the graft file. - Will merge to 'next'. + Will merge to 'master'. source: <20220606175437.1740447-1-jonathantanmy@google.com> -* ds/rebase-update-refs (2022-06-07) 7 commits - - rebase: add rebase.updateRefs config option - - sequencer: implement 'update-refs' command - - rebase: add --update-refs option - - sequencer: add update-refs command - - sequencer: define array with enum values - - branch: add branch_checked_out() helper - - log-tree: create for_each_decoration() - - "git rebase" learns "--update-refs" to update the refs that point - at commits being rewritten so that they point at the corresponding - commits in the rewritten history. - - source: <3d7d3f656b4e93e8caa0d18d29c318ede956d1d7.1654634569.git.gitgitgadget@gmail.com> - - * ab/build-gitweb (2022-06-02) 7 commits - Makefile: build 'gitweb' in the default target - gitweb/Makefile: include in top-level Makefile @@ -393,6 +330,9 @@ Release tarballs are available at: - gitweb/Makefile: add a $(GITWEB_ALL) variable - gitweb/Makefile: define all .PHONY prerequisites inline + Teach "make all" to build gitweb as well. + + Needs review. source: @@ -405,21 +345,26 @@ Release tarballs are available at: - tests: don't depend on template-created .git/branches - t0008: don't rely on default ".git/info/exclude" + Tweak tests so that they still work when the "git init" template + did not create .git/info directory. + + Will merge to 'next'? source: -* ac/bitmap-format-doc (2022-06-07) 3 commits +* ac/bitmap-format-doc (2022-06-10) 3 commits - bitmap-format.txt: add information for trailing checksum - bitmap-format.txt: fix some formatting issues - bitmap-format.txt: feed the file to asciidoc to generate html - Adjust technical/bitmap-format to be formatted by AsciiDoc. + Adjust technical/bitmap-format to be formatted by AsciiDoc, and + add some missing information to the documentation. - Needs more work to really use AsciiDoc to produce true HTML. - source: + Will merge to 'next'? + source: -* hx/unpack-streaming (2022-06-06) 7 commits +* hx/unpack-streaming (2022-06-10) 7 commits - unpack-objects: use stream_loose_object() to unpack large objects - core doc: modernize core.bigFileThreshold documentation - object-file.c: add "stream_loose_object()" to handle large object @@ -432,64 +377,68 @@ Release tarballs are available at: loose object file straight, without having to keep it in-core as a whole. - Needs rebasing on batched-fsync stuff. - cf. <7ba4858a-d1cc-a4eb-b6d6-4c04a5dd6ce7@gmail.com> - source: + Will merge to 'next'? + source: * po/rebase-preserve-merges (2022-06-06) 4 commits - - rebase: translate a die(preserve-merges) message - - rebase: note `preserve` merges may be a pull config option - - rebase: help users when dying with `preserve-merges` - - rebase.c: state preserve-merges has been removed + (merged to 'next' on 2022-06-10 at 471f67aebc) + + rebase: translate a die(preserve-merges) message + + rebase: note `preserve` merges may be a pull config option + + rebase: help users when dying with `preserve-merges` + + rebase.c: state preserve-merges has been removed Various error messages that talk about the removal of "--preserve-merges" in "rebase" have been strengthened, and "rebase --abort" learned to get out of a state that was left by an earlier use of the option. - Will merge to 'next'. + Will merge to 'master'. source: * tb/show-ref-optim (2022-06-06) 1 commit - - builtin/show-ref.c: avoid over-iterating with --heads, --tags + (merged to 'next' on 2022-06-08 at 683a3cc261) + + builtin/show-ref.c: avoid over-iterating with --heads, --tags "git show-ref --heads" (and "--tags") still iterated over all the refs, which has been corrected. - Will merge to 'next'. + Will merge to 'master'. source: <3fa6932641f18d78156bbf60b1571383f2cb5046.1654293264.git.me@ttaylorr.com> * zh/read-cache-copy-name-entry-fix (2022-06-06) 1 commit - - read-cache.c: reduce unnecessary cache entry name copying + (merged to 'next' on 2022-06-08 at 760f43dd19) + + read-cache.c: reduce unnecessary cache entry name copying Remove redundant copying (with index v3 and older) or possible over-reading beyond end of mmapped memory (with index v4) has been corrected. - Will merge to 'next'. + Will merge to 'master'. source: * ab/remote-free-fix (2022-06-07) 2 commits - - remote.c: don't dereference NULL in freeing loop - - remote.c: remove braces from one-statement "for"-loops + (merged to 'next' on 2022-06-08 at 03c3aeaeee) + + remote.c: don't dereference NULL in freeing loop + + remote.c: remove braces from one-statement "for"-loops Use-after-free (with another forget-to-free) fix. - Will merge to 'next'. + Will merge to 'master'. source: * sn/fsmonitor-missing-clock (2022-06-07) 1 commit - - fsmonitor: query watchman with right valid json + (merged to 'next' on 2022-06-08 at 812b99338c) + + fsmonitor: query watchman with right valid json Sample watchman interface hook sometimes failed to produce correctly formatted JSON message, which has been corrected. - Will merge to 'next'. + Will merge to 'master'. source: <20220607111419.15753-1-sluongng@gmail.com> @@ -510,186 +459,30 @@ Release tarballs are available at: Remove a coccinelle rule that is no longer relevant. + Will merge to 'next'. source: --------------------------------------------------- -[Stalled] - -* en/merge-tree (2022-02-23) 13 commits - - git-merge-tree.txt: add a section on potentional usage mistakes - - merge-tree: add a --allow-unrelated-histories flag - - merge-tree: allow `ls-files -u` style info to be NUL terminated - - merge-tree: provide easy access to `ls-files -u` style info - - merge-tree: provide a list of which files have conflicts - - merge-ort: provide a merge_get_conflicted_files() helper function - - merge-tree: support including merge messages in output - - merge-ort: split out a separate display_update_messages() function - - merge-tree: implement real merges - - merge-tree: add option parsing and initial shell for real merge function - - merge-tree: move logic for existing merge into new function - - merge-tree: rename merge_trees() to trivial_merge_trees() - - Merge branch 'en/remerge-diff' into en/merge-trees - - A new command is introduced that takes two commits and computes a - tree that would be contained in the resulting merge commit, if the - histories leading to these two commits were to be merged, and is - added as a new mode of "git merge-tree" subcommand. - - On hold. - cf. - source: - - -* ab/ci-github-workflow-markup (2022-05-26) 14 commits - . CI: make the --github-workflow-markup "github" output the default - . CI: make --github-workflow-markup ci-config, off by default - . ci: call `finalize_test_case_output` a little later - . ci(github): mention where the full logs can be found - . ci(github): avoid printing test case preamble twice - . ci(github): skip "skip" tests in --github-workflow-markup - . ci(github): skip the logs of the successful test cases - . ci: make it easier to find failed tests' logs in the GitHub workflow - . ci: optionally mark up output in the GitHub workflow - . test(junit): avoid line feeds in XML attributes - . tests: refactor --write-junit-xml code - . CI: stop setting FAILED_TEST_ARTIFACTS N times - . CI: don't include "test-results/" in ci/print-test-failures.sh output - . CI: don't "cd" in ci/print-test-failures.sh - (this branch uses ab/ci-setup-simplify.) - - Build a moral equivalent of js/ci-github-workflow-markup on top of - ab/ci-setup-simplify. - - -* ab/ci-setup-simplify (2022-05-26) 29 commits - . CI: make it easy to use ci/*.sh outside of CI - . CI: don't use "set -x" in "ci/lib.sh" output - . CI: set PYTHON_PATH setting for osx-{clang,gcc} into "$jobname" case - . CI: set SANITIZE=leak in MAKEFLAGS directly - . CI: set CC in MAKEFLAGS directly, don't add it to the environment - . CI: add more variables to MAKEFLAGS, except under vs-build - . CI: narrow down variable definitions in --build and --test - . CI: only invoke ci/lib.sh as "steps" in main.yml - . CI: pre-select test slice in Windows & VS tests - . ci/run-test-slice.sh: replace shelling out with "echo" - . CI: move "env" definitions into ci/lib.sh - . CI: combine ci/install{,-docker}-dependencies.sh - . CI: split up and reduce "ci/test-documentation.sh" - . CI: invoke "make artifacts-tar" directly in windows-build - . CI: check ignored unignored build artifacts in "win[+VS] build" too - . CI: make ci/{lib,install-dependencies}.sh POSIX-compatible - . CI: remove "run-build-and-tests.sh", run "make [test]" directly - . CI: export variables via a wrapper - . CI: consistently use "export" in ci/lib.sh - . CI: move p4 and git-lfs variables to ci/install-dependencies.sh - . CI: have "static-analysis" run "check-builtins", not "documentation" - . CI: have "static-analysis" run a "make ci-static-analysis" target - . CI: don't have "git grep" invoke a pager in tree content check - . CI/lib.sh: stop adding leading whitespace to $MAKEFLAGS - . CI: remove unused Azure ci/* code - . CI: remove dead "tree skipping" code - . CI: remove more dead Travis CI support - . CI: make "$jobname" explicit, remove fallback - . CI: run "set -ex" early in ci/lib.sh - (this branch is used by ab/ci-github-workflow-markup.) - - Drive more actions done in CI via the Makefile instead of shell - commands sprinkled in .github/workflows/main.yml - source: - - -* bc/stash-export (2022-04-08) 4 commits - - builtin/stash: provide a way to import stashes from a ref - - builtin/stash: provide a way to export stashes to a ref - - builtin/stash: factor out revision parsing into a function - - object-name: make get_oid quietly return an error - - A mechanism to export and import stash entries to and from a normal - commit to transfer it across repositories has been introduced. - - Expecting a reroll. - cf. - source: <20220407215352.3491567-1-sandals@crustytoothpaste.net> - - -* cw/remote-object-info (2022-05-06) 11 commits - - SQUASH??? coccicheck - - SQUASH??? ensure that coccicheck is happy - - SQUASH??? compilation fix - - cat-file: add --batch-command remote-object-info command - - cat-file: move parse_cmd and DEFAULT_FORMAT up - - transport: add object-info fallback to fetch - - transport: add client side capability to request object-info - - object-info: send attribute packet regardless of object ids - - object-store: add function to free object_info contents - - fetch-pack: move fetch default settings - - fetch-pack: refactor packet writing - - A client component to talk with the object-info endpoint. - - Expecting a reroll. - source: <20220502170904.2770649-1-calvinwan@google.com> - --------------------------------------------------- -[Cooking] * js/wait-or-whine-can-fail (2022-06-07) 1 commit - - run-command: don't spam trace2_child_exit() + (merged to 'next' on 2022-06-08 at 54fe70c95d) + + run-command: don't spam trace2_child_exit() We used to log an error return from wait_or_whine() as process termination of the waited child, which was incorrect. - Will merge to 'next'. + Will merge to 'master'. source: <50d872a057a558fa5519856b95abd048ddb514dc.1654625626.git.steadmon@google.com> * ds/credentials-in-url (2022-06-06) 1 commit - - remote: create fetch.credentialsInUrl config + (merged to 'next' on 2022-06-08 at 3db83a2012) + + remote: create fetch.credentialsInUrl config The "fetch.credentialsInUrl" configuration variable controls what happens when a URL with embedded login credential is used. - Will merge to 'next'. - source: - - -* ab/bug-if-bug (2022-06-02) 6 commits - (merged to 'next' on 2022-06-03 at 25290bb7ec) - + cache-tree.c: use bug() and BUG_if_bug() - + receive-pack: use bug() and BUG_if_bug() - + parse-options.c: use optbug() instead of BUG() "opts" check - + parse-options.c: use new bug() API for optbug() - + usage.c: add a non-fatal bug() function to go with BUG() - + common-main.c: move non-trace2 exit() behavior out of trace2.c - - A new bug() and BUG_if_bug() API is introduced to make it easier to - uniformly log "detect multiple bugs and abort in the end" pattern. - Will merge to 'master'. - source: - - -* cb/buggy-gcc-12-workaround (2022-06-01) 1 commit - (merged to 'next' on 2022-06-01 at 01e199fd58) - + Revert -Wno-error=dangling-pointer - - With a more targetted workaround in http.c in another topic, we may - be able to lift this blanket "GCC12 dangling-pointer warning is - broken and unsalvageable" workaround. - - Will merge to 'master'. - - -* gc/zero-length-branch-config-fix (2022-06-01) 2 commits - (merged to 'next' on 2022-06-02 at 438605f627) - + remote.c: reject 0-length branch names - + remote.c: don't BUG() on 0-length branch names - - A misconfigured 'branch..remote' led to a bug in configuration - parsing. - - Will merge to 'master'. - source: + source: * tl/ls-tree-oid-only (2022-06-03) 1 commit @@ -710,6 +503,9 @@ Release tarballs are available at: - remote-curl: add 'get' capability - docs: document bundle URI standard + The "bundle URI" topic. + + Needs review. source: @@ -759,22 +555,22 @@ Release tarballs are available at: by root a safe one, too (after all, if an attacker can craft a malicious repository owned by root, the box is 0wned already). - What's our take on this one? IIRC, the last time we discussed, - Carlo was hesitant to push this step forward? + Will merge to 'next'? cf. <20220519152344.ktrifm3pc42bjruh@Carlos-MacBook-Pro-2.local> source: <20220513010020.55361-5-carenas@gmail.com> * ab/hooks-regression-fix (2022-06-07) 2 commits - - hook API: fix v2.36.0 regression: hooks should be connected to a TTY - - run-command: add an "ungroup" option to run_process_parallel() + (merged to 'next' on 2022-06-08 at c1109feb67) + + hook API: fix v2.36.0 regression: hooks should be connected to a TTY + + run-command: add an "ungroup" option to run_process_parallel() In Git 2.36 we revamped the way how hooks are invoked. One change that is end-user visible is that the output of a hook is no longer directly connected to the standard output of "git" that spawns the hook, which was noticed post release. This is getting corrected. - Will merge to 'next'. + Will merge to 'master'. source: @@ -820,112 +616,79 @@ Release tarballs are available at: Thoughts? source: <20220422083629.1404989-1-hi@alyssa.is> - -* ab/env-array (2022-06-02) 2 commits - (merged to 'next' on 2022-06-02 at e1e05318d3) - + run-command API users: use "env" not "env_array" in comments & names - + run-command API: rename "env_array" to "env" - - Rename .env_array member to .env in the child_process structure. - - Will merge to 'master'. - source: - - -* jh/builtin-fsmonitor-part3 (2022-05-26) 31 commits - (merged to 'next' on 2022-06-02 at 3599e359b3) - + t7527: improve implicit shutdown testing in fsmonitor--daemon - + fsmonitor--daemon: allow --super-prefix argument - + t7527: test Unicode NFC/NFD handling on MacOS - + t/lib-unicode-nfc-nfd: helper prereqs for testing unicode nfc/nfd - + t/helper/hexdump: add helper to print hexdump of stdin - + fsmonitor: on macOS also emit NFC spelling for NFD pathname - + t7527: test FSMonitor on case insensitive+preserving file system - + fsmonitor: never set CE_FSMONITOR_VALID on submodules - + t/perf/p7527: add perf test for builtin FSMonitor - + t7527: FSMonitor tests for directory moves - + fsmonitor: optimize processing of directory events - + fsm-listen-darwin: shutdown daemon if worktree root is moved/renamed - + fsm-health-win32: force shutdown daemon if worktree root moves - + fsm-health-win32: add polling framework to monitor daemon health - + fsmonitor--daemon: stub in health thread - + fsmonitor--daemon: rename listener thread related variables - + fsmonitor--daemon: prepare for adding health thread - + fsmonitor--daemon: cd out of worktree root - + fsm-listen-darwin: ignore FSEvents caused by xattr changes on macOS - + unpack-trees: initialize fsmonitor_has_run_once in o->result - + fsmonitor-settings: NTFS and FAT32 on MacOS are incompatible - + fsmonitor-settings: remote repos on Windows are incompatible - + fsmonitor-settings: remote repos on macOS are incompatible - + fsmonitor-settings: stub in macOS-specific incompatibility checking - + fsmonitor-settings: VFS for Git virtual repos are incompatible - + fsmonitor-settings: stub in Win32-specific incompatibility checking - + fsmonitor-settings: bare repos are incompatible with FSMonitor - + t/helper/fsmonitor-client: create stress test - + t7527: test FSMonitor on repos with Unicode root paths - + fsm-listen-win32: handle shortnames - + Merge branch 'jh/builtin-fsmonitor-part2' into jh/builtin-fsmonitor-part3 - - More fsmonitor--daemon. - - Will merge to 'master'. - source: - -------------------------------------------------- [Discarded] -* jx/uniq-source-list (2022-05-25) 1 commit - . Makefile: dedup git-ls-files output to prevent duplicate targets - - Build fix. - - Will discard. - No longer needed with the updated jx/l10n-workflow-change. - source: <20220526021540.2812-1-worldhello.net@gmail.com> - - -* et/xdiff-indirection (2022-02-17) 1 commit - . xdiff: provide indirection to git functions - - Insert a layer of preprocessor macros for common functions in xdiff - codebase. - - Will discard, as it has been stalled for way too long. - cf. - source: <20220217225408.GB7@edef91d97c94> - - -* dl/prompt-pick-fix (2022-03-25) 1 commit - . git-prompt: fix sequencer/todo detection - - Fix shell prompt script (in contrib/) for those who set - rebase.abbreviateCommands; we failed to recognize that we were in a - multi-step cherry-pick session. - - Will discard, as it has been stalled for way too long. - cf. - source: <20220325145301.3370-1-danny0838@gmail.com> +* ds/rebase-update-refs (2022-06-07) 7 commits + . rebase: add rebase.updateRefs config option + . sequencer: implement 'update-refs' command + . rebase: add --update-refs option + . sequencer: add update-refs command + . sequencer: define array with enum values + . branch: add branch_checked_out() helper + . log-tree: create for_each_decoration() + "git rebase" learns "--update-refs" to update the refs that point + at commits being rewritten so that they point at the corresponding + commits in the rewritten history. -* es/superproject-aware-submodules (2022-03-09) 3 commits - . rev-parse: short-circuit superproject worktree when config unset - . introduce submodule.hasSuperproject record - . t7400-submodule-basic: modernize inspect() helper + Retracted for possible future redesign. + cf. + source: - A configuration variable in a repository tells if it is (or is not) - a submodule of a superproject. - Will discard, as it has been stalled for way too long. - cf. - source: <20220310004423.2627181-1-emilyshaffer@google.com> +* ab/ci-github-workflow-markup (2022-05-26) 14 commits + . CI: make the --github-workflow-markup "github" output the default + . CI: make --github-workflow-markup ci-config, off by default + . ci: call `finalize_test_case_output` a little later + . ci(github): mention where the full logs can be found + . ci(github): avoid printing test case preamble twice + . ci(github): skip "skip" tests in --github-workflow-markup + . ci(github): skip the logs of the successful test cases + . ci: make it easier to find failed tests' logs in the GitHub workflow + . ci: optionally mark up output in the GitHub workflow + . test(junit): avoid line feeds in XML attributes + . tests: refactor --write-junit-xml code + . CI: stop setting FAILED_TEST_ARTIFACTS N times + . CI: don't include "test-results/" in ci/print-test-failures.sh output + . CI: don't "cd" in ci/print-test-failures.sh + (this branch uses ab/ci-setup-simplify.) + Discarded to stop "competing" with js/ci-github-workflow-markup. -* sg/build-gitweb (2022-05-25) 1 commit - . Makefile: build 'gitweb' in the default target - "make all" should but didn't build "gitweb". +* ab/ci-setup-simplify (2022-05-26) 29 commits + . CI: make it easy to use ci/*.sh outside of CI + . CI: don't use "set -x" in "ci/lib.sh" output + . CI: set PYTHON_PATH setting for osx-{clang,gcc} into "$jobname" case + . CI: set SANITIZE=leak in MAKEFLAGS directly + . CI: set CC in MAKEFLAGS directly, don't add it to the environment + . CI: add more variables to MAKEFLAGS, except under vs-build + . CI: narrow down variable definitions in --build and --test + . CI: only invoke ci/lib.sh as "steps" in main.yml + . CI: pre-select test slice in Windows & VS tests + . ci/run-test-slice.sh: replace shelling out with "echo" + . CI: move "env" definitions into ci/lib.sh + . CI: combine ci/install{,-docker}-dependencies.sh + . CI: split up and reduce "ci/test-documentation.sh" + . CI: invoke "make artifacts-tar" directly in windows-build + . CI: check ignored unignored build artifacts in "win[+VS] build" too + . CI: make ci/{lib,install-dependencies}.sh POSIX-compatible + . CI: remove "run-build-and-tests.sh", run "make [test]" directly + . CI: export variables via a wrapper + . CI: consistently use "export" in ci/lib.sh + . CI: move p4 and git-lfs variables to ci/install-dependencies.sh + . CI: have "static-analysis" run "check-builtins", not "documentation" + . CI: have "static-analysis" run a "make ci-static-analysis" target + . CI: don't have "git grep" invoke a pager in tree content check + . CI/lib.sh: stop adding leading whitespace to $MAKEFLAGS + . CI: remove unused Azure ci/* code + . CI: remove dead "tree skipping" code + . CI: remove more dead Travis CI support + . CI: make "$jobname" explicit, remove fallback + . CI: run "set -ex" early in ci/lib.sh + (this branch is used by ab/ci-github-workflow-markup.) - Will discard. - cf. <220526.86k0a96sv2.gmgdl@evledraar.gmail.com> - cf. - source: <20220525205651.825669-1-szeder.dev@gmail.com> + Discarded to stop "conflicing" with js/ci-github-workflow-markup; + good bits from the series may want to be resurrected and rebuilt on + top of the other topics.