@leroysheep / LeeRoySheep / commits / cba7d60fc8

What's cooking (2018/01 #03)

Junio C Hamano committed Jan 23, 2018 at 14:33 UTC cba7d60fc895ad7cffe77f0c17dcc263e320bcde
1 file changed +406 -524
whats-cooking.txt
+406 -524
index d3e8802458..39d7b405e4 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 (Jan 2018, #02; Tue, 9) -X-master-at: 6366dd9000a3f67e47a30d94375a88dabc18ec6f -X-next-at: 55033e839aa0788e7eca704bfa5a1834e6ee1cde +Subject: What's cooking in git.git (Jan 2018, #03; Tue, 23) +X-master-at: 5be1f00a9a701532232f57958efab4be8c959a29 +X-next-at: de0f0111ea2ad3a2b03a378e6272c2ee476a26ed -What's cooking in git.git (Jan 2018, #02; Tue, 9) +What's cooking in git.git (Jan 2018, #03; Tue, 23) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,6 +12,10 @@ Here are the topics that have been cooking. 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. +Many topics in 'next' have been merged to 'master' while others are +tentatively kicked back to 'pu', to give them a chance to be rerolled +if the authors of them wish to do so. + You can find the changes described here in the integration branches of the repositories listed at @@ -20,523 +24,439 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* ab/dc-sha1-loose-ends (2017-12-28) 1 commit - (merged to 'next' on 2018-01-05 at 7186e81793) - + Makefile: NO_OPENSSL=1 should no longer imply BLK_SHA1=1 - - Tying loose ends for the recent integration work of - collision-detecting SHA-1 implementation. - - -* bc/submitting-patches-in-asciidoc (2018-01-03) 1 commit - (merged to 'next' on 2018-01-05 at 92dd960a56) - + doc/SubmittingPatches: improve text formatting - - Doc readability update. - - -* bp/fsmonitor (2017-12-18) 1 commit - (merged to 'next' on 2017-12-27 at ce216e2978) - + p7519: improve check for prerequisite WATCHMAN - - Test fix. - - -* bw/path-doc (2017-12-13) 1 commit - (merged to 'next' on 2017-12-19 at 2cddee77ca) - + path: document path functions +* ab/commit-m-with-fixup (2017-12-22) 2 commits + (merged to 'next' on 2018-01-11 at 41255c464f) + + commit: add support for --fixup <commit> -m"<extra message>" + + commit doc: document that -c, -C, -F and --fixup with -m error - Doc updates. + "git commit --fixup" did not allow "-m<message>" option to be used + at the same time; allow it to annotate resulting commit with more + text. -* bw/protocol-v1 (2018-01-04) 1 commit - (merged to 'next' on 2018-01-05 at 47a5e0039a) - + http: fix v1 protocol tests with apache httpd < 2.4 +* ab/doc-cat-file-e-still-shows-errors (2018-01-10) 1 commit + (merged to 'next' on 2018-01-12 at 080bb1d397) + + cat-file doc: document that -e will return some output - Test fix for a topic already in 'master'. + Doc update. -* cc/skip-to-optional-val (2017-12-11) 7 commits - (merged to 'next' on 2017-12-27 at 1b189d8556) - + t4045: reindent to make helpers readable - + diff: add tests for --relative without optional prefix value - + diff: use skip_to_optional_arg_default() in parsing --relative - + diff: use skip_to_optional_arg_default() - + diff: use skip_to_optional_arg() - + index-pack: use skip_to_optional_arg() - + git-compat-util: introduce skip_to_optional_arg() +* ab/perf-grep-threads (2018-01-04) 1 commit + (merged to 'next' on 2018-01-09 at 91889574fb) + + perf: amend the grep tests to test grep.threads - Introduce a helper to simplify code to parse a common pattern that - expects either "--key" or "--key=<something>". + More perf tests for threaded grep -* db/doc-config-section-names-with-bs (2017-12-22) 1 commit - (merged to 'next' on 2017-12-28 at e744b99449) - + config.txt: document behavior of backslashes in subsections +* as/read-tree-prefix-doc-fix (2018-01-09) 1 commit + (merged to 'next' on 2018-01-12 at 895c72e5c3) + + doc/read-tree: remove obsolete remark Doc update. -* ew/svn-crlf (2017-12-14) 2 commits - (merged to 'next' on 2017-12-27 at 1b81bd634d) - + Merge branch 'svn-crlf' of git://bogomips.org/git-svn into ew/svn-crlf - + git-svn: convert CRLF to LF in commit message to SVN - - "git svn" has been updated to strip CRs in the commit messages, as - recent versions of Subversion rejects them. - +* bw/oidmap-autoinit (2017-12-27) 1 commit + (merged to 'next' on 2018-01-11 at f941e013b4) + + oidmap: ensure map is initialized -* hi/merge-verify-sig-config (2017-12-19) 3 commits - (merged to 'next' on 2017-12-27 at 34360fb1c1) - + t5573, t7612: clean up after unexpected success of 'pull' and 'merge' - (merged to 'next' on 2017-12-14 at cdc511dc36) - + t: add tests for pull --verify-signatures - + merge: add config option for verifySignatures + Code clean-up. - "git merge" learned to pay attention to merge.verifySignatures - configuration variable and pretend as if '--verify-signatures' - option was given from the command line. +* cc/codespeed (2018-01-05) 7 commits + (merged to 'next' on 2018-01-09 at 8578089a2b) + + perf/run: read GIT_PERF_REPO_NAME from perf.repoName + + perf/run: learn to send output to codespeed server + + perf/run: learn about perf.codespeedOutput + + perf/run: add conf_opts argument to get_var_from_env_or_config() + + perf/aggregate: implement codespeed JSON output + + perf/aggregate: refactor printing results + + perf/aggregate: fix checking ENV{GIT_PERF_SUBSECTION} -* jd/fix-strbuf-add-urlencode-bytes (2017-12-22) 1 commit - (merged to 'next' on 2017-12-28 at 7f4f291966) - + strbuf: fix urlencode format string on signed char + "perf" test output can be sent to codespeed server. - Bytes with high-bit set were encoded incorrectly and made - credential helper fail. +* dk/describe-all-output-fix (2017-12-27) 1 commit + (merged to 'next' on 2017-12-28 at c6254494e3) + + describe: prepend "tags/" when describing tags with embedded name -* jh/memihash-opt (2017-12-22) 1 commit - (merged to 'next' on 2017-12-28 at bf96e0d849) - + t/helper/test-lazy-name-hash: fix compilation + An old regression in "git describe --all $annotated_tag^0" has been + fixed. - Squelch compiler warning. +* ew/empty-merge-with-dirty-index (2018-01-09) 1 commit + (merged to 'next' on 2018-01-09 at 6bcda11248) + + Merge branch 'ew/empty-merge-with-dirty-index-maint' into ew/empty-merge-with-dirty-index + (this branch uses ew/empty-merge-with-dirty-index-maint.) -* jh/partial-clone-doc (2017-12-14) 1 commit - (merged to 'next' on 2017-12-27 at 3695847773) - + partial-clone: design doc + "git merge -s recursive" did not correctly abort when the index is + dirty, if the merged tree happened to be the same as the current + HEAD, which has been fixed. -* jk/doc-diff-options (2018-01-04) 1 commit - (merged to 'next' on 2018-01-05 at 11a42ea807) - + docs/diff-options: clarify scope of diff-filter types +* jc/merge-symlink-ours-theirs (2018-01-03) 1 commit + (merged to 'next' on 2018-01-05 at 63ebfc45eb) + + merge: teach -Xours/-Xtheirs to symbolic link merge - Doc update. + "git merge -Xours/-Xtheirs" learned to use our/their version when + resolving a conflicting updates to a symbolic link. -* jk/test-suite-tracing (2017-12-08) 4 commits - (merged to 'next' on 2017-12-27 at 7034a51474) - + t/Makefile: introduce TEST_SHELL_PATH - + test-lib: make "-x" work with "--verbose-log" - + t5615: avoid re-using descriptor 4 - + test-lib: silence "-x" cleanup under bash +* jh/object-filtering (2018-01-08) 1 commit + (merged to 'next' on 2018-01-11 at 56808f6969) + + oidset: don't return value from oidset_init - Assorted fixes around running tests with "-x" tracing option. + Hotfix for a topic already in 'master'. -* js/enhanced-version-info (2017-12-14) 2 commits - (merged to 'next' on 2017-12-27 at a95dd96a78) - + version --build-options: report commit, too, if possible - + version --build-options: also report host CPU +* jk/abort-clone-with-existing-dest (2018-01-03) 4 commits + (merged to 'next' on 2018-01-09 at 3c8e83c3a7) + + clone: do not clean up directories we didn't create + + clone: factor out dir_exists() helper + + t5600: modernize style + + t5600: fix outdated comment about unborn HEAD - "git version --build-options" learned to report the host CPU and - the exact commit object name the binary was built from. + "git clone $there $here" is allowed even when here directory exists + as long as it is an empty directory, but the command incorrectly + removed it upon a failure of the operation. -* js/sequencer-cleanups (2017-12-27) 5 commits - (merged to 'next' on 2017-12-28 at 23c10afb09) - + sequencer: do not invent whitespace when transforming OIDs - + sequencer: report when noop has an argument - + sequencer: remove superfluous conditional - + sequencer: strip bogus LF at end of error messages - + rebase: do not continue when the todo list generation failed +* jm/svn-pushmergeinfo-fix (2017-09-17) 1 commit + (merged to 'next' on 2018-01-05 at 6cb237ea44) + + git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames. - Code cleanup. + "git svn dcommit" did not take into account the fact that a + svn+ssh:// URL with a username@ (typically used for pushing) refers + to the same SVN repository without the username@ and failed when + svn.pushmergeinfo option is set. -* js/test-with-ws-in-path (2018-01-03) 2 commits - (merged to 'next' on 2018-01-05 at 6438e1c186) - + t0302 & t3900: add forgotten quotes - + Allow the test suite to pass in a directory whose name contains spaces +* js/fix-merge-arg-quoting-in-rebase-p (2018-01-05) 1 commit + (merged to 'next' on 2018-01-09 at 91f5601e9c) + + rebase -p: fix quoting when calling `git merge` - Test fixes. + "git rebase -p -X<option>" did not propagate the option properly + down to underlying merge strategy backend. -* jt/transport-hide-vtable (2017-12-14) 2 commits - (merged to 'next' on 2017-12-27 at 8dc27cfb53) - + transport: make transport vtable more private - + clone, fetch: remove redundant transport check +* js/test-with-ws-in-path (2018-01-10) 1 commit + (merged to 'next' on 2018-01-10 at c44db26fe4) + + t3900: add some more quotes - Code clean-up. + Hot fix to a test. -* ks/doc-previous-checkout (2017-12-19) 1 commit - (merged to 'next' on 2017-12-27 at c706239a69) - + Doc/check-ref-format: clarify information about @{-N} syntax +* ma/bisect-leakfix (2018-01-03) 1 commit + (merged to 'next' on 2018-01-09 at 2ef8b59d1b) + + bisect: fix a regression causing a segfault - Doc update. + A hotfix for a recent update that broke 'git bisect'. -* ks/rebase-error-messages (2017-12-19) 3 commits - (merged to 'next' on 2017-12-27 at 80c62260ad) - + rebase: rebasing can also be done when HEAD is detached - + rebase: distinguish user input by quoting it - + rebase: consistently use branch_name variable +* mm/send-email-fallback-to-local-mail-address (2018-01-08) 3 commits + (merged to 'next' on 2018-01-17 at dd4867706b) + + send-email: add test for Linux's get_maintainer.pl + + perl/Git: remove now useless email-address parsing code + + send-email: add and use a local copy of Mail::Address - Error messages from "git rebase" have been somewhat cleaned up. + Instead of maintaining home-grown email address parsing code, ship + a copy of reasonably recent Mail::Address to be used as a fallback + in 'git send-email' when the platform lacks it. -* ld/p4-multiple-shelves (2017-12-22) 1 commit - (merged to 'next' on 2017-12-28 at 6c29703427) - + git-p4: update multiple shelved change lists +* nd/add-i-ignore-submodules (2018-01-16) 1 commit + (merged to 'next' on 2018-01-17 at 632401fd5a) + + add--interactive: ignore submodule changes except HEAD - "git p4" update. + "git add -p" was taught to ignore local changes to submodules as + they do not interfere with the partial addition of regular changes + anyway. -* nm/imap-send-quote-server-folder-name (2017-12-18) 1 commit - (merged to 'next' on 2017-12-27 at 79326a0b77) - + imap-send: URI encode server folder +* nd/ita-wt-renames-in-status (2017-12-27) 6 commits + (merged to 'next' on 2017-12-28 at 7610331a11) + + wt-status.c: handle worktree renames + + wt-status.c: rename rename-related fields in wt_status_change_data + + wt-status.c: catch unhandled diff status codes + + wt-status.c: coding style fix + + Use DIFF_DETECT_RENAME for detect_rename assignments + + t2203: test status output with porcelain v2 format - "git imap-send" did not correctly quote the folder name when - making a request to the server, which has been corrected. + "git status" after moving a path in the working tree (hence making + it appear "removed") and then adding with the -N option (hence + making that appear "added") detected it as a rename, but did not + report the old and new pathnames correctly. -* ra/prompt-eread-fix (2017-12-06) 2 commits - (merged to 'next' on 2017-12-27 at ae870af11d) - + git-prompt: fix reading files with windows line endings - + git-prompt: make __git_eread intended use explicit +* rs/lose-leak-pending (2017-12-28) 9 commits + (merged to 'next' on 2018-01-05 at 05305f7f2f) + + commit: remove unused function clear_commit_marks_for_object_array() + + revision: remove the unused flag leak_pending + + checkout: avoid using the rev_info flag leak_pending + + bundle: avoid using the rev_info flag leak_pending + + bisect: avoid using the rev_info flag leak_pending + + object: add clear_commit_marks_all() + + ref-filter: use clear_commit_marks_many() in do_merge_filter() + + commit: use clear_commit_marks_many() in remove_redundant() + + commit: avoid allocation in clear_commit_marks_many() - Update the shell prompt script (in contrib/) to strip trailing CR - from strings read from various "state" files. + API clean-up around revision traversal. -* rs/use-argv-array-in-child-process (2017-12-22) 2 commits - (merged to 'next' on 2017-12-28 at 829a621ace) - + send-pack: use internal argv_array of struct child_process - + http: use internal argv_array of struct child_process +* sb/diff-blobfind-pickaxe (2018-01-04) 6 commits + (merged to 'next' on 2018-01-09 at 2053890477) + + diff: use HAS_MULTI_BITS instead of counting bits manually + + diff: properly error out when combining multiple pickaxe options + + diffcore: add a pickaxe option to find a specific blob + + diff: introduce DIFF_PICKAXE_KINDS_MASK + + diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit + + diff.h: make pickaxe_opts an unsigned bit field - Code cleanup. + "diff" family of commands learned "--find-object=<object-id>" option + to limit the findings to changes that involve the named object. -* sb/describe-blob (2017-12-19) 7 commits - (merged to 'next' on 2017-12-27 at 1249ca9213) - + builtin/describe.c: describe a blob - + builtin/describe.c: factor out describe_commit - + builtin/describe.c: print debug statements earlier - + builtin/describe.c: rename `oid` to avoid variable shadowing - + revision.h: introduce blob/tree walking in order of the commits - + list-objects.c: factor out traverse_trees_and_blobs - + t6120: fix typo in test name +* sb/submodule-update-reset-fix (2018-01-05) 4 commits + (merged to 'next' on 2018-01-11 at e4e84b69a3) + + submodule: submodule_move_head omits old argument in forced case + + unpack-trees: oneway_merge to update submodules + + t/lib-submodule-update.sh: fix test ignoring ignored files in submodules + + t/lib-submodule-update.sh: clarify test - "git describe" was taught to dig trees deeper to find a - <commit-ish>:<path> that refers to a given blob object. + When resetting the working tree files recursively, the working tree + of submodules are now also reset to match. -* sg/travis-check-untracked (2018-01-03) 2 commits - (merged to 'next' on 2018-01-05 at 424bed2fb0) - + travis-ci: check that all build artifacts are .gitignore-d - + travis-ci: don't store P4 and Git LFS in the working tree - (this branch uses sg/travis-fixes and sg/travis-skip-identical-test.) +* tg/stash-with-pathspec-fix (2018-01-08) 1 commit + (merged to 'next' on 2018-01-11 at abfaa14a7b) + + stash: don't delete untracked files that match pathspec - Will cook in 'next'. + "git stash -- <pathspec>" incorrectly blew away untracked files in + the directory that matched the pathspec, which has been corrected. -* sg/travis-fixes (2017-12-27) 4 commits - (merged to 'next' on 2017-12-28 at 6496308a5b) - + travis-ci: only print test failures if there are test results available - + travis-ci: save prove state for the 32 bit Linux build - + travis-ci: don't install default addon packages for the 32 bit Linux build - + travis-ci: fine tune the use of 'set -x' in 'ci/*' scripts - (this branch is used by sg/travis-check-untracked and sg/travis-skip-identical-test.) +* tg/worktree-create-tracking (2018-01-11) 1 commit + (merged to 'next' on 2018-01-11 at df6423dfc4) + + Documentation/git-worktree.txt: add missing ` - Assorted updates for TravisCI integration. + Doc hotfix. - Will cook in 'next'. +* ys/bisect-object-id-missing-conversion-fix (2018-01-09) 1 commit + (merged to 'next' on 2018-01-11 at ca330c885d) + + bisect: debug: convert struct object to object_id -* sg/travis-skip-identical-test (2018-01-02) 3 commits - (merged to 'next' on 2018-01-05 at 41914fc43e) - + travis-ci: record and skip successfully built trees - + travis-ci: create the cache directory early in the build process - + travis-ci: print the "tip of branch is exactly at tag" message in color - (this branch is used by sg/travis-check-untracked; uses sg/travis-fixes.) + Fix for a commented-out code to adjust it to a rather old API change. - Avoid repeatedly testing the same tree in TravisCI that have been - tested successfully already. +-------------------------------------------------- +[New Topics] - Will cook in 'next'. +* nd/trace-with-env (2018-01-19) 7 commits + - run-command.c: print new cwd in trace_run_command() + - run-command.c: print env vars in trace_run_command() + - run-command.c: print program 'git' when tracing git_cmd mode + - run-command.c: introduce trace_run_command() + - trace.c: move strbuf_release() out of print_trace_line() + - trace: avoid unnecessary quoting + - sq_quote_argv: drop maxlen parameter + The tracing machinery learned to report tweaking of environment + variables as well. -* sr/http-sslverify-config-doc (2017-12-18) 1 commit - (merged to 'next' on 2017-12-27 at 84a461c4b5) - + config: document default value of http.sslVerify + Will merge to 'next'. - Docfix. +* cl/t9001-cleanup (2018-01-12) 1 commit + - t9001: use existing helper in send-email test -* tb/test-lint-wc-l (2017-12-22) 1 commit - (merged to 'next' on 2017-12-28 at 4d91ed6d51) - + check-non-portable-shell.pl: `wc -l` may have leading WS + Test clean-up. - Test update. + Will merge to 'next'. -* tz/lib-git-svn-svnserve-tests (2017-12-14) 2 commits - (merged to 'next' on 2017-12-27 at 54513f6e20) - + t/lib-git-svn.sh: improve svnserve tests with parallel make test - + t/lib-git-svn: cleanup inconsistent tab/space usage +* kg/packed-ref-cache-fix (2018-01-16) 1 commit + - packed_ref_cache: don't use mmap() for small files + Avoid mmapping small files while using packed refs (especially ones + with zero size, which would cause later munmap() to fail). -* ws/curl-http-proxy-over-https (2017-12-19) 1 commit - (merged to 'next' on 2017-12-27 at 895bf2f94b) - + http: support CURLPROXY_HTTPS + Will merge to 'next'. - Git has been taught to support an https:// URL used for http.proxy - when using recent versions of libcurl. --------------------------------------------------- -[New Topics] +* ks/submodule-doc-updates (2018-01-16) 2 commits + - Doc/git-submodule: improve readability and grammar of a sentence + - Doc/gitsubmodules: make some changes to improve readability and syntax -* ab/wildmatch-tests (2018-01-04) 7 commits - (merged to 'next' on 2018-01-09 at 09f0b84098) - + wildmatch test: create & test files on disk in addition to in-memory - + wildmatch test: perform all tests under all wildmatch() modes - + wildmatch test: remove dead fnmatch() test code - + wildmatch test: use a paranoia pattern from nul_match() - + wildmatch test: don't try to vertically align our output - + wildmatch test: use more standard shell style - + wildmatch test: indent with tabs, not spaces + Doc updates. - More tests for wildmatch functions. + Will merge to 'next'. - Will cook in 'next'. +* nd/shared-index-fix (2018-01-22) 3 commits + - read-cache: don't write index twice if we can't write shared index + - read-cache.c: move tempfile creation/cleanup out of write_shared_index + - read-cache.c: change type of "temp" in write_shared_index() -* cc/codespeed (2018-01-05) 7 commits - (merged to 'next' on 2018-01-09 at 5599f7a085) - + perf/run: read GIT_PERF_REPO_NAME from perf.repoName - + perf/run: learn to send output to codespeed server - + perf/run: learn about perf.codespeedOutput - + perf/run: add conf_opts argument to get_var_from_env_or_config() - + perf/aggregate: implement codespeed JSON output - + perf/aggregate: refactor printing results - + perf/aggregate: fix checking ENV{GIT_PERF_SUBSECTION} - "perf" test output can be sent to codespeed server. +* rs/describe-unique-abbrev (2018-01-16) 1 commit + - describe: use strbuf_add_unique_abbrev() for adding short hashes - Will cook in 'next'. + Code clean-up. + Will merge to 'next'. -* rs/lose-leak-pending (2017-12-28) 9 commits - (merged to 'next' on 2018-01-05 at 05305f7f2f) - + commit: remove unused function clear_commit_marks_for_object_array() - + revision: remove the unused flag leak_pending - + checkout: avoid using the rev_info flag leak_pending - + bundle: avoid using the rev_info flag leak_pending - + bisect: avoid using the rev_info flag leak_pending - + object: add clear_commit_marks_all() - + ref-filter: use clear_commit_marks_many() in do_merge_filter() - + commit: use clear_commit_marks_many() in remove_redundant() - + commit: avoid allocation in clear_commit_marks_many() - API clean-up around revision traversal. +* tb/crlf-conv-flags (2018-01-16) 1 commit + - convert_to_git(): safe_crlf/checksafe becomes int conv_flags - Will cook in 'next'. + Code clean-up. + Will merge to 'next'. -* sb/diff-blobfind-pickaxe (2018-01-04) 6 commits - (merged to 'next' on 2018-01-09 at 1c7bace3e7) - + diff: use HAS_MULTI_BITS instead of counting bits manually - + diff: properly error out when combining multiple pickaxe options - + diffcore: add a pickaxe option to find a specific blob - + diff: introduce DIFF_PICKAXE_KINDS_MASK - + diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit - + diff.h: make pickaxe_opts an unsigned bit field - "diff" family of commands learned "--find-object=<object-id>" option - to limit the findings to changes that involve the named object. +* nd/diff-flush-before-warning (2018-01-16) 1 commit + - diff.c: flush stdout before printing rename warnings - Will cook in 'next'. + Avoid showing a warning message in the middle of a line of "git + diff" output. + Will merge to 'next'. -* ab/perf-grep-threads (2018-01-04) 1 commit - (merged to 'next' on 2018-01-09 at 8fe1d71894) - + perf: amend the grep tests to test grep.threads - More perf tests for threaded grep +* rb/hashmap-h-compilation-fix (2018-01-16) 1 commit + - hashmap.h: remove unused variable - Will cook in 'next'. + Code clean-up. + Will merge to 'next'. -* bw/protocol-v2 (2018-01-04) 26 commits - - remote-curl: implement connect-half-duplex command - - remote-curl: create copy of the service name - - pkt-line: add packet_buf_write_len function - - transport-helper: introduce connect-half-duplex - - transport-helper: refactor process_connect_service - - transport-helper: remove name parameter - - fetch-pack: perform a fetch using v2 - - upload-pack: introduce fetch server command - - push: pass ref patterns when pushing - - fetch: pass ref patterns when fetching - - ls-remote: pass ref patterns when requesting a remote's refs - - transport: convert transport_get_remote_refs to take a list of ref patterns - - transport: convert get_refs_list to take a list of ref patterns - - connect: request remote refs using v2 - - ls-refs: introduce ls-refs server command - - serve: introduce git-serve - - protocol: introduce enum protocol_version value protocol_v2 - - transport: store protocol version - - connect: discover protocol version outside of get_remote_heads - - connect: convert get_remote_heads to use struct packet_reader - - transport: use get_refs_via_connect to get refs - - upload-pack: factor out processing lines - - upload-pack: convert to a builtin - - pkt-line: add delim packet support - - pkt-line: introduce struct packet_reader - - pkt-line: introduce packet_read_with_status - The beginning of the next-gen transfer protocol. +* cc/sha1-file-name (2018-01-19) 2 commits + - sha1_file: improve sha1_file_name() perfs + - sha1_file: remove static strbuf from sha1_file_name() + Code clean-up. -* jh/status-no-ahead-behind (2018-01-04) 4 commits - - status: support --no-ahead-behind in long format - - status: update short status to respect --no-ahead-behind - - status: add --[no-]ahead-behind to status and commit for V2 format. - - stat_tracking_info: return +1 when branches not equal + Will merge to 'next'. - Still in flux. +* cl/send-email-reply-to (2018-01-17) 2 commits + - send-email: support separate "Reply-To" address + - send-email: rename variables for "In-reply-to" to $foo_in_reply_to -* jk/abort-clone-with-existing-dest (2018-01-03) 4 commits - (merged to 'next' on 2018-01-09 at 789a55a9e1) - + clone: do not clean up directories we didn't create - + clone: factor out dir_exists() helper - + t5600: modernize style - + t5600: fix outdated comment about unborn HEAD + "git send-email" learned "--reply-to=<address>" option. - "git clone $there $here" is allowed even when here directory exists - as long as it is an empty directory, but the command incorrectly - removed it upon a failure of the operation. + May want to get the log messages updated. + cf. <CAN0heSqxmLoh33i65JPhyQbmPaAcJcwrTCO+ZD4eb+qh8Pf8+w@mail.gmail.com> - Will cook in 'next'. +* ds/use-get-be64 (2018-01-19) 1 commit + - packfile: use get_be64() for large offsets -* ls/checkout-encoding (2018-01-08) 6 commits - - convert: add support for 'checkout-encoding' attribute - - convert_to_git(): safe_crlf/checksafe becomes int conv_flags - - utf8: add function to detect a missing UTF-16/32 BOM - - utf8: add function to detect prohibited UTF-16/32 BOM - - strbuf: add xstrdup_toupper() - - strbuf: remove unnecessary NUL assignment in xstrdup_tolower() + Code clean-up. - The new "checkout-encoding" attribute can ask Git to convert the - contents to the specified encoding when checking out to the working - tree (and the other way around when checking in). + Will merge to 'next'. -* ma/bisect-leakfix (2018-01-03) 1 commit - (merged to 'next' on 2018-01-09 at af04bd5436) - + bisect: fix a regression causing a segfault +* en/merge-recursive-fixes (2018-01-19) 3 commits + - merge-recursive: add explanation for src_entry and dst_entry + - merge-recursive: fix logic ordering issue + - Tighten and correct a few testcases for merging and cherry-picking + (this branch is used by en/rename-directory-detection.) - A hotfix for a recent update that broke 'git bisect'. - Will merge to 'master'. +* jc/worktree-add-short-help (2018-01-17) 1 commit + - worktree: say that "add" takes an arbitrary commit in short-help -* mm/send-email-fallback-to-local-mail-address (2018-01-08) 3 commits - - send-email: add test for Linux's get_maintainer.pl - - perl/Git: remove now useless email-address parsing code - - send-email: add and use a local copy of Mail::Address +* js/rebase-recreate-merge (2018-01-22) 8 commits + - rebase -i: introduce --recreate-merges=no-rebase-cousins + - pull: accept --rebase=recreate to recreate the branch topology + - sequencer: handle autosquash and post-rewrite for merge commands + - rebase: introduce the --recreate-merges option + - rebase-helper --make-script: introduce a flag to recreate merges + - sequencer: fast-forward merge commits, if possible + - sequencer: introduce the `merge` command + - sequencer: introduce new commands to reset the revision - Instead of maintaining home-grown email address parsing code, ship - a copy of reasonably recent Mail::Address to be used as a fallback - in 'git send-email' when the platform lacks it. + "git rebase" learned "--recreate-merges" to transplant the whole + topology of commit graph elsewhere. - Will merge to 'next'. +* jt/http-redact-cookies (2018-01-19) 2 commits + - http: support omitting data from traces + - http: support cookie redaction when tracing -* sb/submodule-update-reset-fix (2018-01-05) 4 commits - - submodule: submodule_move_head omits old argument in forced case - - unpack-trees: oneway_merge to update submodules - - t/lib-submodule-update.sh: fix test ignoring ignored files in submodules - - t/lib-submodule-update.sh: clarify test - - When resetting the working tree files recursively, the working tree - of submodules are now also reset to match. + The http tracing code, often used to debug connection issues, + learned to redact potentially sensitive information from its output + so that it can be more safely sharable. Will merge to 'next'. -* js/fix-merge-arg-quoting-in-rebase-p (2018-01-05) 1 commit - (merged to 'next' on 2018-01-09 at 57950f1843) - + rebase -p: fix quoting when calling `git merge` - - "git rebase -p -X<option>" did not propagate the option properly - down to underlying merge strategy backend. - - Will merge to 'master'. +* mr/packed-ref-store-fix (2018-01-19) 1 commit + - files_initial_transaction_commit(): only unlock if locked - -* as/read-tree-prefix-doc-fix (2018-01-09) 1 commit - - doc/read-tree: remove obsolete remark - - Doc update. + Crash fix for a corner case where an error codepath tried to unlock + what it did not acquire lock on. Will merge to 'next'. -* jh/object-filtering (2018-01-08) 1 commit - - oidset: don't return value from oidset_init +* rs/strbuf-cocci-workaround (2018-01-19) 1 commit + - cocci: use format keyword instead of a literal string - Hotfix for a topic already in 'master'. + Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str) Will merge to 'next'. -* pc/submodule-helper (2018-01-09) 2 commits - - submodule: port submodule subcommand 'deinit' from shell to C - - submodule: port submodule subcommand 'sync' from shell to C +* sg/cocci-move-array (2018-01-22) 1 commit + - Use MOVE_ARRAY - Rewrite two more "git submodule" subcommands in C. + Code clean-up. - Will segfault. - cf. <xmqqpo6i4uns.fsf@gitster.mtv.corp.google.com> + Will merge to 'next'. -* sb/blame-color (2018-01-08) 4 commits - - builtin/blame: highlight recently changed lines - - builtin/blame: add option to color metadata fields separately - - builtin/blame: dim uninteresting metadata - - color.h: document and modernize header +* tg/split-index-fixes (2018-01-19) 3 commits + - travis: run tests with GIT_TEST_SPLIT_INDEX + - split-index: don't write cache tree with null oid entries + - read-cache: fix reading the shared index for other repos + The split-index mode had a few corner case bugs fixed. -* sg/travis-build-during-script-phase (2018-01-08) 1 commit - - travis-ci: build Git during the 'script' phase + Will merge to 'next'. - Still under discussion. - cf. <5DE3FA05-2347-4BE7-8A1A-A6E5FEEC7C2B@gmail.com> +* jt/fsck-code-cleanup (2018-01-23) 1 commit + - fsck: fix leak when traversing trees -* tg/stash-with-pathspec-fix (2018-01-08) 1 commit - - stash: don't delete untracked files that match pathspec +-------------------------------------------------- +[Stalled] - "git stash -- <pathspec>" incorrectly blew away untracked files in - the directory that matched the pathspec, which has been corrected. +* jh/status-no-ahead-behind (2018-01-04) 4 commits + - status: support --no-ahead-behind in long format + - status: update short status to respect --no-ahead-behind + - status: add --[no-]ahead-behind to status and commit for V2 format. + - stat_tracking_info: return +1 when branches not equal - Will merge to 'next'. + Expecting a reroll to finalize the topic. -* ys/bisect-object-id-missing-conversion-fix (2018-01-09) 1 commit - - bisect: debug: convert struct object to object_id +* av/fsmonitor-updates (2018-01-04) 6 commits + - fsmonitor: use fsmonitor data in `git diff` + - fsmonitor: remove debugging lines from t/t7519-status-fsmonitor.sh + - fsmonitor: make output of test-dump-fsmonitor more concise + - fsmonitor: update helper tool, now that flags are filled later + - fsmonitor: stop inline'ing mark_fsmonitor_valid / _invalid + - dir.c: update comments to match argument name - Fix for a commented-out code to adjust it to a rather old API change. + Code clean-up on fsmonitor integration, plus optional utilization + of the fsmonitor data in diff-files. - Will merge to 'next'. + Waiting for an update. + cf. <alpine.DEB.2.21.1.1801042335130.32@MININT-6BKU6QN.europe.corp.microsoft.com> --------------------------------------------------- -[Stalled] * pb/bisect-helper-2 (2017-10-28) 8 commits - t6030: make various test to pass GETTEXT_POISON tests @@ -678,69 +598,90 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* ew/empty-merge-with-dirty-index (2018-01-09) 1 commit - (merged to 'next' on 2018-01-09 at 851bc45d06) - + Merge branch 'ew/empty-merge-with-dirty-index-maint' into ew/empty-merge-with-dirty-index - (this branch uses ew/empty-merge-with-dirty-index-maint.) - - "git merge -s recursive" did not correctly abort when the index is - dirty, if the merged tree happened to be the same as the current - HEAD, which has been fixed. +* ab/wildmatch-tests (2018-01-04) 7 commits + - wildmatch test: create & test files on disk in addition to in-memory + - wildmatch test: perform all tests under all wildmatch() modes + - wildmatch test: remove dead fnmatch() test code + - wildmatch test: use a paranoia pattern from nul_match() + - wildmatch test: don't try to vertically align our output + - wildmatch test: use more standard shell style + - wildmatch test: indent with tabs, not spaces - Will merge to 'master'. + More tests for wildmatch functions. + Expecting an update. + cf. <87vaga9mgf.fsf@evledraar.gmail.com> -* ew/empty-merge-with-dirty-index-maint (2018-01-09) 1 commit - + merge-recursive: do not look at the index during recursive merge - (this branch is used by ew/empty-merge-with-dirty-index.) - "git merge -s recursive" did not correctly abort when the index is - dirty, if the merged tree happened to be the same as the current - HEAD, which has been fixed. - - Will merge to 'master' (as part of the above). +* bw/protocol-v2 (2018-01-04) 26 commits + - remote-curl: implement connect-half-duplex command + - remote-curl: create copy of the service name + - pkt-line: add packet_buf_write_len function + - transport-helper: introduce connect-half-duplex + - transport-helper: refactor process_connect_service + - transport-helper: remove name parameter + - fetch-pack: perform a fetch using v2 + - upload-pack: introduce fetch server command + - push: pass ref patterns when pushing + - fetch: pass ref patterns when fetching + - ls-remote: pass ref patterns when requesting a remote's refs + - transport: convert transport_get_remote_refs to take a list of ref patterns + - transport: convert get_refs_list to take a list of ref patterns + - connect: request remote refs using v2 + - ls-refs: introduce ls-refs server command + - serve: introduce git-serve + - protocol: introduce enum protocol_version value protocol_v2 + - transport: store protocol version + - connect: discover protocol version outside of get_remote_heads + - connect: convert get_remote_heads to use struct packet_reader + - transport: use get_refs_via_connect to get refs + - upload-pack: factor out processing lines + - upload-pack: convert to a builtin + - pkt-line: add delim packet support + - pkt-line: introduce struct packet_reader + - pkt-line: introduce packet_read_with_status + The beginning of the next-gen transfer protocol. -* jc/merge-symlink-ours-theirs (2018-01-03) 1 commit - (merged to 'next' on 2018-01-05 at 63ebfc45eb) - + merge: teach -Xours/-Xtheirs to symbolic link merge - "git merge -Xours/-Xtheirs" learned to use our/their version when - resolving a conflicting updates to a symbolic link. +* ls/checkout-encoding (2018-01-08) 6 commits + - convert: add support for 'checkout-encoding' attribute + - convert_to_git(): safe_crlf/checksafe becomes int conv_flags + - utf8: add function to detect a missing UTF-16/32 BOM + - utf8: add function to detect prohibited UTF-16/32 BOM + - strbuf: add xstrdup_toupper() + - strbuf: remove unnecessary NUL assignment in xstrdup_tolower() - Will cook in 'next'. + The new "checkout-encoding" attribute can ask Git to convert the + contents to the specified encoding when checking out to the working + tree (and the other way around when checking in). -* ab/commit-m-with-fixup (2017-12-22) 2 commits - - commit: add support for --fixup <commit> -m"<extra message>" - - commit doc: document that -c, -C, -F and --fixup with -m error +* pc/submodule-helper (2018-01-16) 2 commits + - submodule: port submodule subcommand 'deinit' from shell to C + - submodule: port submodule subcommand 'sync' from shell to C - "git commit --fixup" did not allow "-m<message>" option to be used - at the same time; allow it to annotate resulting commit with more - text. + Rewrite two more "git submodule" subcommands in C. Will merge to 'next'. -* bw/oidmap-autoinit (2017-12-27) 1 commit - - oidmap: ensure map is initialized - - Code clean-up. - - Will merge to 'next'. - +* sb/blame-color (2018-01-08) 4 commits + - builtin/blame: highlight recently changed lines + - builtin/blame: add option to color metadata fields separately + - builtin/blame: dim uninteresting metadata + - color.h: document and modernize header -* dk/describe-all-output-fix (2017-12-27) 1 commit - (merged to 'next' on 2017-12-28 at c6254494e3) - + describe: prepend "tags/" when describing tags with embedded name - An old regression in "git describe --all $annotated_tag^0" has been - fixed. +* sg/travis-build-during-script-phase (2018-01-08) 1 commit + - travis-ci: build Git during the 'script' phase - Will cook in 'next'. + Still under discussion. + cf. <5DE3FA05-2347-4BE7-8A1A-A6E5FEEC7C2B@gmail.com> -* nd/fix-untracked-cache-invalidation (2018-01-04) 5 commits +* nd/fix-untracked-cache-invalidation (2018-01-19) 6 commits + - dir.c: print correct errno when opendir() fails - dir.c: stop ignoring opendir() error in open_cached_dir() - update-index doc: note a fixed bug in the untracked cache - dir.c: fix missing dir invalidation in untracked code @@ -749,24 +690,8 @@ of the repositories listed at Some bugs around "untracked cache" feature have been fixed. - Will merge to 'next'. - - -* nd/ita-wt-renames-in-status (2017-12-27) 6 commits - (merged to 'next' on 2017-12-28 at 7610331a11) - + wt-status.c: handle worktree renames - + wt-status.c: rename rename-related fields in wt_status_change_data - + wt-status.c: catch unhandled diff status codes - + wt-status.c: coding style fix - + Use DIFF_DETECT_RENAME for detect_rename assignments - + t2203: test status output with porcelain v2 format - - "git status" after moving a path in the working tree (hence making - it appear "removed") and then adding with the -N option (hence - making that appear "added") detected it as a rename, but did not - report the old and new pathnames correctly. - - Will cook in 'next'. + Kicked back to 'pu' for a reroll. + cf. <CACsJy8AecDh6Bxo6xCBG+4AY5GCdtZgb2Cs2QXo5MYZvD7XKcQ@mail.gmail.com> * np/send-email-header-parsing (2017-12-15) 1 commit @@ -777,23 +702,8 @@ of the repositories listed at Undecided. -* av/fsmonitor-updates (2018-01-04) 6 commits - - fsmonitor: use fsmonitor data in `git diff` - - fsmonitor: remove debugging lines from t/t7519-status-fsmonitor.sh - - fsmonitor: make output of test-dump-fsmonitor more concise - - fsmonitor: update helper tool, now that flags are filled later - - fsmonitor: stop inline'ing mark_fsmonitor_valid / _invalid - - dir.c: update comments to match argument name - - Code clean-up on fsmonitor integration, plus optional utilization - of the fsmonitor data in diff-files. - - Undecided. - cf. <alpine.DEB.2.21.1.1801042335130.32@MININT-6BKU6QN.europe.corp.microsoft.com> - - * ab/sha1dc-build (2017-12-12) 4 commits - - Makefile: use the sha1collisiondetection submodule by default + . Makefile: use the sha1collisiondetection submodule by default - sha1dc_git.h: re-arrange an ifdef chain for a subsequent change - Makefile: under "make dist", include the sha1collisiondetection submodule - Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto @@ -806,21 +716,20 @@ of the repositories listed at * ab/simplify-perl-makefile (2018-01-03) 3 commits - (merged to 'next' on 2018-01-03 at ecd1f51af2) + (merged to 'next' on 2018-01-23 at 1506e0651a) + perl: treat PERLLIB_EXTRA as an extra path again - (merged to 'next' on 2017-12-28 at d189d91ec6) + perl: avoid *.pmc and fix Error.pm further - (merged to 'next' on 2017-12-13 at 1b791d2503) + Makefile: replace perl/Makefile.PL with simple make rules + Originally merged to 'next' on 2018-01-03 + The build procedure for perl/ part has been greatly simplified by weaning ourselves off of MakeMaker. Will cook in 'next'. -* en/rename-directory-detection (2017-12-13) 35 commits - - SQUASH??? +* en/rename-directory-detection (2018-01-19) 31 commits - merge-recursive: ensure we write updates for directory-renamed file - merge-recursive: avoid spurious rename/rename conflict from dir renames - directory rename detection: new testcases showcasing a pair of bugs @@ -852,9 +761,7 @@ of the repositories listed at - directory rename detection: testcases to avoid taking detection too far - directory rename detection: directory splitting testcases - directory rename detection: basic testcases - - merge-recursive: add explanation for src_entry and dst_entry - - merge-recursive: fix logic ordering issue - - Tighten and correct a few testcases for merging and cherry-picking + (this branch uses en/merge-recursive-fixes.) Rename detection logic in "diff" family that is used in "merge" has learned to guess when all of x/a, x/b and x/c have moved to z/a, @@ -862,24 +769,21 @@ of the repositories listed at want to move to z/d by taking the hint that the entire directory 'x' moved to 'z'. - A rerolled version exists; it needs to be picked up. - - -* pw/sequencer-in-process-commit (2017-12-22) 11 commits - (merged to 'next' on 2017-12-28 at c496b3fa29) - + sequencer: assign only free()able strings to gpg_sign - (merged to 'next' on 2017-12-13 at ec4d2b9c84) - + sequencer: improve config handling - (merged to 'next' on 2017-12-06 at a4212f7ebd) - + t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 - + sequencer: try to commit without forking 'git commit' - + sequencer: load commit related config - + sequencer: simplify adding Signed-off-by: trailer - + commit: move print_commit_summary() to libgit - + commit: move post-rewrite code to libgit - + Add a function to update HEAD after creating a commit - + commit: move empty message checks to libgit - + t3404: check intermediate squash messages + +* pw/sequencer-in-process-commit (2018-01-23) 13 commits + - sequencer: run 'prepare-commit-msg' hook + - t7505: add tests for cherry-pick and rebase -i/-p + - sequencer: assign only free()able strings to gpg_sign + - sequencer: improve config handling + - t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 + - sequencer: try to commit without forking 'git commit' + - sequencer: load commit related config + - sequencer: simplify adding Signed-off-by: trailer + - commit: move print_commit_summary() to libgit + - commit: move post-rewrite code to libgit + - Add a function to update HEAD after creating a commit + - commit: move empty message checks to libgit + - t3404: check intermediate squash messages The sequencer infrastructure is shared across "git cherry-pick", "git rebase -i", etc., and has always spawned "git commit" when it @@ -888,45 +792,51 @@ of the repositories listed at gives performance boost for a few tens of percents in some sample scenarios. - Will cook in 'next'. - * jh/fsck-promisors (2017-12-08) 10 commits - - gc: do not repack promisor packfiles - - rev-list: support termination at promisor objects - - sha1_file: support lazily fetching missing objects - - introduce fetch-object: fetch one promisor object - - index-pack: refactor writing of .keep files - - fsck: support promisor objects as CLI argument - - fsck: support referenced promisor objects - - fsck: support refs pointing to promisor objects - - fsck: introduce partialclone extension - - extension.partialclone: introduce partial clone extension + (merged to 'next' on 2018-01-23 at ca59f5c18e) + + gc: do not repack promisor packfiles + + rev-list: support termination at promisor objects + + sha1_file: support lazily fetching missing objects + + introduce fetch-object: fetch one promisor object + + index-pack: refactor writing of .keep files + + fsck: support promisor objects as CLI argument + + fsck: support referenced promisor objects + + fsck: support refs pointing to promisor objects + + fsck: introduce partialclone extension + + extension.partialclone: introduce partial clone extension (this branch is used by jh/partial-clone.) + Originally merged to 'next' on 2018-01-17 + In preparation for implementing narrow/partial clone, the machinery for checking object connectivity used by gc and fsck has been taught that a missing object is OK when it is referenced by a packfile specially marked as coming from trusted repository that promises to make them available on-demand and lazily. + Will cook in 'next'. + * jh/partial-clone (2017-12-08) 13 commits - - t5616: test bulk prefetch after partial fetch - - fetch: inherit filter-spec from partial clone - - t5616: end-to-end tests for partial clone - - fetch-pack: restore save_commit_buffer after use - - unpack-trees: batch fetching of missing blobs - - clone: partial clone - - partial-clone: define partial clone settings in config - - fetch: support filters - - fetch: refactor calculation of remote list - - fetch-pack: test support excluding large blobs - - fetch-pack: add --no-filter - - fetch-pack, index-pack, transport: partial clone - - upload-pack: add object filtering for partial clone + (merged to 'next' on 2018-01-23 at de0f0111ea) + + t5616: test bulk prefetch after partial fetch + + fetch: inherit filter-spec from partial clone + + t5616: end-to-end tests for partial clone + + fetch-pack: restore save_commit_buffer after use + + unpack-trees: batch fetching of missing blobs + + clone: partial clone + + partial-clone: define partial clone settings in config + + fetch: support filters + + fetch: refactor calculation of remote list + + fetch-pack: test support excluding large blobs + + fetch-pack: add --no-filter + + fetch-pack, index-pack, transport: partial clone + + upload-pack: add object filtering for partial clone (this branch uses jh/fsck-promisors.) + Originally merged to 'next' on 2018-01-17 + The machinery to clone & fetch, which in turn involves packing and unpacking objects, have been told how to omit certain objects using the filtering mechanism introduced by the jh/object-filtering @@ -934,6 +844,8 @@ of the repositories listed at tolerate missing objects, taking advantage of the mechanism introduced by the jh/fsck-promisors topic. + Will cook in 'next'. + * ot/mru-on-list (2017-10-01) 1 commit - mru: use double-linked list from list.h @@ -941,38 +853,5 @@ of the repositories listed at The first step to getting rid of mru API and using the doubly-linked list API directly instead. - Is there any remaining issues on this one? - - -* jm/svn-pushmergeinfo-fix (2017-09-17) 1 commit - (merged to 'next' on 2018-01-05 at 6cb237ea44) - + git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames. - - "git svn dcommit" did not take into account the fact that a - svn+ssh:// URL with a username@ (typically used for pushing) refers - to the same SVN repository without the username@ and failed when - svn.pushmergeinfo option is set. - - Will cook in 'next'. - --------------------------------------------------- -[Discarded] - -* rs/revision-keep-pending (2017-12-19) 1 commit - (merged to 'next' on 2017-12-27 at 20a9527941) - + revision: introduce prepare_revision_walk_extended() - - Reverted out of 'next' to give a chance to its reworked successor, - queued on the rs/lose-leak-pending topic. - - -* sb/diff-blobfind (2017-12-12) 1 commit - (merged to 'next' on 2017-12-13 at 9a27a20c5f) - + diffcore: add a filter to find a specific blob - - "git diff" family of commands learned --blobfind=<object-name> that - allows you to limit the output only to a change that involves the - named blob object (either changing the contents from or to it). - - Reverted out of 'next' to give a chance to its reworked successor, - queued on the sb/diff-blobfind-pickaxe topic. + A follow-up is being worked on; it seems to be almost ready. + cf. <20180122073701.h7fh7xrkmnzndzj7@untitled>