From: Junio C Hamano Date: Fri, 20 Nov 2020 01:03:36 +0000 (-0800) Subject: What's cooking (2020/11 #04) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ebbdb5b67eb780b1490d8c3c9c5b16faeecfa92;p=thirdparty%2Fgit.git What's cooking (2020/11 #04) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 3385260603..0239098834 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, #03; Wed, 11) -X-master-at: e31aba42fb12bdeb0f850829e008e1e3f43af500 -X-next-at: 0fa62a7daddba87a59a9564aaffb6655a191a679 +Subject: What's cooking in git.git (Nov 2020, #04; Thu, 19) +X-master-at: faefdd61ec7c7f6f3c8c9907891465ac9a2a1475 +X-next-at: 04529851e543a22b6ba47fbb72737de4c325bb07 -What's cooking in git.git (Nov 2020, #03; Wed, 11) +What's cooking in git.git (Nov 2020, #04; Thu, 19) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are @@ -12,7 +12,9 @@ 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. -The fifth batch of topics have been merged to 'master'. +The sixth batch of topics are in 'master' and the tests are being +prepared not to be disrupted by a potential change of the default +name for the initial branch. 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 @@ -44,216 +46,505 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* cw/ci-ghwf-check-ws-errors (2020-11-03) 1 commit - (merged to 'next' on 2020-11-04 at dc1121823c) - + ci: make the whitespace checker more robust +* ds/maintenance-part-3 (2020-10-16) 8 commits + (merged to 'next' on 2020-11-10 at fe9475c696) + + maintenance: add troubleshooting guide to docs + + maintenance: use 'incremental' strategy by default + + maintenance: create maintenance.strategy config + + maintenance: add start/stop subcommands + + maintenance: add [un]register subcommands + + for-each-repo: run subcommands on configured repos + + maintenance: add --schedule option and config + + maintenance: optionally skip --auto process + (this branch is used by ds/maintenance-part-4.) - Dev support update. + Parts of "git maintenance" to ease writing crontab entries (and + other scheduling system configuration) for it. -* jc/abbrev-doc (2020-11-04) 1 commit - (merged to 'next' on 2020-11-09 at 09efe81b8b) - + doc: clarify that --abbrev= is about the minimum length +* dd/upload-pack-stateless-eof (2020-10-30) 1 commit + (merged to 'next' on 2020-11-09 at 01a1f1d4fd) + + upload-pack: allow stateless client EOF just prior to haves - The documentation on the "--abbrev=" option did not say the - output may be longer than "" hexdigits, which has been - clarified. + "git fetch --depth=" over the stateless RPC / smart HTTP + transport handled EOF from the client poorly at the server end. -* jc/sequencer-stopped-sha-simplify (2020-10-21) 1 commit - (merged to 'next' on 2020-11-02 at ba3dd9eaf4) - + sequencer: tolerate abbreviated stopped-sha file +* dg/bswap-msvc (2020-11-11) 2 commits + (merged to 'next' on 2020-11-11 at 6b9e819b17) + + compat/bswap.h: don't assume MSVC is little-endian + (merged to 'next' on 2020-11-09 at 91a67b86f7) + + compat/bswap.h: simplify MSVC endianness detection - Recently the format of an internal state file "rebase -i" uses has - been tightened up for consistency, which would hurt those who start - "rebase -i" with old git and then continue with new git. Loosen - the reader side a bit (which we may want to tighten again in a year - or so). + Define ARM64 compiled with MSVC to be little-endian. -* js/ci-github-set-env (2020-11-06) 1 commit - (merged to 'next' on 2020-11-09 at c4ce007b4c) - + ci: avoid using the deprecated `set-env` construct +* en/merge-ort-api-null-impl (2020-11-02) 4 commits + (merged to 'next' on 2020-11-10 at ed9eed1558) + + merge,rebase,revert: select ort or recursive by config or environment + + fast-rebase: demonstrate merge-ort's API via new test-tool command + + merge-ort-wrappers: new convience wrappers to mimic the old merge API + + merge-ort: barebones API of new merge strategy with empty implementation + (this branch is used by en/merge-ort-impl.) - CI update. + Preparation for a new merge strategy. -* js/p4-default-branch (2020-11-09) 1 commit - (merged to 'next' on 2020-11-09 at a4b08b45da) - + p4: respect init.defaultBranch +* en/merge-tests (2020-10-26) 9 commits + (merged to 'next' on 2020-11-09 at 8ac9fe94a7) + + t6423: add more details about direct resolution of directories + + t6423: note improved ort handling with untracked files + + t6423, t6436: note improved ort handling with dirty files + + merge tests: expect slight differences in output for recursive vs. ort + + t6423: expect improved conflict markers labels in the ort backend + + t6404, t6423: expect improved rename/delete handling in ort backend + + t6416: correct expectation for rename/rename(1to2) + directory/file + + merge tests: expect improved directory/file conflict handling in ort + + t/: new helper for tests that pass with ort but fail with recursive + + Preparation for a new merge strategy. - "git p4" now honors init.defaultBranch configuration. +* jc/blame-ignore-fix (2020-11-10) 1 commit + (merged to 'next' on 2020-11-10 at 384ace449d) + + blame: silently ignore invalid ignore file objects + + "git blame --ignore-revs-file=" learned to ignore a + non-existent object name in the input, instead of complaining. -* js/test-file-size (2020-11-06) 1 commit - (merged to 'next' on 2020-11-09 at b3594d0150) - + tests: consolidate the `file_size` function into `test-lib-functions.sh` - Test clean-up. +* jc/line-log-takes-no-pathspec (2020-11-04) 1 commit + (merged to 'next' on 2020-11-09 at 47c2c88b9d) + + log: diagnose -L used with pathspec as an error + "git log -L:" is documented to take no pathspec, but + this was not enforced by the command line option parser, which has + been corrected. -* js/test-whitespace-fixes (2020-11-09) 6 commits - (merged to 'next' on 2020-11-09 at 383388929a) - + t9603: use tabs for indentation - + t5570: remove trailing padding - + t5400,t5402: consistently indent with tabs, not with spaces - + t3427: adjust stale comment - + t3406: indent with tabs, not spaces - + t1004: insert missing "branch" in a message - Test code clean-up. +* jc/sparse-error-for-developer-build (2020-10-31) 1 commit + (merged to 'next' on 2020-11-10 at 8cfbe66736) + + Makefile: enable -Wsparse-error for DEVELOPER build + "make DEVELOPER=1 sparse" used to run sparse and let it emit + warnings; now such warnings will cause an error. -* mc/typofix (2020-11-05) 1 commit - (merged to 'next' on 2020-11-09 at ed6106b6e3) - + doc: fixing two trivial typos in Documentation/ - Docfix. +* jk/format-patch-output (2020-11-04) 3 commits + (merged to 'next' on 2020-11-09 at 1f1bb6ebff) + + format-patch: support --output option + + format-patch: tie file-opening logic to output_directory + + format-patch: refactor output selection + "git format-patch --output=there" did not work as expected and + instead crashed. The option is now supported. -* rs/clear-commit-marks-in-repo (2020-10-31) 2 commits - (merged to 'next' on 2020-11-04 at cb1e1d73cf) - + bisect: clear flags in passed repository - + object: allow clear_commit_marks_all to handle any repo - Code clean-up. +* js/default-branch-name-adjust-t5515 (2020-11-02) 4 commits + (merged to 'next' on 2020-11-09 at 568ba5aba5) + + t5515: use `main` as the name of the main branch for testing (conclusion) + + t5515: use `main` as the name of the main branch for testing (part 3) + + t5515: use `main` as the name of the main branch for testing (part 2) + + t5515: use `main` as the name of the main branch for testing (part 1) + Prepare a test script to transition of the default branch name to + 'main'. -* rs/pack-write-hashwrite-simplify (2020-11-01) 1 commit - (merged to 'next' on 2020-11-04 at 7194d3e811) - + pack-write: use hashwrite_be32() instead of double-buffering array - Code clean-up. +* nk/perf-fsmonitor (2020-10-26) 10 commits + (merged to 'next' on 2020-11-09 at 9fed160a17) + + t/perf/fsmonitor: add benchmark for dirty status + + t/perf/fsmonitor: perf comparison of multiple fsmonitor integrations + + t/perf/fsmonitor: initialize test with git reset + + t/perf/fsmonitor: factor setup for fsmonitor into function + + t/perf/fsmonitor: silence initial git commit + + t/perf/fsmonitor: shorten DESC to basename + + t/perf/fsmonitor: factor description out for readability + + t/perf/fsmonitor: improve error message if typoing hook name + + t/perf/fsmonitor: move watchman setup to one-time-repo-setup + + t/perf/fsmonitor: separate one time repo initialization + Add t/perf support for fsmonitor. -* rs/worktree-list-show-locked (2020-11-03) 1 commit - (merged to 'next' on 2020-11-04 at 5f4fa51a91) - + t2402: fix typo - Typofix. +* pb/blame-funcname-range-userdiff (2020-11-01) 8 commits + (merged to 'next' on 2020-11-10 at 221bb3f773) + + blame: simplify 'setup_blame_bloom_data' interface + + blame: simplify 'setup_scoreboard' interface + + blame: enable funcname blaming with userdiff driver + + line-log: mention both modes in 'blame' and 'log' short help + + doc: add more pointers to gitattributes(5) for userdiff + + blame-options.txt: also mention 'funcname' in '-L' description + + doc: line-range: improve formatting + + doc: log, gitk: move '-L' description to 'line-range-options.txt' + "git blame -L :funcname -- path" did not work well for a path for + which a userdiff driver is defined. -* sd/prompt-local-variable (2020-11-01) 1 commit - (merged to 'next' on 2020-11-04 at ddc4192867) - + git-prompt.sh: localize `option` in __git_ps1_show_upstream - Code clean-up. +* pw/rebase-i-orig-head (2020-11-04) 4 commits + (merged to 'next' on 2020-11-10 at 038a5295f5) + + rebase -i: simplify get_revision_ranges() + + rebase -i: use struct object_id when writing state + + rebase -i: use struct object_id rather than looking up commit + + rebase -i: stop overwriting ORIG_HEAD buffer + + "git rebase -i" did not store ORIG_HEAD correctly. + cf. + +* rs/archive-high-compression (2020-11-09) 1 commit + (merged to 'next' on 2020-11-10 at 9bee80950e) + + archive: support compression levels beyond 9 -* so/format-patch-doc-on-default-diff-format (2020-10-31) 1 commit - (merged to 'next' on 2020-11-04 at 692e0b2f7a) - + doc/diff-options: fix out of place mentions of '--patch/-p' + "git archive" now allows compression level higher than "-9" + when generating tar.gz output. - Docfix. + +* rs/empty-reflog-check-fix (2020-11-01) 1 commit + (merged to 'next' on 2020-11-09 at 3da6b6fef0) + + stash: simplify reflog emptiness check + + The code to see if "git stash drop" can safely remove refs/stash + has been made more carerful. -------------------------------------------------- [New Topics] -* ps/update-ref-multi-transaction (2020-11-10) 4 commits - - 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 +* rs/hashwrite-be64 (2020-11-12) 3 commits + (merged to 'next' on 2020-11-18 at 60385c6fa1) + + pack-write: use hashwrite_be64() + + midx: use hashwrite_be64() + + csum-file: add hashwrite_be64() - "git update-ref --stdin" learns to take multiple transactions in a - single session. + Code simplification. + Will merge to 'master'. -* fc/bash-completion-alias-of-alias (2020-11-09) 2 commits - (merged to 'next' on 2020-11-10 at 75f1f2b8a8) - + completion: bash: check for alias loop - + completion: bash: support recursive aliases - The command line completion script (in contrib/) learned to expand - commands that are alias of alias. +* sg/bisect-approximately-halfway (2020-11-12) 1 commit + (merged to 'next' on 2020-11-18 at b13026a0f3) + + bisect: loosen halfway() check for a large number of commits + + "git bisect start/next" in a large span of history spends a lot of + time trying to come up with exactly the half-way point; this can be + optimized by stopping when we see a commit that is close enough to + the half-way point. Will merge to 'master'. -* jc/blame-ignore-fix (2020-11-10) 1 commit - (merged to 'next' on 2020-11-10 at 384ace449d) - + blame: silently ignore invalid ignore file objects +* tb/pack-bitmap (2020-11-19) 24 commits + - pack-bitmap-write: better reuse bitmaps + - pack-bitmap-write: relax unique rewalk condition + - pack-bitmap-write: use existing bitmaps + - pack-bitmap: factor out 'add_commit_to_bitmap()' + - pack-bitmap: factor out 'bitmap_for_commit()' + - pack-bitmap-write: ignore BITMAP_FLAG_REUSE + - pack-bitmap-write: build fewer intermediate bitmaps + - pack-bitmap.c: check reads more aggressively when loading + - pack-bitmap-write: rename children to reverse_edges + - t5310: add branch-based checks + - commit: implement commit_list_contains() + - bitmap: add bitmap_diff_nonzero() + - pack-bitmap-write: fill bitmap with commit history + - pack-bitmap-write: pass ownership of intermediate bitmaps + - pack-bitmap-write: reimplement bitmap writing + - ewah: add bitmap_dup() function + - ewah: implement bitmap_or() + - ewah: make bitmap growth less aggressive + - ewah: factor out bitmap growth + - rev-list: die when --test-bitmap detects a mismatch + - 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 + + Various improvement to the codepath that writes out pack bitmaps. + + +* ab/retire-parse-remote (2020-11-16) 3 commits + (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'. - "git blame --ignore-revs-file=" learned to ignore a - non-existent object name in the input, instead of complaining. + +* jk/4gb-idx (2020-11-16) 5 commits + (merged to 'next' on 2020-11-18 at 2f99b73bda) + + packfile: detect overflow in .idx file size checks + + block-sha1: take a size_t length parameter + + fsck: correctly compute checksums on idx files larger than 4GB + + use size_t to store pack .idx byte offsets + + compute pack .idx byte offsets using size_t + + The code was not prepared to deal with pack .idx file that is + larger than 4GB. Will merge to 'master'. -* jk/rev-parse-end-of-options (2020-11-10) 3 commits - (merged to 'next' on 2020-11-11 at 2d517d1608) - + rev-parse: handle --end-of-options - + rev-parse: put all options under the "-" check - + rev-parse: don't accept options after dashdash +* ma/list-object-filter-opt-msgfix (2020-11-16) 1 commit + (merged to 'next' on 2020-11-18 at 7cf396ee81) + + list-objects-filter-options: fix function name in BUG - "git rev-parse" learned the "--end-of-options" to help scripts to - safely take a parameter that is supposed to be a revision, e.g. - "git rev-parse --verify -q --end-of-options $rev". + Error message fix. Will merge to 'master'. + We can further update it to lose the hand-maintained function name + from the message, but that can be done separately. -* fc/bash-completion-post-2.29 (2020-11-10) 26 commits - - completion: bash: shuffle __gitcomp functions - - completion: bash: cleanup __gitcomp* invocations - - completion: bash: add __gitcomp_opts - - completion: bash: improve __gitcomp description - - completion: bash: rename _get_comp_words_by_ref() - - completion: bash: trivial cleanup - - completion: bash: cleanup _get_comp_words_by_ref() - - completion: bash: refactor _get_comp_words_by_ref() - - completion: bash: simplify _get_comp_words_by_ref() - - test: completion: switch __gitcomp_nl prefix test - - completion: bash: simplify config_variable_name - - completion: bash: improve __gitcomp suffix code - - completion: bash: change suffix check in __gitcomp - - completion: bash: simplify __gitcomp - - completion: bash: refactor __gitcomp - - completion: bash: simplify equal suffix check - - completion: bash: factor out check in __gitcomp - - completion: bash: get rid of any non-append code - - completion: bash: get rid of _append() functions - - completion: bash: remove non-append functionality - - test: completion: add run_func() helper - - test: completion: fix currently typed words - - completion: bash: do not modify COMP_WORDBREAKS - - completion: bash: fix for suboptions with value - - completion: bash: add correct suffix in variables - - completion: bash: fix prefix detection in branch.* +* mt/rm-sparse-checkout (2020-11-16) 1 commit + - rm: honor sparse checkout patterns + (this branch uses mt/grep-sparse-checkout.) + "git rm" follows suit to "git grep" to ignore paths outside the + sparsity pattern when the sparse checkout feature is in use. -* js/add-i-color-fix (2020-11-11) 11 commits - - 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): include indentation in the colored header - - 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. +* pb/pull-rebase-recurse-submodules (2020-11-16) 4 commits + - 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 - The last step may want to be polished further. - cf. <20201111023549.GB806755@coredump.intra.peff.net> + "git pull --rebase --recurse-submodules" checked for local changes + in a wrong range and failed to run correctly when it should. + Will merge to 'next'. -* ab/config-mak-uname-simplify (2020-11-11) 2 commits - - config.mak.uname: remove unused NEEDS_SSL_WITH_CURL flag - - config.mak.uname: remove unused the NO_R_TO_GCC_LINKER flag +* pk/subsub-fetch-fix (2020-11-12) 1 commit + (merged to 'next' on 2020-11-18 at bdd3b21b7c) + + submodules: fix of regression on fetching of non-init subsub-repo -* pd/mergetool-nvimdiff (2020-11-11) 2 commits - - mergetool: avoid letting `list_tool_variants` break user-defined setups - - mergetools/bc: add `bc4` to the alias list for Beyond Compare + "git fetch" did not work correctly with nested submodules where the + innermost submodule that is not of interest got updated in the + upstream, which has been corrected. + + Will merge to 'master'. + + +* rs/archive-plug-leak-refname (2020-11-16) 1 commit + (merged to 'next' on 2020-11-19 at 270ba7b8be) + + archive: release refname after use + + Memleak fix. + + Will merge to 'master'. + + +* rs/chdir-notify-unleak (2020-11-16) 1 commit + - chdir-notify: UNLEAK registrated callback entries + + Mark some stuff on list_head chain with UNLEAK() macro to squelch + leak checker. + + Will merge to 'next'. + + +* rs/plug-diff-cache-leak (2020-11-16) 1 commit + - diff-lib: plug minor memory leaks in do_diff_cache() + + Memleak fix. + + Will merge to 'next'. + + +* sg/t5310-jgit-wants-sha1 (2020-11-16) 1 commit + (merged to 'next' on 2020-11-19 at 72fb4e7155) + + t5310-pack-bitmaps: skip JGit tests with SHA256 + + Since jgit does not yet work with SHA-256 repositories, mark the + tests that uses it not to run unless we are testing with ShA-1 + repositories. + + Will merge to 'master'. + + +* tb/repack-simplify (2020-11-17) 3 commits + - 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 'next'. + + +* dd/help-autocorrect-never (2020-11-18) 1 commit + - help.c: allow help.autocorrect to say "do not even 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 + and optionally executes the corrected command if there is only one + possibility, depending on the setting of help.autocorrect; the + users can now disable the whole thing, including the cycles spent + to find a likely typo, by setting the configuration variable to + 'never'. + + +* jc/ci-github-set-env (2020-11-17) 1 commit + (merged to 'next' on 2020-11-19 at 00ff5e06ac) + + ci: avoid `set-env` construct in print-test-failures.sh + + Another CI adjustment. + + Will merge to 'master'. + + +* jc/init-doc-default-branch (2020-11-18) 1 commit + - "init" doc: mention the configurability more clearly + + Doc update. + + Weatherbaloon. + + +* js/default-branch-name-tests-final-stretch (2020-11-19) 29 commits + - tests: drop prereq `PREPARE_FOR_MAIN_BRANCH` where no longer needed + - t99*: adjust the references to the default branch name "main" + - tests(git-p4): transition to the default branch name `main` + - t9[5-7]*: adjust the references to the default branch name "main" + - t9[0-4]*: adjust the references to the default branch name "main" + - t8*: adjust the references to the default branch name "main" + - t7[5-9]*: adjust the references to the default branch name "main" + - t7[0-4]*: adjust the references to the default branch name "main" + - t6[4-9]*: adjust the references to the default branch name "main" + - t64*: preemptively adjust alignment to prepare for `master` -> `main` + - t6[0-3]*: adjust the references to the default branch name "main" + - t5[6-9]*: adjust the references to the default branch name "main" + - t55[4-9]*: adjust the references to the default branch name "main" + - t55[23]*: adjust the references to the default branch name "main" + - t551*: adjust the references to the default branch name "main" + - t550*: adjust the references to the default branch name "main" + - t5503: prepare aligned comment for replacing `master` with `main` + - t5[0-4]*: adjust the references to the default branch name "main" + - t5323: prepare centered comment for `master` -> `main` + - t4*: adjust the references to the default branch name "main" + - t3[5-9]*: adjust the references to the default branch name "main" + - t34*: adjust the references to the default branch name "main" + - t3416: preemptively adjust alignment in a comment + - t3[0-3]*: adjust the references to the default branch name "main" + - t2*: adjust the references to the default branch name "main" + - t[01]*: adjust the references to the default branch name "main" + - t0060: preemptively adjust alignment + - tests: mark tests relying on the current default for `init.defaultBranch` + - Merge 'jk/diff-release-filespec-fix' into js/default-branch-name-tests-final-stretch + (this branch uses jk/diff-release-filespec-fix.) + + Prepare tests not to be affected by the name of the default branch + "git init" creates. + + +* js/t2106-cleanup (2020-11-18) 3 commits + - 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 + + A test script got cleaned up and then made not to depend on the + value of init.defaultBranch. + + Will merge to 'next'. + + +* js/t3040-cleanup (2020-11-18) 1 commit + - t3040: remove stale note + + Cleanup. + + Will merge to 'next'. + + +* js/t4015-wo-master (2020-11-19) 1 commit + - t4015: let the test pass with any default branch name + + A test script got cleaned up not to depend on the value of + init.defaultBranch. + + Will merge to 'next'. + + +* rs/gc-sort-func-cast-fix (2020-11-18) 1 commit + (merged to 'next' on 2020-11-19 at 04529851e5) + + gc: fix cast in compare_tasks_by_selection() + + Fix broken sorting of maintenance tasks. + + Will merge to 'master'. + + +* sg/tests-prereq (2020-11-18) 2 commits + - tests: fix description of 'test_set_prereq' + - tests: make sure nested lazy prereqs work reliably + + A lazily defined test prerequisite can now be defined in terms of + another lazily defined test prerequisite. + + Will merge to 'next'. + + +* ds/config-literal-value (2020-11-19) 6 commits + - config: implement --literal-value with --get* + - config: plumb --literal-value into config API + - config: add --literal-value option, un-implemented + - config: convert multi_replace to flags + - t1300: add test for --replace-all with value_regex + - t1300: test "set all" mode with value_regex + (this branch is used by ds/maintenance-part-3.) + + +* ds/maintenance-part-3 (2020-11-19) 2 commits + - maintenance: use 'git config --literal-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 '+'. + + Will merge to 'next'. + + +* js/pull-rebase-use-advise (2020-11-19) 1 commit + - pull: colorize the hint about setting `pull.rebase` + + +* js/t1309-master-to-topic (2020-11-19) 1 commit + - t1309: use a neutral branch name in the `onbranch` test cases -------------------------------------------------- [Stalled] +* jk/symlinked-dotgitx-files (2020-10-23) 9 commits + (merged to 'next' on 2020-10-26 at c1dd37b024) + + docs: document symlink restrictions for .git* files + + fsck: complain when .gitattributes or .gitignore is a symlink + + verify_path(): disallow symlinks in .gitattributes and .gitignore + + t0060: test obscured .gitattributes and .gitignore matching + + t7450: test .gitmodules symlink matching against obscured names + + t7450: test verify_path() handling of gitmodules + + t7415: rename to expand scope + + fsck_tree(): wrap some long lines + + fsck_tree(): fix shadowed variable + + Originally merged to 'next' on 2020-10-23 + + "git fsck" and the corresponding check done during the transport + learned to ensure that in-tree files like `.gitignore` and + `.gitattributes` are not symbolic links. + + It seems that there are real projects with .gitignore recorded as + symlinks, which may need to loosen the fsck setting. Do we need to + introduce a class that is separate from symlinked .gitmodules that + probably is with potential consequences that is more/less grave? + + * es/config-hooks (2020-10-16) 8 commits - hook: replace find_hook() with hook_exists() - hook: add 'run' subcommand @@ -267,26 +558,6 @@ Release tarballs are available at: The "hooks defined in config" topic. -* ag/merge-strategies-in-c (2020-10-06) 11 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 - . t6027: modernise tests - - The resolve and octopus merge strategy backends have been rewritten - in C. - - Expecting an update. - cf.<693f417c-5612-7878-a055-2810f62af3b4@gmail.com> - - * hn/reftable (2020-10-01) 13 commits . reftable: "test-tool dump-reftable" command. . reftable: rest of library @@ -452,67 +723,151 @@ Release tarballs are available at: - t/helper/test-config: be consistent with exit codes - t1308-config-set: avoid false positives when using test-config - doc: grep: unify info on configuration variables + (this branch is used by mt/rm-sparse-checkout.) "git grep" has been tweaked to be limited to the sparse checkout paths. --------------------------------------------------- -[Cooking] +-------------------------------------------------- +[Cooking] + +* ag/merge-strategies-in-c (2020-11-16) 12 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 + - t6027: modernise tests + + The resolve and octopus merge strategy backends have been rewritten + in C. + + +* ps/update-ref-multi-transaction (2020-11-16) 4 commits + - 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. + + +* fc/bash-completion-alias-of-alias (2020-11-17) 3 commits + (merged to 'next' on 2020-11-18 at 4241203041) + + completion: bash: improve alias loop detection + (merged to 'next' on 2020-11-10 at 75f1f2b8a8) + + completion: bash: check for alias loop + + completion: bash: support recursive aliases + + The command line completion script (in contrib/) learned to expand + commands that are alias of alias. + + Will merge to 'master'. -* dd/upload-pack-stateless-eof (2020-10-30) 1 commit - (merged to 'next' on 2020-11-09 at 01a1f1d4fd) - + upload-pack: allow stateless client EOF just prior to haves - "git fetch --depth=" over the stateless RPC / smart HTTP - transport handled EOF from the client poorly at the server end. +* jk/rev-parse-end-of-options (2020-11-10) 3 commits + (merged to 'next' on 2020-11-11 at 2d517d1608) + + rev-parse: handle --end-of-options + + rev-parse: put all options under the "-" check + + rev-parse: don't accept options after dashdash + + "git rev-parse" learned the "--end-of-options" to help scripts to + safely take a parameter that is supposed to be a revision, e.g. + "git rev-parse --verify -q --end-of-options $rev". Will merge to 'master'. -* js/trace2-session-id (2020-11-02) 11 commits - - receive-pack: log received client trace2 SID - - send-pack: advertise trace2 SID in capabilities - - upload-pack, serve: log received client trace2 SID - - fetch-pack: advertise trace2 SID in capabilities - - transport: log received server trace2 SID - - serve: advertise trace2 SID in v2 capabilities - - receive-pack: advertise trace2 SID in v0 capabilities - - upload-pack: advertise trace2 SID in v0 capabilities - - trace2: add a public function for getting the SID - - docs: new trace2.advertiseSID option - - docs: new capability to advertise trace2 SIDs +* fc/bash-completion-post-2.29 (2020-11-10) 26 commits + - completion: bash: shuffle __gitcomp functions + - completion: bash: cleanup __gitcomp* invocations + - completion: bash: add __gitcomp_opts + - completion: bash: improve __gitcomp description + - completion: bash: rename _get_comp_words_by_ref() + - completion: bash: trivial cleanup + - completion: bash: cleanup _get_comp_words_by_ref() + - completion: bash: refactor _get_comp_words_by_ref() + - completion: bash: simplify _get_comp_words_by_ref() + - test: completion: switch __gitcomp_nl prefix test + - completion: bash: simplify config_variable_name + - completion: bash: improve __gitcomp suffix code + - completion: bash: change suffix check in __gitcomp + - completion: bash: simplify __gitcomp + - completion: bash: refactor __gitcomp + - completion: bash: simplify equal suffix check + - completion: bash: factor out check in __gitcomp + - completion: bash: get rid of any non-append code + - completion: bash: get rid of _append() functions + - completion: bash: remove non-append functionality + - test: completion: add run_func() helper + - test: completion: fix currently typed words + - completion: bash: do not modify COMP_WORDBREAKS + - completion: bash: fix for suboptions with value + - completion: bash: add correct suffix in variables + - completion: bash: fix prefix detection in branch.* - The transport layer was taught to optionally exchange the session - ID assigned by the trace2 subsystem during fetch/push transactions. +* js/add-i-color-fix (2020-11-16) 11 commits + - 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 -* jc/sparse-error-for-developer-build (2020-10-31) 1 commit - (merged to 'next' on 2020-11-10 at 8cfbe66736) - + Makefile: enable -Wsparse-error for DEVELOPER build + "git add -i" failed to honor custom colors configured to show + patches, which has been corrected. - "make DEVELOPER=1 sparse" used to run sparse and let it emit - warnings; now such warnings will cause an error. + +* ab/config-mak-uname-simplify (2020-11-11) 2 commits + (merged to 'next' on 2020-11-12 at e1bd51ee71) + + config.mak.uname: remove unused NEEDS_SSL_WITH_CURL flag + + config.mak.uname: remove unused the NO_R_TO_GCC_LINKER flag + + Build configuration cleanup. Will merge to 'master'. -* pb/blame-funcname-range-userdiff (2020-11-01) 8 commits - (merged to 'next' on 2020-11-10 at 221bb3f773) - + blame: simplify 'setup_blame_bloom_data' interface - + blame: simplify 'setup_scoreboard' interface - + blame: enable funcname blaming with userdiff driver - + line-log: mention both modes in 'blame' and 'log' short help - + doc: add more pointers to gitattributes(5) for userdiff - + blame-options.txt: also mention 'funcname' in '-L' description - + doc: line-range: improve formatting - + doc: log, gitk: move '-L' description to 'line-range-options.txt' +* pd/mergetool-nvimdiff (2020-11-11) 2 commits + (merged to 'next' on 2020-11-12 at aff20da3a2) + + mergetool: avoid letting `list_tool_variants` break user-defined setups + + mergetools/bc: add `bc4` to the alias list for Beyond Compare - "git blame -L :funcname -- path" did not work well for a path for - which a userdiff driver is defined. + Fix regression introduced when nvimdiff support in mergetool was added. Will merge to 'master'. +* 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. + + * so/log-diff-merge (2020-11-09) 27 commits - doc/git-show: include --diff-merges description - doc/rev-list-options: document --first-parent implies --diff-merges=first-parent @@ -550,7 +905,6 @@ Release tarballs are available at: - maintenance: use launchctl on macOS - maintenance: include 'cron' details in docs - maintenance: extract platform-specific scheduling - (this branch uses ds/maintenance-part-3.) Follow-up on the "maintenance part-3" which introduced scheduled maintenance tasks to support platforms whose native scheduling @@ -579,53 +933,7 @@ 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 uses en/merge-ort-api-null-impl and en/strmap.) - - -* js/default-branch-name-adjust-t5515 (2020-11-02) 4 commits - (merged to 'next' on 2020-11-09 at 568ba5aba5) - + t5515: use `main` as the name of the main branch for testing (conclusion) - + t5515: use `main` as the name of the main branch for testing (part 3) - + t5515: use `main` as the name of the main branch for testing (part 2) - + t5515: use `main` as the name of the main branch for testing (part 1) - - Prepare a test script to transition of the default branch name to - 'main'. - - Will merge to 'master'. - - -* jc/line-log-takes-no-pathspec (2020-11-04) 1 commit - (merged to 'next' on 2020-11-09 at 47c2c88b9d) - + log: diagnose -L used with pathspec as an error - - "git log -L:" is documented to take no pathspec, but - this was not enforced by the command line option parser, which has - been corrected. - - Will merge to 'master'. - - -* jk/format-patch-output (2020-11-04) 3 commits - (merged to 'next' on 2020-11-09 at 1f1bb6ebff) - + format-patch: support --output option - + format-patch: tie file-opening logic to output_directory - + format-patch: refactor output selection - - "git format-patch --output=there" did not work as expected and - instead crashed. The option is now supported. - - Will merge to 'master'. - - -* rs/empty-reflog-check-fix (2020-11-01) 1 commit - (merged to 'next' on 2020-11-09 at 3da6b6fef0) - + stash: simplify reflog emptiness check - - The code to see if "git stash drop" can safely remove refs/stash - has been made more carerful. - - Will merge to 'master'. + (this branch uses en/strmap.) * jc/format-patch-name-max (2020-11-09) 1 commit @@ -639,45 +947,27 @@ Release tarballs are available at: * jk/diff-release-filespec-fix (2020-11-11) 2 commits - - t7800: simplify difftool test + (merged to 'next' on 2020-11-12 at 3b21625881) + + t7800: simplify difftool test (merged to 'next' on 2020-11-09 at 6d89b9602d) + diff: allow passing NULL to diff_free_filespec_data() + (this branch is used by js/default-branch-name-tests-final-stretch.) Running "git diff" while allowing external diff in a state with unmerged paths used to segfault, which has been corrected. - Will merge to 'next'. + Will merge to 'master'. * jx/t5411-flake-fix (2020-11-11) 3 commits - - receive-pack: use default version 0 for proc-receive - - receive-pack: gently write messages to proc-receive - - t5411: new helper filter_out_user_friendly_and_stable_output + (merged to 'next' on 2020-11-18 at badb1fefe5) + + receive-pack: use default version 0 for proc-receive + + receive-pack: gently write messages to proc-receive + + t5411: new helper filter_out_user_friendly_and_stable_output The exchange between receive-pack and proc-receive hook did not carefully check for errors. - Will merge to 'next'? - - -* dg/bswap-msvc (2020-11-11) 2 commits - (merged to 'next' on 2020-11-11 at 6b9e819b17) - + compat/bswap.h: don't assume MSVC is little-endian - (merged to 'next' on 2020-11-09 at 91a67b86f7) - + compat/bswap.h: simplify MSVC endianness detection - - Code simplification. - - Will merge to 'master'. - - -* rs/archive-high-compression (2020-11-09) 1 commit - (merged to 'next' on 2020-11-10 at 9bee80950e) - + archive: support compression levels beyond 9 - - "git archive" now allows compression level higher than "-9" - when generating tar.gz output. - Will merge to 'master'. @@ -692,36 +982,6 @@ Release tarballs are available at: cf. <20201022183822.GA781760@nand.local> -* en/merge-ort-api-null-impl (2020-11-02) 4 commits - (merged to 'next' on 2020-11-10 at ed9eed1558) - + merge,rebase,revert: select ort or recursive by config or environment - + fast-rebase: demonstrate merge-ort's API via new test-tool command - + merge-ort-wrappers: new convience wrappers to mimic the old merge API - + merge-ort: barebones API of new merge strategy with empty implementation - (this branch is used by en/merge-ort-impl.) - - Preparation for a new merge strategy. - - Will merge to 'master'. - - -* en/merge-tests (2020-10-26) 9 commits - (merged to 'next' on 2020-11-09 at 8ac9fe94a7) - + t6423: add more details about direct resolution of directories - + t6423: note improved ort handling with untracked files - + t6423, t6436: note improved ort handling with dirty files - + merge tests: expect slight differences in output for recursive vs. ort - + t6423: expect improved conflict markers labels in the ort backend - + t6404, t6423: expect improved rename/delete handling in ort backend - + t6416: correct expectation for rename/rename(1to2) + directory/file - + merge tests: expect improved directory/file conflict handling in ort - + t/: new helper for tests that pass with ort but fail with recursive - - Preparation for a new merge strategy. - - Will merge to 'master'. - - * sj/untracked-files-in-submodule-directory-is-not-dirty (2020-10-26) 1 commit - diff: do not show submodule with untracked files as "-dirty" @@ -734,83 +994,29 @@ Release tarballs are available at: Needs doc update and also adjusting "git status". -* nk/perf-fsmonitor (2020-10-26) 10 commits - (merged to 'next' on 2020-11-09 at 9fed160a17) - + t/perf/fsmonitor: add benchmark for dirty status - + t/perf/fsmonitor: perf comparison of multiple fsmonitor integrations - + t/perf/fsmonitor: initialize test with git reset - + t/perf/fsmonitor: factor setup for fsmonitor into function - + t/perf/fsmonitor: silence initial git commit - + t/perf/fsmonitor: shorten DESC to basename - + t/perf/fsmonitor: factor description out for readability - + t/perf/fsmonitor: improve error message if typoing hook name - + t/perf/fsmonitor: move watchman setup to one-time-repo-setup - + t/perf/fsmonitor: separate one time repo initialization - - Add t/perf support for fsmonitor. - - Will merge to 'master'. - - -* pw/rebase-i-orig-head (2020-11-04) 4 commits - (merged to 'next' on 2020-11-10 at 038a5295f5) - + rebase -i: simplify get_revision_ranges() - + rebase -i: use struct object_id when writing state - + rebase -i: use struct object_id rather than looking up commit - + rebase -i: stop overwriting ORIG_HEAD buffer - - "git rebase -i" did not store ORIG_HEAD correctly. - - Will merge to 'master'. - cf. - - * en/strmap (2020-11-11) 15 commits - - shortlog: use strset from strmap.h - - Use new HASHMAP_INIT macro to simplify hashmap initialization - - strmap: take advantage of FLEXPTR_ALLOC_STR when relevant - - strmap: enable allocations to come from a mem_pool - - strmap: add a strset sub-type - - strmap: split create_entry() out of strmap_put() - - strmap: add functions facilitating use as a string->int map - - strmap: enable faster clearing and reusing of strmaps - - strmap: add more utility functions - - strmap: new utility functions - - hashmap: provide deallocation function names - - hashmap: introduce a new hashmap_partial_clear() - - hashmap: allow re-use after hashmap_free() - - hashmap: adjust spacing to fix argument alignment - - hashmap: add usage documentation explaining hashmap_free[_entries]() + (merged to 'next' on 2020-11-12 at 41519a5f5c) + + shortlog: use strset from strmap.h + + Use new HASHMAP_INIT macro to simplify hashmap initialization + + strmap: take advantage of FLEXPTR_ALLOC_STR when relevant + + strmap: enable allocations to come from a mem_pool + + strmap: add a strset sub-type + + strmap: split create_entry() out of strmap_put() + + strmap: add functions facilitating use as a string->int map + + strmap: enable faster clearing and reusing of strmaps + + strmap: add more utility functions + + strmap: new utility functions + + hashmap: provide deallocation function names + + hashmap: introduce a new hashmap_partial_clear() + + hashmap: allow re-use after hashmap_free() + + hashmap: adjust spacing to fix argument alignment + + hashmap: add usage documentation explaining hashmap_free[_entries]() (this branch is used by en/merge-ort-impl.) A speciailization of hashmap that uses a string as key has been introduced. Hopefully it will see wider use over time. - Will merge to 'next'. - - -* jk/symlinked-dotgitx-files (2020-10-23) 9 commits - (merged to 'next' on 2020-10-26 at c1dd37b024) - + docs: document symlink restrictions for .git* files - + fsck: complain when .gitattributes or .gitignore is a symlink - + verify_path(): disallow symlinks in .gitattributes and .gitignore - + t0060: test obscured .gitattributes and .gitignore matching - + t7450: test .gitmodules symlink matching against obscured names - + t7450: test verify_path() handling of gitmodules - + t7415: rename to expand scope - + fsck_tree(): wrap some long lines - + fsck_tree(): fix shadowed variable - - Originally merged to 'next' on 2020-10-23 - - "git fsck" and the corresponding check done during the transport - learned to ensure that in-tree files like `.gitignore` and - `.gitattributes` are not symbolic links. - - It seems that there are real projects with .gitignore recorded as - symlinks, which may need to loosen the fsck setting. Do we need - to introduce a class that is separate from symlinked .gitmodules - that probably is with potential consequences that is more grave? + Will merge to 'master'. * ak/corrected-commit-date (2020-10-08) 10 commits @@ -833,24 +1039,6 @@ Release tarballs are available at: cf. <685afed6-f01f-5d22-80d4-00fdc11caf0a@gmail.com> cf. <20201103053629.GA13228@Abhishek-Arch> - -* ds/maintenance-part-3 (2020-10-16) 8 commits - (merged to 'next' on 2020-11-10 at fe9475c696) - + maintenance: add troubleshooting guide to docs - + maintenance: use 'incremental' strategy by default - + maintenance: create maintenance.strategy config - + maintenance: add start/stop subcommands - + maintenance: add [un]register subcommands - + for-each-repo: run subcommands on configured repos - + maintenance: add --schedule option and config - + maintenance: optionally skip --auto process - (this branch is used by ds/maintenance-part-4.) - - Parts of "git maintenance" to ease writing crontab entries (and - other scheduling system configuration) for it. - - Will merge to 'master'. - -------------------------------------------------- [Discarded]