What's cooking (2021/10 #01)

todo
Junio C Hamano 2021-10-04 14:38:34 -07:00
parent 41f1695ffe
commit dc6f74fae2
1 changed files with 424 additions and 338 deletions

View File

@ -1,10 +1,10 @@
To: git@vger.kernel.org
Bcc: lwn@lwn.net
Subject: What's cooking in git.git (Sep 2021, #09; Thu, 30)
X-master-at: cefe983a320c03d7843ac78e73bd513a27806845
X-next-at: 93a45727a2bf02ed8222a19bc9fdad4616d68eed
Subject: What's cooking in git.git (Oct 2021, #01; Mon, 4)
X-master-at: 0785eb769886ae81e346df10e88bc49ffc0ac64e
X-next-at: a309979bdfa2728e6961a1392c14b7ffd5cb9fa6

What's cooking in git.git (Sep 2021, #09; Thu, 30)
What's cooking in git.git (Oct 2021, #01; Mon, 4)
--------------------------------------------------

Here are the topics that have been cooking in my tree. Commits
@ -18,6 +18,9 @@ useful"). Do not read too much into a topic being in (or not in)
'seen'. The ones marked with '.' do not appear in any of the
integration branches, but I am still holding onto them.

Quite a few topics have graduated to 'master' and a handful of
topics are getting readied for 'next'.

Copies of the source code to Git live in many repositories, and the
following is a list of the ones I push into or their mirrors. Some
repositories have only a subset of branches.
@ -49,139 +52,266 @@ Release tarballs are available at:
--------------------------------------------------
[Graduated to 'master']

* cb/unicode-14 (2021-09-17) 1 commit
(merged to 'next' on 2021-09-20 at 7873b310ad)
+ unicode: update the width tables to Unicode 14
* ab/auto-depend-with-pedantic (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at 532f2aa26e)
+ Makefile: make COMPUTE_HEADER_DEPENDENCIES=auto work with DEVOPTS=pedantic

The unicode character width table (used for output alignment) has
been updated.
Improve build procedure for developers.


* en/typofixes (2021-09-20) 2 commits
(merged to 'next' on 2021-09-20 at 48648dafa3)
+ merge-ort: fix completely wrong comment
+ trace2.h: fix trivial comment typo
* ab/bundle-remove-verbose-option (2021-09-23) 1 commit
(merged to 'next' on 2021-09-28 at 8251d269a2)
+ bundle: remove ignored & undocumented "--verbose" flag

Typofixes.
Doc update.


* jk/reduce-malloc-in-v2-servers (2021-09-15) 12 commits
(merged to 'next' on 2021-09-16 at 40cfe41efc)
+ ls-refs: reject unknown arguments
+ serve: reject commands used as capabilities
+ serve: reject bogus v2 "command=ls-refs=foo"
+ docs/protocol-v2: clarify some ls-refs ref-prefix details
+ ls-refs: ignore very long ref-prefix counts
+ serve: drop "keys" strvec
+ serve: provide "receive" function for session-id capability
+ serve: provide "receive" function for object-format capability
+ serve: add "receive" method for v2 capabilities table
+ serve: return capability "value" from get_capability()
+ serve: rename is_command() to parse_command()
+ Merge branch 'ab/serve-cleanup' into jk/reduce-malloc-in-v2-servers
* ab/make-clean-depend-dirs (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at 20483ade7d)
+ Makefile: clean .depend dirs under COMPUTE_HEADER_DEPENDENCIES != yes

Code cleanup to limit memory consumption and tighten protocol
message parsing.
"make clean" has been updated to remove leftover .depend/
directories, even when it is not told to use them to compute header
dependencies.


* ab/make-compdb-fix (2021-09-27) 1 commit
(merged to 'next' on 2021-09-29 at b3439753df)
+ Makefile: pass -Wno-pendantic under GENERATE_COMPILATION_DATABASE=yes

Build update.


* ab/refs-files-cleanup (2021-08-25) 13 commits
(merged to 'next' on 2021-09-23 at eb5668523f)
+ refs/files: remove unused "errno != ENOTDIR" condition
+ refs/files: remove unused "errno == EISDIR" code
+ refs/files: remove unused "oid" in lock_ref_oid_basic()
+ refs API: remove OID argument to reflog_expire()
+ reflog expire: don't lock reflogs using previously seen OID
+ refs/files: add a comment about refs_reflog_exists() call
+ refs: make repo_dwim_log() accept a NULL oid
+ refs/debug: re-indent argument list for "prepare"
+ refs/files: remove unused "skip" in lock_raw_ref() too
+ refs/files: remove unused "extras/skip" in lock_ref_oid_basic()
+ refs: drop unused "flags" parameter to lock_ref_oid_basic()
+ refs/files: remove unused REF_DELETING in lock_ref_oid_basic()
+ refs/packet: add missing BUG() invocations to reflog callbacks
(this branch is used by ab/refs-errno-cleanup and hn/refs-errno-cleanup.)

Continued work on top of the hn/refs-errno-cleanup topic.


* ah/connect-parse-feature-v0-fix (2021-09-27) 1 commit
(merged to 'next' on 2021-09-29 at 93a45727a2)
+ connect: also update offset for features without values

Protocol v0 clients can get stuck parsing a malformed feature line.


* bs/difftool-msg-tweak (2021-09-22) 1 commit
(merged to 'next' on 2021-09-29 at 22d485e560)
+ difftool: fix word spacing in the usage strings

Message tweak.


* bs/ls-files-opt-help-text-update (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at d27c228644)
+ ls-files: use imperative mood for -X and -z option description

Help text for "ls-files" options have been updated.


* cb/cvsserver (2021-09-16) 3 commits
(merged to 'next' on 2021-09-23 at 98f5f3f9cf)
+ Documentation: cleanup git-cvsserver
+ git-cvsserver: protect against NULL in crypt(3)
+ git-cvsserver: use crypt correctly to compare password hashes

"git cvsserver" had a long-standing bug in its authentication code,
which has finally been corrected (it is unclear and is a separate
question if anybody is seriously using it, though).


* da/difftool-dir-diff-symlink-fix (2021-09-23) 1 commit
(merged to 'next' on 2021-09-28 at e2170ed0d7)
+ difftool: fix symlink-file writing in dir-diff mode
(this branch is used by da/difftool.)

"git difftool --dir-diff" mishandled symbolic links.


* ds/perf-test-built-path-fix (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at 18a21483d9)
+ t/perf/run: fix bin-wrappers computation

Perf test fix.


* en/stash-df-fix (2021-09-10) 3 commits
(merged to 'next' on 2021-09-20 at 513c11fb11)
+ stash: restore untracked files AFTER restoring tracked files
+ stash: avoid feeding directories to update-index
+ t3903: document a pair of directory/file bugs

"git stash", where the tentative change involves changing a
directory to a file (or vice versa), was confused, which has been
corrected.


* hn/refs-errno-cleanup (2021-08-25) 4 commits
(merged to 'next' on 2021-09-23 at 502e6b6b08)
+ refs: make errno output explicit for read_raw_ref_fn
+ refs/files-backend: stop setting errno from lock_ref_oid_basic
+ refs: remove EINVAL errno output from specification of read_raw_ref_fn
+ refs file backend: move raceproof_create_file() here
(this branch is used by ab/refs-errno-cleanup; uses ab/refs-files-cleanup.)

Futz with the way 'errno' is relied on in the refs API to carry the
failure modes up the call chain.


* jk/clone-unborn-head-in-bare (2021-09-20) 1 commit
(merged to 'next' on 2021-09-20 at 93c93b8d51)
+ clone: handle unborn branch in bare repos

"git clone" from a repository whose HEAD is unborn into a bare
repository didn't follow the branch name the other side used, which
is corrected.


* jk/http-redact-fix (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at ef4570a5d1)
+ http: match headers case-insensitively when redacting

Sensitive data in the HTTP trace were supposed to be redacted, but
we failed to do so in HTTP/2 requests.


* jx/ci-l10n (2021-09-09) 1 commit
(merged to 'next' on 2021-09-23 at b2d7f5eecb)
+ ci: new github-action for git-l10n code review

CI help for l10n.


* rs/close-pack-leakfix (2021-09-24) 1 commit
(merged to 'next' on 2021-09-28 at b14502faa0)
+ packfile: release bad_objects in close_pack()

Leakfix.

--------------------------------------------------
[New Topics]

* ab/designated-initializers (2021-09-27) 5 commits
- cbtree.h: define cb_init() in terms of CBTREE_INIT
- *.h: move some *_INIT to designated initializers
- *.h _INIT macros: don't specify fields equal to 0
- *.[ch] *_INIT macros: use { 0 } for a "zero out" idiom
- submodule-config.h: remove unused SUBMODULE_INIT macro
(this branch is used by ab/designated-initializers-more.)
* ab/retire-decl-of-missing-unused-funcs (2021-10-01) 4 commits
(merged to 'next' on 2021-10-03 at a49287eaa9)
+ config.h: remove unused git_config_get_untracked_cache() declaration
+ log-tree.h: remove unused function declarations
+ grep.h: remove unused grep_threads_ok() declaration
+ builtin.h: remove cmd_tar_tree() declaration

Code clean-up.
Remove external declaration of functions that no longer exist.

Will merge to 'master'.


* pw/fix-some-issues-in-reset-head (2021-10-01) 12 commits
- rebase -m: don't fork git checkout
- rebase --apply: set ORIG_HEAD correctly
- rebase --apply: fix reflog
- reset_head(): take struct rebase_head_opts
- rebase: cleanup reset_head() calls
- reset_head(): make default_reflog_action optional
- reset_head(): factor out ref updates
- reset_head(): remove action parameter
- reset_head(): don't run checkout hook if there is an error
- reset_head(): fix checkout
- rebase: factor out checkout for up to date branch
- Merge branch 'pw/rebase-of-a-tag-fix' into pw/fix-some-issues-in-reset-head
(this branch uses pw/rebase-of-a-tag-fix.)

Fix "some issues" in a helper function reset_head().

Expecting a reroll.
Needs a lot better explanation, including what the issues are,
which codepaths the helper is used and to do what, and tests to
protect the fixes.


* rs/mergesort (2021-10-01) 9 commits
(merged to 'next' on 2021-10-03 at 29a672574f)
+ mergesort: use ranks stack
+ p0071: test performance of llist_mergesort()
+ p0071: measure sorting of already sorted and reversed files
+ test-mergesort: add unriffle_skewed mode
+ test-mergesort: add unriffle mode
+ test-mergesort: add generate subcommand
+ test-mergesort: add test subcommand
+ test-mergesort: add sort subcommand
+ test-mergesort: use strbuf_getline()

The mergesort implementation used to sort linked list has been
optimized.

Will merge to 'master'.


* bs/doc-blame-color-lines (2021-10-01) 2 commits
- blame: document --color-* options
- blame: describe default output format

The "--color-lines" and "--color-by-age" options of "git blame"
have been missing, which are now documented.

Expecting a reroll.
cf. <CAPig+cSWutBRQK+Qy=nkaDZRvy4trVNPuo+cF-quC2rBwNe2fw@mail.gmail.com>


* mr/bisect-in-c-4 (2021-10-01) 1 commit
- bisect--helper: add space between colon and following sentence

Message fix.

Will merge to 'next'.


* ab/designated-initializers-more (2021-09-27) 6 commits
- builtin/remote.c: add and use SHOW_INFO_INIT
- builtin/remote.c: add and use a REF_STATES_INIT
- urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT
- builtin/blame.c: refactor commit_info_init() to COMMIT_INFO_INIT macro
- daemon.c: refactor hostinfo_init() to HOSTINFO_INIT macro
- Merge branch 'ab/designated-initializers' into ab/designated-initializers-more
(this branch uses ab/designated-initializers.)
* cm/save-restore-terminal (2021-10-04) 2 commits
- editor: save and reset terminal after calling EDITOR
- terminal: teach git how to save/restore its terminal settings

Code clean-up.

What's the status of this one? Meh?


* lh/systemd-timers (2021-09-27) 1 commit
- maintenance: fix test t7900-maintenance.sh

Testfix.
An editor session launched during a Git operation (e.g. during 'git
commit') can leave the terminal in a funny state. The code path
has updated to save the terminal state before, and restore it
after, it spawns an editor.

Will merge to 'next'.


* os/status-docfix (2021-09-28) 1 commit
- doc: fix capitalization in "git status --porcelain=v2" description
* rs/p3400-lose-tac (2021-10-03) 1 commit
- p3400: stop using tac(1)

Docfix.
Test portability update.

Will merge to 'next'.


* ab/parse-options-cleanup (2021-09-28) 10 commits
- parse-options: change OPT_{SHORT,UNSET} to an enum
- parse-options tests: test optname() output
- parse-options.[ch]: make opt{bug,name}() "static"
- commit-graph: stop using optname()
- parse-options.c: move optname() earlier in the file
- parse-options.h: make the "flags" in "struct option" an enum
- parse-options.c: use exhaustive "case" arms for "enum parse_opt_type"
- parse-options.[ch]: consistently use "enum parse_opt_result"
- parse-options.[ch]: consistently use "enum parse_opt_flags"
- parse-options.h: move PARSE_OPT_SHELL_EVAL between enums
* ja/doc-status-types-and-copies (2021-10-04) 4 commits
- Documentation/git-status: mention how to detect copies
- Documentation/git-status: document porcelain status T (typechange)
- Documentation/diff-format: state in which cases porcelain status is T
- Documentation/git-status: remove impossible porcelain status DR and DC

Random changes to parse-options implementation.

What's the status of this one? Meh?


* ab/retire-git-config-key-is-valid (2021-09-28) 1 commit
- config.c: remove unused git_config_key_is_valid()

Code cleanup.
A few kinds of changes "git status" can show were not described.

Will merge to 'next'.


* ab/retire-refs-unused-funcs (2021-09-28) 5 commits
- refs/ref-cache.[ch]: remove "incomplete" from create_dir_entry()
- refs/ref-cache.c: remove "mkdir" parameter from find_containing_dir()
- refs/ref-cache.[ch]: remove unused add_ref_entry()
- refs/ref-cache.[ch]: remove unused remove_entry_from_dir()
- refs.[ch]: remove unused ref_storage_backend_exists()
* tb/aggregate-ignore-leading-whitespaces (2021-10-04) 1 commit
- t/perf/aggregate.perl: tolerate leading spaces

Code cleanup.

Will merge to 'next'.


* ab/retire-string-list-init (2021-09-28) 1 commit
- string-list.[ch]: remove string_list_init() compatibility function

Code cleanup.

Will merge to 'next'.


* mt/grep-submodule-textconv (2021-09-29) 1 commit
- grep: demonstrate bug with textconv attributes and submodules

"git grep --recurse-submodules" takes trees and blobs from the
submodule repository, but the textconv settings when processing a
blob from the submodule is not taken from the submodule repository.
A demonstration is added to demonstrate the issue, without fixing
it.
Test portability update.

Will merge to 'next'.

@ -206,6 +336,113 @@ Release tarballs are available at:
--------------------------------------------------
[Cooking]

* ab/designated-initializers (2021-09-27) 5 commits
(merged to 'next' on 2021-10-03 at 179f652de6)
+ cbtree.h: define cb_init() in terms of CBTREE_INIT
+ *.h: move some *_INIT to designated initializers
+ *.h _INIT macros: don't specify fields equal to 0
+ *.[ch] *_INIT macros: use { 0 } for a "zero out" idiom
+ submodule-config.h: remove unused SUBMODULE_INIT macro
(this branch is used by ab/designated-initializers-more.)

Code clean-up.

Will merge to 'master'.


* ab/designated-initializers-more (2021-10-01) 6 commits
- builtin/remote.c: add and use SHOW_INFO_INIT
- builtin/remote.c: add and use a REF_STATES_INIT
- urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT
- builtin/blame.c: refactor commit_info_init() to COMMIT_INFO_INIT macro
- daemon.c: refactor hostinfo_init() to HOSTINFO_INIT macro
- Merge branch 'ab/designated-initializers' into ab/designated-initializers-more
(this branch uses ab/designated-initializers.)

Code clean-up.

Will merge to 'next'?


* lh/systemd-timers (2021-09-27) 1 commit
(merged to 'next' on 2021-10-03 at 81834609ea)
+ maintenance: fix test t7900-maintenance.sh

Testfix.

Will merge to 'master'.


* os/status-docfix (2021-09-28) 1 commit
(merged to 'next' on 2021-10-03 at a13019916a)
+ doc: fix capitalization in "git status --porcelain=v2" description

Docfix.

Will merge to 'master'.


* ab/parse-options-cleanup (2021-10-01) 11 commits
- parse-options: change OPT_{SHORT,UNSET} to an enum
- parse-options tests: test optname() output
- parse-options.[ch]: make opt{bug,name}() "static"
- commit-graph: stop using optname()
- parse-options.c: move optname() earlier in the file
- parse-options.h: make the "flags" in "struct option" an enum
- parse-options.c: use exhaustive "case" arms for "enum parse_opt_type"
- parse-options.c: use exhaustive "case" arms for "enum parse_opt_result"
- parse-options.[ch]: consistently use "enum parse_opt_result"
- parse-options.[ch]: consistently use "enum parse_opt_flags"
- parse-options.h: move PARSE_OPT_SHELL_EVAL between enums

Random changes to parse-options implementation.

Will merge to 'next'?


* ab/retire-git-config-key-is-valid (2021-09-28) 1 commit
(merged to 'next' on 2021-10-03 at fc7a0a55d1)
+ config.c: remove unused git_config_key_is_valid()

Code cleanup.

Will merge to 'master'.


* ab/retire-refs-unused-funcs (2021-09-28) 5 commits
(merged to 'next' on 2021-10-03 at f91e74fa7d)
+ refs/ref-cache.[ch]: remove "incomplete" from create_dir_entry()
+ refs/ref-cache.c: remove "mkdir" parameter from find_containing_dir()
+ refs/ref-cache.[ch]: remove unused add_ref_entry()
+ refs/ref-cache.[ch]: remove unused remove_entry_from_dir()
+ refs.[ch]: remove unused ref_storage_backend_exists()

Code cleanup.

Will merge to 'master'.


* ab/retire-string-list-init (2021-09-28) 1 commit
(merged to 'next' on 2021-10-03 at 4834949cc3)
+ string-list.[ch]: remove string_list_init() compatibility function

Code cleanup.

Will merge to 'master'.


* mt/grep-submodule-textconv (2021-09-29) 1 commit
- grep: demonstrate bug with textconv attributes and submodules

"git grep --recurse-submodules" takes trees and blobs from the
submodule repository, but the textconv settings when processing a
blob from the submodule is not taken from the submodule repository.
A demonstration is added to demonstrate the issue, without fixing
it.

Will merge to 'next'.


* es/superproject-aware-submodules (2021-08-19) 5 commits
- fixup! introduce submodule.superprojectGitDir record
- submodule: record superproject gitdir during 'update'
@ -220,7 +457,7 @@ Release tarballs are available at:
of 'seen', without the conflicting ar/submodule-update topic.


* ab/fsck-unexpected-type (2021-09-30) 17 commits
* ab/fsck-unexpected-type (2021-10-01) 17 commits
- fsck: report invalid object type-path combinations
- fsck: don't hard die on invalid object types
- object-file.c: stop dying in parse_loose_header()
@ -245,15 +482,6 @@ Release tarballs are available at:
Will merge to 'next'?


* ab/bundle-remove-verbose-option (2021-09-23) 1 commit
(merged to 'next' on 2021-09-28 at 8251d269a2)
+ bundle: remove ignored & undocumented "--verbose" flag

Doc update.

Will merge to 'master'.


* ab/config-based-hooks-1 (2021-09-27) 8 commits
- hook-list.h: add a generated list of hooks, like config-list.h
- hook.c users: use "hook_exists()" instead of "find_hook()"
@ -266,47 +494,42 @@ Release tarballs are available at:

Mostly preliminary clean-up in the hook API.


* ab/http-pinned-public-key-mismatch (2021-09-27) 1 commit
- http: check CURLE_SSL_PINNEDPUBKEYNOTMATCH when emitting errors

HTTPS error handling updates.

Will merge to 'next'.


* ab/make-compdb-fix (2021-09-27) 1 commit
(merged to 'next' on 2021-09-29 at b3439753df)
+ Makefile: pass -Wno-pendantic under GENERATE_COMPILATION_DATABASE=yes
* ab/http-pinned-public-key-mismatch (2021-09-27) 1 commit
(merged to 'next' on 2021-10-03 at cd67328eed)
+ http: check CURLE_SSL_PINNEDPUBKEYNOTMATCH when emitting errors

Build update.
HTTPS error handling updates.

Will merge to 'master'.


* jk/ref-paranoia (2021-09-27) 16 commits
- refs: drop "broken" flag from for_each_fullref_in()
- ref-filter: drop broken-ref code entirely
- ref-filter: stop setting FILTER_REFS_INCLUDE_BROKEN
- repack, prune: drop GIT_REF_PARANOIA settings
- refs: turn on GIT_REF_PARANOIA by default
- refs: omit dangling symrefs when using GIT_REF_PARANOIA
- refs: add DO_FOR_EACH_OMIT_DANGLING_SYMREFS flag
- refs-internal.h: reorganize DO_FOR_EACH_* flag documentation
- refs-internal.h: move DO_FOR_EACH_* flags next to each other
- t5312: be more assertive about command failure
- t5312: test non-destructive repack
- t5312: create bogus ref as necessary
- t5312: drop "verbose" helper
- t5600: provide detached HEAD for corruption failures
- t5516: don't use HEAD ref for invalid ref-deletion tests
- t7900: clean up some more broken refs
(merged to 'next' on 2021-10-03 at 8c2cb6a3a6)
+ refs: drop "broken" flag from for_each_fullref_in()
+ ref-filter: drop broken-ref code entirely
+ ref-filter: stop setting FILTER_REFS_INCLUDE_BROKEN
+ repack, prune: drop GIT_REF_PARANOIA settings
+ refs: turn on GIT_REF_PARANOIA by default
+ refs: omit dangling symrefs when using GIT_REF_PARANOIA
+ refs: add DO_FOR_EACH_OMIT_DANGLING_SYMREFS flag
+ refs-internal.h: reorganize DO_FOR_EACH_* flag documentation
+ refs-internal.h: move DO_FOR_EACH_* flags next to each other
+ t5312: be more assertive about command failure
+ t5312: test non-destructive repack
+ t5312: create bogus ref as necessary
+ t5312: drop "verbose" helper
+ t5600: provide detached HEAD for corruption failures
+ t5516: don't use HEAD ref for invalid ref-deletion tests
+ t7900: clean up some more broken refs
(this branch is used by jt/no-abuse-alternate-odb-for-submodules.)

The ref iteration code used to optionally allow dangling refs to be
shown, which has been tightened up.

Will merge to 'next'.
Will merge to 'master'.


* pw/rebase-reread-todo-after-editing (2021-09-24) 2 commits
@ -320,44 +543,6 @@ Release tarballs are available at:
Will merge to 'master'.


* rs/close-pack-leakfix (2021-09-24) 1 commit
(merged to 'next' on 2021-09-28 at b14502faa0)
+ packfile: release bad_objects in close_pack()

Leakfix.

Will merge to 'master'.


* ab/make-clean-depend-dirs (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at 20483ade7d)
+ Makefile: clean .depend dirs under COMPUTE_HEADER_DEPENDENCIES != yes

"make clean" has been updated to remove leftover .depend/
directories, even when it is not told to use them to compute header
dependencies.

Will merge to 'master'.


* bs/ls-files-opt-help-text-update (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at d27c228644)
+ ls-files: use imperative mood for -X and -z option description

Help text for "ls-files" options have been updated.

Will merge to 'master'.


* ds/perf-test-built-path-fix (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at 18a21483d9)
+ t/perf/run: fix bin-wrappers computation

Perf test fix.

Will merge to 'master'.


* gc/doc-first-contribution-reroll (2021-09-22) 1 commit
(merged to 'next' on 2021-09-29 at b7dea55eae)
+ MyFirstContribution: Document --range-diff option when writing v2
@ -381,32 +566,14 @@ Release tarballs are available at:
Will merge to 'master'.


* jk/http-redact-fix (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at ef4570a5d1)
+ http: match headers case-insensitively when redacting

Sensitive data in the HTTP trace were supposed to be redacted, but
we failed to do so in HTTP/2 requests.

Will merge to 'master'.


* js/win-lazyload-buildfix (2021-09-28) 3 commits
- Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better
- lazyload.h: use an even more generic function pointer than FARPROC
- lazyload.h: fix warnings about mismatching function pointer types
(merged to 'next' on 2021-10-03 at 26802e5d73)
+ Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better
+ lazyload.h: use an even more generic function pointer than FARPROC
+ lazyload.h: fix warnings about mismatching function pointer types

Compilation fix.

Will merge to 'next'.


* ab/auto-depend-with-pedantic (2021-09-22) 1 commit
(merged to 'next' on 2021-09-28 at 532f2aa26e)
+ Makefile: make COMPUTE_HEADER_DEPENDENCIES=auto work with DEVOPTS=pedantic

Improve build procedure for developers.

Will merge to 'master'.


@ -419,15 +586,6 @@ Release tarballs are available at:
Will merge to 'next'?


* bs/difftool-msg-tweak (2021-09-22) 1 commit
(merged to 'next' on 2021-09-29 at 22d485e560)
+ difftool: fix word spacing in the usage strings

Message tweak.

Will merge to 'master'.


* ew/midx-doc-update (2021-09-24) 1 commit
(merged to 'next' on 2021-09-28 at f2cbe598eb)
+ doc/technical: update note about core.multiPackIndex
@ -437,7 +595,8 @@ Release tarballs are available at:
Will merge to 'master'.


* jt/no-abuse-alternate-odb-for-submodules (2021-09-29) 9 commits
* jt/no-abuse-alternate-odb-for-submodules (2021-10-01) 10 commits
- fixup! refs: plumb repo into ref stores
- submodule: trace adding submodule ODB as alternate
- submodule: pass repo to check_has_commit()
- object-file: only register submodule ODB if needed
@ -491,35 +650,17 @@ Release tarballs are available at:
Will merge to 'master'.


* ah/connect-parse-feature-v0-fix (2021-09-27) 1 commit
(merged to 'next' on 2021-09-29 at 93a45727a2)
+ connect: also update offset for features without values

Protocol v0 clients can get stuck parsing a malformed feature line.

Will merge to 'master'.


* da/difftool (2021-09-30) 7 commits
- difftool: remove an unnecessary call to strbuf_release()
- difftool: refactor dir-diff to write files using a helper function
- difftool: avoid returning -1 to cmd_main() from run_dir_diff()
- difftool: add a missing space to the run_dir_diff() comments
- difftool: create a tmpdir path without repeated slashes
- Merge branch 'da/difftool-dir-diff-symlink-fix' into da/difftool
- Merge branch 'ab/retire-option-argument' into da/difftool
(this branch uses da/difftool-dir-diff-symlink-fix.)
* da/difftool (2021-09-30) 6 commits
(merged to 'next' on 2021-10-03 at 3ba0335e4e)
+ difftool: add a missing space to the run_dir_diff() comments
+ difftool: remove an unnecessary call to strbuf_release()
+ difftool: refactor dir-diff to write files using helper functions
+ difftool: create a tmpdir path without repeated slashes
+ Merge branch 'da/difftool-dir-diff-symlink-fix' into da/difftool
+ Merge branch 'ab/retire-option-argument' into da/difftool

Code clean-up in "git difftool".


* da/difftool-dir-diff-symlink-fix (2021-09-23) 1 commit
(merged to 'next' on 2021-09-28 at e2170ed0d7)
+ difftool: fix symlink-file writing in dir-diff mode
(this branch is used by da/difftool.)

"git difftool --dir-diff" mishandled symbolic links.

Will merge to 'master'.


@ -539,7 +680,7 @@ Release tarballs are available at:

Various fixes in code paths that move untracked files away to make room.

Will merge to 'next'?
Will merge to 'next'.


* ks/submodule-add-message-fix (2021-09-20) 1 commit
@ -571,32 +712,24 @@ Release tarballs are available at:
Will merge to 'master'.


* jk/clone-unborn-head-in-bare (2021-09-20) 1 commit
(merged to 'next' on 2021-09-20 at 93c93b8d51)
+ clone: handle unborn branch in bare repos

"git clone" from a repository whose HEAD is unborn into a bare
repository didn't follow the branch name the other side used, which
is corrected.

Will merge to 'master'.


* ns/batched-fsync (2021-09-27) 8 commits
- core.fsyncobjectfiles: performance tests for add and stash
- core.fsyncobjectfiles: tests for batch mode
- unpack-objects: use the bulk-checkin infrastructure
- update-index: use the bulk-checkin infrastructure
- core.fsyncobjectfiles: add windows support for batch mode
- core.fsyncobjectfiles: batched disk flushes
- bulk-checkin: rename 'state' variable and separate 'plugged' boolean
- object-file.c: do not rename in a temp odb
* ns/batched-fsync (2021-10-04) 9 commits
. core.fsyncobjectfiles: performance tests for add and stash
. core.fsyncobjectfiles: tests for batch mode
. unpack-objects: use the bulk-checkin infrastructure
. update-index: use the bulk-checkin infrastructure
. core.fsyncobjectfiles: add windows support for batch mode
. core.fsyncobjectfiles: batched disk flushes
. bulk-checkin: rename 'state' variable and separate 'plugged' boolean
. tmp-objdir: disable ref updates when replacing the primary odb
. tmp-objdir: new API for creating temporary writable databases

The "core.fsyncobjectfiles" configuration variable can now be set
to "batch" for improved performance.

Under discussion.
Handling of temporary object directory may be iffy.

Handling of temporary object directory is worked out with the
en/remerge-diff topic.


* jh/builtin-fsmonitor-part1 (2021-09-20) 7 commits
@ -610,18 +743,7 @@ Release tarballs are available at:

Built-in fsmonitor (part 1).


* cb/cvsserver (2021-09-16) 3 commits
(merged to 'next' on 2021-09-23 at 98f5f3f9cf)
+ Documentation: cleanup git-cvsserver
+ git-cvsserver: protect against NULL in crypt(3)
+ git-cvsserver: use crypt correctly to compare password hashes

"git cvsserver" had a long-standing bug in its authentication code,
which has finally been corrected (it is unclear and is a separate
question if anybody is seriously using it, though).

Will merge to 'master'.
Will merge to 'next'.


* ab/align-parse-options-help (2021-09-22) 4 commits
@ -654,7 +776,7 @@ Release tarballs are available at:
Will merge to 'next'?


* tb/repack-write-midx (2021-09-28) 9 commits
* tb/repack-write-midx (2021-10-01) 9 commits
- builtin/repack.c: pass `--refs-snapshot` when writing bitmaps
- builtin/repack.c: make largest pack preferred
- builtin/repack.c: support writing a MIDX while repacking
@ -668,6 +790,8 @@ Release tarballs are available at:
"git repack" has been taught to generate multi-pack reachability
bitmaps.

Will merge to 'next'?


* ds/add-rm-with-sparse-index (2021-09-28) 13 commits
- advice: update message to suggest '--sparse'
@ -719,6 +843,7 @@ Release tarballs are available at:
+ t3407: use test_cmp_rev
+ t3407: use test_commit
+ t3407: run tests in $TEST_DIRECTORY
(this branch is used by pw/fix-some-issues-in-reset-head.)

"git rebase <upstream> <tag>" failed when aborted in the middle, as
it mistakenly tried to write the tag object instead of peeling it
@ -734,18 +859,6 @@ Release tarballs are available at:
"Zealous diff3" style of merge conflict presentation has been added.


* en/stash-df-fix (2021-09-10) 3 commits
(merged to 'next' on 2021-09-20 at 513c11fb11)
+ stash: restore untracked files AFTER restoring tracked files
+ stash: avoid feeding directories to update-index
+ t3903: document a pair of directory/file bugs

Fix "git stash" corner case where the tentative change involves
changing a directory to a file (or vice versa).

Will merge to 'master'.


* jt/add-submodule-odb-clean-up (2021-09-09) 3 commits
(merged to 'next' on 2021-09-28 at 4d843448be)
+ revision: remove "submodule" from opt struct
@ -759,15 +872,6 @@ Release tarballs are available at:
Will merge to 'master'.


* jx/ci-l10n (2021-09-09) 1 commit
(merged to 'next' on 2021-09-23 at b2d7f5eecb)
+ ci: new github-action for git-l10n code review

CI help for l10n.

Will merge to 'master'.


* js/scalar (2021-09-14) 15 commits
- scalar: accept -C and -c options before the subcommand
- scalar: implement the `version` command
@ -792,12 +896,13 @@ Release tarballs are available at:


* ab/sanitize-leak-ci (2021-09-23) 2 commits
- tests: add a test mode for SANITIZE=leak, run it in CI
- Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS
(merged to 'next' on 2021-10-03 at dcd62a3fc6)
+ tests: add a test mode for SANITIZE=leak, run it in CI
+ Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS

CI learns to run the leak sanitizer builds.

Will merge to 'next'.
Will merge to 'master'.


* ms/customizable-ident-expansion (2021-09-01) 1 commit
@ -839,7 +944,10 @@ Release tarballs are available at:
used to show the difference between mechanical (and possibly
conflicted) merge results and the recorded resolution.

Will merge to 'next'?
Expecting a reroll.

Handling of temporary object directory is worked out with the
ns/batched-fsync topic.


* sg/test-split-index-fix (2021-09-07) 7 commits
@ -862,7 +970,6 @@ Release tarballs are available at:
- refs: explicitly return failure_errno from parse_loose_ref_contents
- branch tests: test for errno propagating on failing read
- refs: add failure_errno to refs_read_raw_ref() signature
(this branch uses ab/refs-files-cleanup and hn/refs-errno-cleanup.)

The "remainder" of hn/refs-errno-cleanup topic.

@ -882,7 +989,7 @@ Release tarballs are available at:

Updates to the tests in t0000 to test the test framework.

Will merge to 'next'?
Will merge to 'next'.


* ab/only-single-progress-at-once (2021-09-22) 8 commits
@ -948,7 +1055,12 @@ Release tarballs are available at:
cf. <8bec1a6d-5052-50c3-4100-e6348289d581@gmail.com>


* hn/reftable (2021-09-28) 19 commits
* hn/reftable (2021-10-01) 24 commits
- reftable: avoid non portable compile time pointer to function
- config.mak.uname: last release and snapshots of Minix still use zlib 1.2.3
- fixup! reftable: implement stack, a mutable database of reftable files.
- fixup! reftable: add a heap-based priority queue for reftable records
- squash! reftable: reading/writing blocks
- Add "test-tool dump-reftable" command.
- reftable: add dump utility
- reftable: implement stack, a mutable database of reftable files.
@ -972,43 +1084,7 @@ Release tarballs are available at:
The "reftable" backend for the refs API, without integrating into
the refs subsystem.

Will merge to 'next'.


* ab/refs-files-cleanup (2021-08-25) 13 commits
(merged to 'next' on 2021-09-23 at eb5668523f)
+ refs/files: remove unused "errno != ENOTDIR" condition
+ refs/files: remove unused "errno == EISDIR" code
+ refs/files: remove unused "oid" in lock_ref_oid_basic()
+ refs API: remove OID argument to reflog_expire()
+ reflog expire: don't lock reflogs using previously seen OID
+ refs/files: add a comment about refs_reflog_exists() call
+ refs: make repo_dwim_log() accept a NULL oid
+ refs/debug: re-indent argument list for "prepare"
+ refs/files: remove unused "skip" in lock_raw_ref() too
+ refs/files: remove unused "extras/skip" in lock_ref_oid_basic()
+ refs: drop unused "flags" parameter to lock_ref_oid_basic()
+ refs/files: remove unused REF_DELETING in lock_ref_oid_basic()
+ refs/packet: add missing BUG() invocations to reflog callbacks
(this branch is used by ab/refs-errno-cleanup and hn/refs-errno-cleanup.)

Continued work on top of the hn/refs-errno-cleanup topic.

Will merge to 'master'.


* hn/refs-errno-cleanup (2021-08-25) 4 commits
(merged to 'next' on 2021-09-23 at 502e6b6b08)
+ refs: make errno output explicit for read_raw_ref_fn
+ refs/files-backend: stop setting errno from lock_ref_oid_basic
+ refs: remove EINVAL errno output from specification of read_raw_ref_fn
+ refs file backend: move raceproof_create_file() here
(this branch is used by ab/refs-errno-cleanup; uses ab/refs-files-cleanup.)

Futz with the way 'errno' is relied on in the refs API to carry the
failure modes up the call chain.

Will merge to 'master'.
Expecting a reroll.

--------------------------------------------------
[Discarded]
@ -1169,3 +1245,13 @@ Release tarballs are available at:

Retracted.
cf. <05754f9c-cd58-30f5-e2d3-58b9221d2770@ahunt.org>


* rs/p5311-use-test-file-size (2021-10-03) 1 commit
. p5311: handle spaces in wc(1) output

Test portability update.

The tb/aggregate-ignore-leading-whitespaces supersedes this topic.