From: Junio C Hamano Date: Wed, 9 Dec 2020 01:30:04 +0000 (-0800) Subject: What's cooking (2020/12 #01) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06ab6b89be4c7657b863aa26faf240cac63ad7ef;p=thirdparty%2Fgit.git What's cooking (2020/12 #01) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 6ad5cad987..8dcf6f4fad 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 (Nov 2020, #06; Mon, 30) -X-master-at: 72ffeb997eaf999f6938b2a7e0d9a75dcceaa311 -X-next-at: 1209160524d6229d60c3301df9152cf1aa58ff6d +Subject: What's cooking in git.git (Dec 2020, #01; Tue, 8) +X-master-at: 3cf59784d42c4152a0b3de7bb7a75d0071e5f878 +X-next-at: 45daf8777d6d4c556d92b12832a851643ba4ce40 -What's cooking in git.git (Nov 2020, #06; Mon, 30) +What's cooking in git.git (Dec 2020, #01; Tue, 8) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are @@ -12,9 +12,17 @@ only in 'seen' (formerly 'pu'---proposed updates) while commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. +So far, the master branch accumulated 140+ merges of topic branches +containing 400+ single-parent commits. We are getting close to -rc0 +and it is likely we'd have to keep some topics on 'next', rather +than rushing them to result in a broken release, during the feature +freeze. We have a bit less than 50 topics in flight, including some +stalled ones, and I expect that we can merge less than half of them +before -rc0. + Copies of the source code to Git live in many repositories, and the -following is a list of the ones I push into. Some repositories have -only a subset of branches. +following is a list of the ones I push into or their mirrors. Some +repositories have only a subset of branches. With maint, master, next, seen, todo: @@ -22,6 +30,7 @@ With maint, master, next, seen, todo: git://repo.or.cz/alt-git.git/ https://kernel.googlesource.com/pub/scm/git/git/ https://github.com/git/git/ + https://gitlab.com/git-vcs/git/ With all the integration branches and topics broken out: @@ -42,143 +51,487 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* ab/gc-keep-base-option (2020-11-21) 2 commits - (merged to 'next' on 2020-11-25 at ac76ddcfe7) - + gc: rename keep_base_pack variable for --keep-largest-pack - + gc docs: change --keep-base-pack to --keep-largest-pack +* ab/retire-parse-remote (2020-11-24) 4 commits + (merged to 'next' on 2020-11-25 at 644484d7df) + + submodule: fix fetch_in_submodule logic + (merged to 'next' on 2020-11-18 at 80d4d8290c) + + parse-remote: remove this now-unused library + + submodule: remove sh function in favor of helper + + submodule: use "fetch" logic instead of custom remote discovery - Fix an option name in "gc" documentation. + "git-parse-remote" shell script library outlived its usefulness. -* hn/sleep-millisec-decl (2020-11-24) 1 commit - (merged to 'next' on 2020-11-25 at d11de8b987) - + move sleep_millisec to git-compat-util.h +* ds/config-literal-value (2020-11-25) 8 commits + (merged to 'next' on 2020-12-02 at 5de40589fc) + + config doc: value-pattern is not necessarily a regexp + + config: implement --fixed-value with --get* + + config: plumb --fixed-value into config API + + config: add --fixed-value option, un-implemented + + t1300: add test for --replace-all with value-pattern + + t1300: test "set all" mode with value-pattern + + config: replace 'value_regex' with 'value_pattern' + + config: convert multi_replace to flags + (this branch is used by ds/maintenance-part-3.) - Move a definition of compatibility wrapper from cache.h to - git-compat-util.h + Various subcommands of "git config" that takes value_regex + learn the "--literal-value" option to take the value_regex option + as a literal string. -* jc/do-not-just-explain-but-update-your-patch (2020-11-24) 1 commit - (merged to 'next' on 2020-11-25 at 1f5235d4e1) - + MyFirstContribition: answering questions is not the end of the story +* ds/maintenance-part-1 (2020-12-02) 1 commit + (merged to 'next' on 2020-12-02 at b06515515d) + + Makefile: mark git-maintenance as a builtin - Expectation for the original contributor after responding to a - review comment to use the explanation in a patch update has been - described. + Build consistency fix. -* js/pull-rebase-use-advise (2020-11-19) 1 commit - (merged to 'next' on 2020-11-25 at 05db775119) - + pull: colorize the hint about setting `pull.rebase` +* ds/maintenance-part-2 (2020-12-02) 1 commit + (merged to 'next' on 2020-12-02 at 6739aa076c) + + t7900: speed up expensive test - UI improvement. + Test fix. -* js/t1309-master-to-topic (2020-11-19) 1 commit - (merged to 'next' on 2020-11-25 at 044da285ef) - + t1309: use a neutral branch name in the `onbranch` test cases +* ds/maintenance-part-3 (2020-11-25) 2 commits + (merged to 'next' on 2020-12-02 at ee65a83d28) + + maintenance: use 'git config --fixed-value' + + Merge branch 'ds/config-literal-value' into ds/maintenance-part-3 + (this branch uses ds/config-literal-value.) - Test preparation. + "git maintenance" command had trouble working in a directory whose + pathname contained an ERE metacharacter like '+'. -* js/t2106-cleanup (2020-11-18) 3 commits - (merged to 'next' on 2020-11-23 at b1bcd5d8b2) - + t2106: ensure that the checkout fails for the expected reason - + t2106: make test independent of the current main branch name - + t2106: adjust style to the current conventions +* fc/random-cleanup (2020-12-02) 6 commits + (merged to 'next' on 2020-12-02 at 3cfe693eb8) + + gitignore: remove entry for git serve + + gitignore: drop duplicate entry for git-sh-i18n + + tests: lib-functions: trivial style cleanups + + test: completion: fix typos + + .gitignore: remove dangling file + + refspec: trivial cleanup - A test script got cleaned up and then made not to depend on the - value of init.defaultBranch. + Random cleanup. -* js/t3040-cleanup (2020-11-18) 1 commit - (merged to 'next' on 2020-11-23 at 88951eae2f) - + t3040: remove stale note +* fc/zsh-completion (2020-12-01) 1 commit + (merged to 'next' on 2020-12-02 at 78b7286a26) + + completion: zsh: fix file completion regression - Cleanup. + Hotfix for a recent breakage. -* js/t3404-master-to-primary (2020-11-24) 1 commit - (merged to 'next' on 2020-11-25 at c2959cc831) - + t3404: do not depend on any specific default branch name +* jk/banned (2020-12-02) 2 commits + (merged to 'next' on 2020-12-02 at 3be67a4909) + + banned.h: mark ctime_r() and asctime_r() as banned + + banned.h: mark non-reentrant gmtime, etc as banned - A test script got cleaned up and then made not to depend on the - value of init.defaultBranch. + Non-reentrant time-related library functions and ctime/asctime with + awkward calling interfaces are banned from the codebase. -* js/t4015-wo-master (2020-11-19) 1 commit - (merged to 'next' on 2020-11-23 at b85c36ffb4) - + t4015: let the test pass with any default branch name +* jk/stop-pack-objects-when-fetch-is-killed (2020-12-01) 1 commit + (merged to 'next' on 2020-12-02 at 9e8b8e4b81) + + upload-pack: kill pack-objects helper on signal or exit - A test script got cleaned up not to depend on the value of - init.defaultBranch. + "git fetch" that is killed may leave a pack-objects process behind, + still computing to find a good compression, wasting cycles. This + has been corrected. -* km/stash-error-message-fix (2020-11-24) 1 commit - (merged to 'next' on 2020-11-25 at 9ef82d6aa7) - + stash: add missing space to an error message +* jk/stop-pack-objects-when-push-is-killed (2020-11-21) 1 commit + (merged to 'next' on 2020-11-25 at f73fb999cd) + + send-pack: kill pack-objects helper on signal or exit - Error message fix. + "git push" that is killed may leave a pack-objects process behind, + still computing to find a good compression, wasting cycles. This + has been corrected. -* mt/worktree-error-message-fix (2020-11-21) 1 commit - (merged to 'next' on 2020-11-25 at bc887168ff) - + worktree: fix order of arguments in error message +* js/add-i-color-fix (2020-11-16) 11 commits + (merged to 'next' on 2020-11-30 at 5cb8202cd4) + + add -i: verify in the tests that colors can be overridden + + add -p: prefer color.diff.context over color.diff.plain + + add -i (Perl version): color header to match the C version + + add -i (built-in): use the same indentation as the Perl version + + add -p (built-in): do not color the progress indicator separately + + add -i (built-in): use correct names to load color.diff.* config + + add -i (built-in): prevent the `reset` "color" from being configured + + add -i: use `reset_color` consistently + + add -p (built-in): imitate `xdl_format_hunk_hdr()` generating hunk headers + + add -i (built-in): send error messages to stderr + + add -i (built-in): do show an error message for incorrect inputs - Fix formulation of an error message with two placeholders in "git - worktree add" subcommand. + "git add -i" failed to honor custom colors configured to show + patches, which has been corrected. + cf. <20201117015149.GC19433@coredump.intra.peff.net> -* na/notes-displayref-is-not-boolean (2020-11-23) 2 commits - (merged to 'next' on 2020-11-25 at b0dda46b56) - + t3301: test proper exit response to no-value notes.displayRef. - + notes.c: fix a segfault in notes_display_config() +* js/trace2-session-id (2020-11-11) 11 commits + (merged to 'next' on 2020-12-02 at b6229e069f) + + receive-pack: log received client session ID + + send-pack: advertise session ID in capabilities + + upload-pack, serve: log received client session ID + + fetch-pack: advertise session ID in capabilities + + transport: log received server session ID + + serve: advertise session ID in v2 capabilities + + receive-pack: advertise session ID in v0 capabilities + + upload-pack: advertise session ID in v0 capabilities + + trace2: add a public function for getting the SID + + docs: new transfer.advertiseSID option + + docs: new capability to advertise session IDs - Config parser fix for "git notes". + The transport layer was taught to optionally exchange the session + ID assigned by the trace2 subsystem during fetch/push transactions. -* sa/credential-store-timeout (2020-11-25) 1 commit - (merged to 'next' on 2020-11-25 at 7a9a4b68fd) - + crendential-store: use timeout when locking file +* jt/trace-error-on-warning (2020-11-24) 1 commit + (merged to 'next' on 2020-11-30 at 1ab8a970f8) + + usage: add trace2 entry upon warning() - Multiple "credential-store" backends can race to lock the same - file, causing everybody else but one to fail---reattempt locking - with some timeout to reduce the rate of the failure. + Like die() and error(), a call to warning() will also trigger a + trace2 event. + + +* ma/grep-init-default (2020-11-30) 4 commits + (merged to 'next' on 2020-12-02 at 6240fa114e) + + MyFirstObjectWalk: drop `init_walken_defaults()` + + grep: copy struct in one fell swoop + + grep: use designated initializers for `grep_defaults` + + grep: don't set up a "default" repo for grep + + Code clean-up. + + +* mt/do-not-use-scld-in-working-tree (2020-12-02) 1 commit + (merged to 'next' on 2020-12-02 at c1c0a6c31e) + + apply: don't use core.sharedRepository to create working tree files + + "git apply" adjusted the permission bits of working-tree files and + directories according core.sharedRepository setting by mistake and + for a long time, which has been corrected. --------------------------------------------------- -[New Topics] * nk/perf-fsmonitor-cleanup (2020-11-30) 1 commit - - perf/fsmonitor: use test_must_be_empty helper + (merged to 'next' on 2020-12-02 at 3096e954be) + + perf/fsmonitor: use test_must_be_empty helper Test clean-up. - Will merge to 'next'. + +* nm/imap-send-use-default-config (2020-12-01) 1 commit + (merged to 'next' on 2020-12-02 at 08f4f483b2) + + imap-send: parse default git config + + "git imap-send" used to ignore configuration variables like + core.askpass; this has been corrected. + + +* pb/pull-rebase-recurse-submodules (2020-11-16) 4 commits + (merged to 'next' on 2020-11-25 at 9837b50d7f) + + pull: check for local submodule modifications with the right range + + t5572: describe '--rebase' tests a little more + + t5572: add notes on a peculiar test + + pull --rebase: compute rebase arguments in separate function + + "git pull --rebase --recurse-submodules" checked for local changes + in a wrong range and failed to run correctly when it should. + + +* pk/subsub-fetch-fix (2020-12-02) 1 commit + (merged to 'next' on 2020-12-02 at b15a3da5d8) + + Revert "submodules: fix of regression on fetching of non-init subsub-repo" + + An earlier attempt to fix "git fetch --recurse-submodules" broke + another use case; revert it until a better fix is found. + + +* ps/update-ref-multi-transaction (2020-11-16) 4 commits + (merged to 'next' on 2020-11-30 at c1c3e23374) + + update-ref: disallow "start" for ongoing transactions + + p1400: use `git-update-ref --stdin` to test multiple transactions + + update-ref: allow creation of multiple transactions + + t1400: avoid touching refs on filesystem + + "git update-ref --stdin" learns to take multiple transactions in a + single session. * rs/fetch-pack-invalid-lockfile (2020-11-30) 1 commit - - fetch-pack: disregard invalid pack lockfiles + (merged to 'next' on 2020-12-02 at 39356747b4) + + fetch-pack: disregard invalid pack lockfiles "fetch-pack" could pass NULL pointer to unlink(2) when it sees an invalid filename; the error checking has been tightened to make this impossible. - Will merge to 'next'. - * rs/maintenance-run-outside-repo (2020-11-30) 1 commit - - maintenance: fix SEGFAULT when no repository + (merged to 'next' on 2020-12-02 at ccfbe5991d) + + maintenance: fix SEGFAULT when no repository "git maintenance run/start/stop" needed to be run in a repository to hold the lockfile they use, but didn't make sure they are actually in a repository, which has been corrected. + +* sn/config-doc-typofix (2020-12-01) 1 commit + (merged to 'next' on 2020-12-02 at 2d62912243) + + config.txt: fix a typo (backslash != backquote) + + Fix for an old typo. + + +* tb/bugreport-no-localtime (2020-12-01) 1 commit + (merged to 'next' on 2020-12-02 at ca245d2b01) + + builtin/bugreport.c: use thread-safe localtime_r() + + Use of non-reentrant localtime() has been removed. + + +* tb/idx-midx-race-fix (2020-11-25) 2 commits + (merged to 'next' on 2020-11-30 at 493ded178e) + + midx.c: protect against disappearing packs + + packfile.c: protect against disappearing indexes + + Processes that access packdata while the .idx file gets removed + (e.g. while repacking) did not fail or fall back gracefully as they + could. + + +* tb/repack-simplify (2020-11-17) 3 commits + (merged to 'next' on 2020-11-25 at 79a98f2403) + + builtin/repack.c: don't move existing packs out of the way + + builtin/repack.c: keep track of what pack-objects wrote + + repack: make "exts" array available outside cmd_repack() + + Simplify the logic to deal with a repack operation that ended up + creating the same packfile. + +-------------------------------------------------- +[New Topics] + +* ab/mktag (2020-12-01) 10 commits + - mktag doc: update to explain why to use this + - mktag: use fsck instead of custom verify_tag() + - fsck: add new "extra" checks for "mktag" + - mktag tests: improve verify_object() test coverage + - mktag tests: remove needless SHA-1 hardcoding + - mktag tests: don't needlessly use a subshell + - mktag: remove redundant braces in one-line body "if" + - mktag: reword write_object_file() error + - mktag: use default strbuf_read() hint + - mktag doc: say not + + "git mktag" validates its input using its own rules before writing + a tag object---it has been updated to share the logic with "git + fsck". + + Expecting a reroll. + + +* so/glossary-branch-is-not-necessarily-active (2020-12-02) 1 commit + (merged to 'next' on 2020-12-08 at 01805f8ab6) + + glossary: improve "branch" definition + + The glossary described a branch as an "active" line of development, + which is misleading---a stale and non-moving branch is still a + branch. + + Will merge to 'master'. + + +* ae/doc-reproducible-html (2020-12-02) 1 commit + (merged to 'next' on 2020-12-08 at 263232f371) + + doc: make HTML manual reproducible + + Newer versions of xsltproc can assign IDs in HTML documents it + generates in a consistent manner. Use the feature to help format + HTML version of the user manual reproducibly. + + Will merge to 'master'. + + +* ab/trailers-extra-format (2020-12-07) 5 commits + - pretty format %(trailers): add a "key_value_separator" + - pretty format %(trailers): add a "keyonly" + - pretty-format %(trailers): fix broken standalone "valueonly" + - pretty format %(trailers) doc: avoid repetition + - pretty format %(trailers) test: split a long line + + The "--format=%(trailers)" mechanism gets enhanced to make it + easier to design output for machine consumption. + + +* da/vs-build-iconv-fix (2020-12-04) 1 commit + (merged to 'next' on 2020-12-08 at 4c6c5054a3) + + ci(vs-build): stop passing the iconv library location explicitly + + Build update. + + Will merge to 'master'. + + +* en/diffcore-rename (2020-12-07) 5 commits + - diffcore-rename: simplify and accelerate register_rename_src() + - diffcore-rename: reduce jumpiness in progress counters + - diffcore-rename: rename num_create to num_targets + - diffcore-rename: remove unnecessary if-clause + - diffcore-rename: avoid usage of global in too_many_rename_candidates() + + File-level rename detection updates. + + Needs review. + + +* en/merge-ort-2 (2020-12-08) 7 commits + - merge-ort: add modify/delete handling and delayed output processing + - merge-ort: add die-not-implemented stub handle_content_merge() function + - merge-ort: add function grouping comments + - merge-ort: add a paths_to_free field to merge_options_internal + - merge-ort: add a path_conflict field to merge_options_internal + - merge-ort: add a clear_internal_opts helper + - merge-ort: add a few includes + (this branch uses en/merge-ort-impl.) + + More "ORT" merge strategy. + + Needs review. + + +* fc/pull-merge-rebase (2020-12-08) 19 commits + - future: pull: enable ff-only mode by default + - pull: advice of future changes + - pull: add pull.mode=ff-only + - pull: add pull.mode + - pull: trivial memory fix + - test: pull-options: revert unnecessary changes + - test: merge-pull-config: trivial cleanup + - pull: move configurations fetches + - rebase: add REBASE_DEFAULT + - pull: show warning with --ff + - pull: introduce --merge option + - pull: trivial whitespace style fix + - pull: display default warning only when non-ff + - pull: move default warning + - pull: trivial cleanup + - pull: cleanup autostash check + - pull: refactor fast-forward check + - pull: improve default warning + - doc: pull: explain what is a fast-forward + + When a user does not tell "git pull" to use rebase or merge, the + command gives a loud message telling a user to choose between + rebase or merge but creates a merge anyway, forcing users who would + want to rebase to redo the operation. Fix this by (1) tightening + the condition to give the message---there is no reason to stop or + force the user to choose between rebase or merge if the history + fast-forwards, and (2) failing the operation when the history does + not fast-forward, instead of making a merge, in such a case. + + +* jk/check-config-parsing-error-in-upload-pack (2020-12-03) 1 commit + (merged to 'next' on 2020-12-08 at b618c7d956) + + upload-pack: propagate return value from object filter config callback + + Tighten error checking in the codepath that responds to "git fetch". + + Will merge to 'master'. + + +* jk/multi-line-indent-style-fix (2020-12-03) 1 commit + (merged to 'next' on 2020-12-08 at e6d1026437) + + style: indent multiline "if" conditions to align + + Style fix. + + Will merge to 'master'. + + +* jk/oid-array-cleanup (2020-12-07) 9 commits + - commit-graph: use size_t for array allocation and indexing + - commit-graph: replace packed_oid_list with oid_array + - commit-graph: drop count_distinct_commits() function + - oid-array: provide a for-loop iterator + - oid-array: make sort function public + - cache.h: move hash/oid functions to hash.h + - t0064: make duplicate tests more robust + - t0064: drop sha1 mention from filename + - oid-array.h: drop sha1 mention from header guard + + Code clean-up. + + Will merge to 'next'. + + +* js/cmake-extra-built-ins-fix (2020-12-04) 1 commit + (merged to 'next' on 2020-12-08 at f29945cb35) + + cmake: determine list of extra built-ins dynamically + + VSbuild fix. + + Will merge to 'master'. + + +* js/t5526-with-no-particular-primary-branch-name (2020-12-04) 2 commits + (merged to 'next' on 2020-12-08 at b16af9417c) + + t5526: drop the prereq expecting the default branch name `main` + + t5526: avoid depending on a specific default branch name + + Test update. + + Will merge to 'master'. + + +* js/t6300-hardcode-main (2020-12-07) 1 commit + - t6300: avoid using the default name of the initial branch + + Test update. + + Will merge to 'next'. + + +* js/t7064-master-to-initial (2020-12-08) 1 commit + - t7064: avoid relying on a specific default branch name + + Test update. + + Will merge to 'next'. + + +* pk/subsub-fetch-fix-take-2 (2020-12-08) 1 commit + - submodules: fix of regression on fetching of non-init subsub-repo + + "git fetch --recurse-submodules" fix. + + +* rj/make-clean (2020-12-08) 5 commits + - Makefile: don't use a versioned temp distribution directory + - Makefile: don't try to clean old debian build product + - gitweb/Makefile: conditionally include ../GIT-VERSION-FILE + - Documentation/Makefile: conditionally include ../GIT-VERSION-FILE + - Documentation/Makefile: conditionally include doc.dep + + Build optimization. + + Will merge to 'next'. + + +* tb/partial-clone-filters-fix (2020-12-03) 2 commits + - upload-pack.c: don't free allowed_filters util pointers + - builtin/clone.c: don't ignore transport_fetch_refs() errors + + Fix potential server side resource deallocation issues when + responding to a partial clone request. + Will merge to 'next'. -------------------------------------------------- [Stalled] -* mt/grep-sparse-checkout (2020-09-10) 9 commits +* mt/grep-sparse-checkout (2020-12-06) 10 commits + - t7817: do not depend on any specific default branch name - config: add setting to ignore sparsity patterns in some cmds - grep: honor sparse checkout patterns - config: correctly read worktree configs in submodules @@ -194,7 +547,7 @@ Release tarballs are available at: paths. -* mt/rm-sparse-checkout (2020-11-16) 1 commit +* mt/rm-sparse-checkout (2020-12-08) 1 commit - rm: honor sparse checkout patterns (this branch uses mt/grep-sparse-checkout.) @@ -229,11 +582,37 @@ Release tarballs are available at: probably is with potential consequences that is more/less grave? -* es/config-hooks (2020-10-16) 8 commits +* es/config-hooks (2020-12-07) 34 commits + - run-command: stop thinking about hooks + - receive-pack: convert receive hooks to hook.h + - post-update: use hook.h library + - proc-receive: acquire hook list from hook.h + - receive-pack: convert 'update' hook to hook.h + - reference-transaction: look for hooks in config + - transport: convert pre-push hook to use config + - hook: convert 'post-rewrite' hook to config + - hooks: convert 'post-checkout' hook to hook library + - git-p4: use 'git hook' to run hooks + - receive-pack: convert push-to-checkout hook to hook.h + - read-cache: convert post-index-change hook to use config + - rebase: teach pre-rebase to use hook.h + - gc: use hook library for pre-auto-gc hook + - merge: use config-based hooks for post-merge hook + - am: convert applypatch hooks to use config + - commit: use config-based hooks + - hooks: allow callers to capture output + - run-command: allow capturing of collated output + - hook: provide stdin by string_list or callback + - run-command: add stdin callback for parallelization + - hook: allow specifying working directory for hooks + - hook: allow parallel hook execution + - run-command: allow stdin for run_processes_parallel + - hook: support passing stdin to hooks - hook: replace find_hook() with hook_exists() - hook: add 'run' subcommand - parse-options: parse into strvec - hook: implement hookcmd..skip + - hook: respect hook.runHookDir - hook: include hookdir hook in list - hook: add list command - hook: scaffolding for git-hook subcommand @@ -241,6 +620,8 @@ Release tarballs are available at: The "hooks defined in config" topic. + Seems to break some tests in 'seen'. + * hn/reftable (2020-10-01) 13 commits . reftable: "test-tool dump-reftable" command. @@ -466,9 +847,9 @@ Release tarballs are available at: Needs review. -* en/merge-ort-impl (2020-11-11) 21 commits +* en/merge-ort-impl (2020-12-06) 21 commits - merge-ort: free data structures in merge_finalize() - - merge-ort: add implementation of record_unmerged_index_entries() + - merge-ort: add implementation of record_conflicted_index_entries() - tree: enable cmp_cache_name_compare() to be used elsewhere - merge-ort: add implementation of checkout() - merge-ort: basic outline for merge_switch_to_result() @@ -488,50 +869,55 @@ Release tarballs are available at: - merge-ort: add some high-level algorithm structure - merge-ort: setup basic internal data structures - Merge branch 'en/strmap' into en/merge-ort-impl + (this branch is used by en/merge-ort-2.) + + Needs review. + + +* ag/merge-strategies-in-c (2020-11-24) 13 commits + - sequencer: use the "octopus" merge strategy without forking + - sequencer: use the "resolve" strategy without forking + - merge: use the "octopus" strategy without forking + - merge: use the "resolve" strategy without forking + - merge-octopus: rewrite in C + - merge-recursive: move better_branch_name() to merge.c + - merge-resolve: rewrite in C + - merge-index: don't fork if the requested program is `git-merge-one-file' + - merge-index: libify merge_one_path() and merge_all() + - merge-one-file: rewrite in C + - update-index: move add_cacheinfo() to read-cache.c + - t6060: modify multiple files to expose a possible issue with merge-index + - t6407: modernise tests + + The resolve and octopus merge strategy backends have been rewritten + in C. Needs review. - A reroll exists. - cf. -------------------------------------------------- [Cooking] -* en/stash-apply-sparse-checkout (2020-11-21) 3 commits +* en/stash-apply-sparse-checkout (2020-12-01) 3 commits - stash: fix stash application in sparse-checkouts - stash: remove unnecessary process forking - t7012: add a testcase demonstrating stash apply bugs in sparse checkouts - -* jk/stop-pack-objects-when-push-is-killed (2020-11-21) 1 commit - (merged to 'next' on 2020-11-25 at f73fb999cd) - + send-pack: kill pack-objects helper on signal or exit - - Receiving "git push" that is killed may leave zombie pack-objects - process behind, which has been corrected. - - Will merge to 'master'. - - -* ma/grep-init-default (2020-11-30) 4 commits - - MyFirstObjectWalk: drop `init_walken_defaults()` - - grep: copy struct in one fell swoop - - grep: use designated initializers for `grep_defaults` - - grep: don't set up a "default" repo for grep - - Code clean-up. - - Will merge to 'next'. + "git stash" did not work well in a sparsely checked out working + tree. * fc/atmark-in-refspec (2020-11-30) 3 commits - - refspec: make @ a synonym of HEAD - - tests: push: trivial cleanup - - tests: push: improve cleanup of HEAD tests + (merged to 'next' on 2020-12-08 at bfded23c1c) + + refspec: make @ a synonym of HEAD + + tests: push: trivial cleanup + + tests: push: improve cleanup of HEAD tests "@" sometimes worked (e.g. "git push origin @:there") as a part of - a refspec element, but "git push orign @" did not work, which has + a refspec element, but "git push origin @" did not work, which has been corrected. + Will merge to 'master'. + * js/init-defaultbranch-advice (2020-11-24) 4 commits - init: provide useful advice about init.defaultBranch @@ -542,52 +928,30 @@ Release tarballs are available at: Our users are going to be trained to prepare for future change of init.defaultBranch configuration variable. - -* jt/trace-error-on-warning (2020-11-24) 1 commit - (merged to 'next' on 2020-11-30 at 1ab8a970f8) - + usage: add trace2 entry upon warning() - - Like die() and error(), a call to warning() will also trigger a - trace2 event. - - Will merge to 'master'. + Expecting a reroll. + cf. + I think a new advice.defaultBranchName is a bad idea. -* ps/config-env-pairs (2020-11-24) 2 commits +* ps/config-env-pairs (2020-12-01) 4 commits - config: allow specifying config entries via envvar pairs + - config: refactor parsing of GIT_CONFIG_PARAMETERS - config: extract function to parse config pairs + - environment: make `getenv_safe()` non-static Introduce a way to feed configuration variable-value pairs via environment variables. - Getting there. - cf. - - -* tb/idx-midx-race-fix (2020-11-25) 2 commits - (merged to 'next' on 2020-11-30 at 493ded178e) - + midx.c: protect against disappearing packs - + packfile.c: protect against disappearing indexes - - Processes that access packdata while the .idx file gets removed - (e.g. while repacking) did not fail or fall back gracefully as they - could. - - Will merge to 'master'. - - -* rs/stop-pack-objects-when-fetch-is-killed (2020-11-25) 1 commit - - upload-pack: kill pack-objects helper on signal or exit - - "git upload-pack" that is killed may leave zombie pack-objects - process behind, which has been corrected. + Will discard. + I am leaning toward dropping this new feature. The review + discussion seems to me that we are not convinced that this is + better than the suggested --config-env approach. + cf. <20201125224737.GK389879@camp.crustytoothpaste.net> - Needs to be replaced with signed-off and/or improved version. - -* tb/pack-bitmap (2020-11-21) 24 commits +* tb/pack-bitmap (2020-12-08) 24 commits - pack-bitmap-write: better reuse bitmaps - - pack-bitmap-write: relax unique rewalk condition + - pack-bitmap-write: relax unique revwalk condition - pack-bitmap-write: use existing bitmaps - pack-bitmap: factor out 'add_commit_to_bitmap()' - pack-bitmap: factor out 'bitmap_for_commit()' @@ -597,7 +961,7 @@ Release tarballs are available at: - pack-bitmap-write: rename children to reverse_edges - t5310: add branch-based checks - commit: implement commit_list_contains() - - bitmap: add bitmap_diff_nonzero() + - bitmap: implement bitmap_is_subset() - pack-bitmap-write: fill bitmap with commit history - pack-bitmap-write: pass ownership of intermediate bitmaps - pack-bitmap-write: reimplement bitmap writing @@ -609,54 +973,16 @@ Release tarballs are available at: - t5310: drop size of truncated ewah bitmap - pack-bitmap: bounds-check size of cache extension - pack-bitmap: fix header size check - - ewah/ewah_bitmap.c: grow buffer past 1 + - ewah/ewah_bitmap.c: avoid open-coding ALLOC_GROW() Various improvement to the codepath that writes out pack bitmaps. - Needs a bit of reshuffling? - cf. - - -* ab/retire-parse-remote (2020-11-24) 4 commits - (merged to 'next' on 2020-11-25 at 644484d7df) - + submodule: fix fetch_in_submodule logic - (merged to 'next' on 2020-11-18 at 80d4d8290c) - + parse-remote: remove this now-unused library - + submodule: remove sh function in favor of helper - + submodule: use "fetch" logic instead of custom remote discovery - - "git-parse-remote" shell script library outlived its usefulness. - - Will merge to 'master'. - - -* pb/pull-rebase-recurse-submodules (2020-11-16) 4 commits - (merged to 'next' on 2020-11-25 at 9837b50d7f) - + pull: check for local submodule modifications with the right range - + t5572: describe '--rebase' tests a little more - + t5572: add notes on a peculiar test - + pull --rebase: compute rebase arguments in separate function - - "git pull --rebase --recurse-submodules" checked for local changes - in a wrong range and failed to run correctly when it should. - - Will merge to 'master'. - - -* tb/repack-simplify (2020-11-17) 3 commits - (merged to 'next' on 2020-11-25 at 79a98f2403) - + builtin/repack.c: don't move existing packs out of the way - + builtin/repack.c: keep track of what pack-objects wrote - + repack: make "exts" array available outside cmd_repack() - - Simplify the logic to deal with a repack operation that ended up - creating the same packfile. - - Will merge to 'master'. + Will merge to 'next'? * dd/help-autocorrect-never (2020-11-25) 1 commit - - help.c: help.autocorrect=never means "do not compute suggestions" + (merged to 'next' on 2020-12-08 at f1531ab641) + + help.c: help.autocorrect=never means "do not compute suggestions" "git $cmd $args", when $cmd is not a recognised subcommand, by default tries to see if $cmd is a typo of an existing subcommand @@ -666,8 +992,7 @@ Release tarballs are available at: to find a likely typo, by setting the configuration variable to 'never'. - Getting there. - cf. + Will merge to 'master'. * js/default-branch-name-tests-final-stretch (2020-11-19) 29 commits @@ -705,110 +1030,9 @@ Release tarballs are available at: "git init" creates. -* ds/config-literal-value (2020-11-25) 8 commits - - config doc: value-pattern is not necessarily a regexp - - config: implement --fixed-value with --get* - - config: plumb --fixed-value into config API - - config: add --fixed-value option, un-implemented - - t1300: add test for --replace-all with value-pattern - - t1300: test "set all" mode with value-pattern - - config: replace 'value_regex' with 'value_pattern' - - config: convert multi_replace to flags - (this branch is used by ds/maintenance-part-3.) - - Various subcommands of "git config" that takes value_regex - learn the "--literal-value" option to take the value_regex option - as a literal string. - - Expecting a (hopefully final) reroll. - - -* ds/maintenance-part-3 (2020-11-25) 2 commits - - maintenance: use 'git config --fixed-value' - - Merge branch 'ds/config-literal-value' into ds/maintenance-part-3 - (this branch uses ds/config-literal-value.) - - "git maintenance" command had trouble working in a directory whose - pathname contained an ERE metacharacter like '+'. - - Blocked by ds/config-literal-value. - - -* ag/merge-strategies-in-c (2020-11-24) 13 commits - - sequencer: use the "octopus" merge strategy without forking - - sequencer: use the "resolve" strategy without forking - - merge: use the "octopus" strategy without forking - - merge: use the "resolve" strategy without forking - - merge-octopus: rewrite in C - - merge-recursive: move better_branch_name() to merge.c - - merge-resolve: rewrite in C - - merge-index: don't fork if the requested program is `git-merge-one-file' - - merge-index: libify merge_one_path() and merge_all() - - merge-one-file: rewrite in C - - update-index: move add_cacheinfo() to read-cache.c - - t6060: modify multiple files to expose a possible issue with merge-index - - t6407: modernise tests - - The resolve and octopus merge strategy backends have been rewritten - in C. - - Needs review. - - -* ps/update-ref-multi-transaction (2020-11-16) 4 commits - (merged to 'next' on 2020-11-30 at c1c3e23374) - + update-ref: disallow "start" for ongoing transactions - + p1400: use `git-update-ref --stdin` to test multiple transactions - + update-ref: allow creation of multiple transactions - + t1400: avoid touching refs on filesystem - - "git update-ref --stdin" learns to take multiple transactions in a - single session. - - Will merge to 'master'. - - -* js/add-i-color-fix (2020-11-16) 11 commits - (merged to 'next' on 2020-11-30 at 5cb8202cd4) - + add -i: verify in the tests that colors can be overridden - + add -p: prefer color.diff.context over color.diff.plain - + add -i (Perl version): color header to match the C version - + add -i (built-in): use the same indentation as the Perl version - + add -p (built-in): do not color the progress indicator separately - + add -i (built-in): use correct names to load color.diff.* config - + add -i (built-in): prevent the `reset` "color" from being configured - + add -i: use `reset_color` consistently - + add -p (built-in): imitate `xdl_format_hunk_hdr()` generating hunk headers - + add -i (built-in): send error messages to stderr - + add -i (built-in): do show an error message for incorrect inputs - - "git add -i" failed to honor custom colors configured to show - patches, which has been corrected. - - Will merge to 'master'. - cf. <20201117015149.GC19433@coredump.intra.peff.net> - - -* js/trace2-session-id (2020-11-11) 11 commits - - receive-pack: log received client session ID - - send-pack: advertise session ID in capabilities - - upload-pack, serve: log received client session ID - - fetch-pack: advertise session ID in capabilities - - transport: log received server session ID - - serve: advertise session ID in v2 capabilities - - receive-pack: advertise session ID in v0 capabilities - - upload-pack: advertise session ID in v0 capabilities - - trace2: add a public function for getting the SID - - docs: new transfer.advertiseSID option - - docs: new capability to advertise session IDs - - The transport layer was taught to optionally exchange the session - ID assigned by the trace2 subsystem during fetch/push transactions. - - Will merge to 'next'. - - -* ds/maintenance-part-4 (2020-11-24) 4 commits +* ds/maintenance-part-4 (2020-12-01) 6 commits + - t7900: make macOS-specific test work on Windows + - t7900: fix test failures when invoked individually via --run - maintenance: use Windows scheduled tasks - maintenance: use launchctl on macOS - maintenance: include 'cron' details in docs @@ -818,8 +1042,11 @@ Release tarballs are available at: maintenance tasks to support platforms whose native scheduling methods are not 'cron'. + Almost there. + cf. -* sj/untracked-files-in-submodule-directory-is-not-dirty (2020-10-26) 1 commit + +* sj/untracked-files-in-submodule-directory-is-not-dirty (2020-12-08) 1 commit - diff: do not show submodule with untracked files as "-dirty" "git diff" showed a submodule working tree with untracked cruft as @@ -828,8 +1055,6 @@ Release tarballs are available at: which does not consider having untracked files in the working tree as source of dirtiness. The inconsistency has been fixed. - Needs doc update and also adjusting "git status". - * ak/corrected-commit-date (2020-10-08) 10 commits - doc: add corrected commit date info