To: git@vger.kernel.org
Bcc: lwn@lwn.net
Subject: What's cooking in git.git (May 2020, #08; Sun, 24)
X-master-at: d2ecc46c0981fb829fdfb204604ed0a2798cbe07
X-next-at: 59ed0186f21322539283e0ada8b0e692051b5445

What's cooking in git.git (May 2020, #08; Sun, 24)
--------------------------------------------------

Here are the topics that have been cooking.  Commits prefixed with
'-' are only in '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.

Git 2.27-rc2 will be tagged soon, but most of the topics planned for
it are already in 'master'.

You can find the changes described here in the integration branches
of the repositories listed at

    http://git-blame.blogspot.com/p/git-public-repositories.html

--------------------------------------------------
[Graduated to "master"]

* bc/faq (2020-05-20) 1 commit
  (merged to 'next' on 2020-05-21 at ab3fc8fb75)
 + command-list.txt: add gitfaq to the list of guides

 "git help guides" now includes the newly added FAQ document.


* cb/bisect-replay-with-dos-fix (2020-05-20) 1 commit
  (merged to 'next' on 2020-05-21 at ebcc6eb30e)
 + bisect: avoid tailing CR characters from revision in replay

 Re-fix longstanding "edited bisect log may confuse bisect replay
 with trailing carriage-return" issue.


* dd/t5703-grep-a-fix (2020-05-19) 1 commit
  (merged to 'next' on 2020-05-21 at b85828341f)
 + t5703: replace "grep -a" usage by perl

 Update an unconditional use of "grep -a" with a perl script in a test.


* dl/merge-autostash (2020-05-20) 1 commit
  (merged to 'next' on 2020-05-21 at 985d87225d)
 + t5520: avoid alternation in grep's BRE (not POSIX)

 Test fix.


* ds/multi-pack-verify (2020-05-19) 1 commit
  (merged to 'next' on 2020-05-21 at a337d6352c)
 + fsck: use ERROR_MULTI_PACK_INDEX

 Fix for a copy-and-paste error introduced during 2.20 era.


* gp/hppa-stack-test-fix (2020-05-18) 1 commit
  (merged to 'next' on 2020-05-20 at 57ed63b4ad)
 + tests: skip small-stack tests on hppa architecture

 Platform dependent tweak to a test for HP-PA.


* gs/commit-graph-path-filter (2020-05-20) 1 commit
  (merged to 'next' on 2020-05-21 at e563529d0a)
 + t4216: avoid unnecessary subshell in test_bloom_filters_not_used

 Test fix.


* jt/avoid-prefetch-when-able-in-diff (2020-05-19) 1 commit
  (merged to 'next' on 2020-05-21 at 4fa6f05ea4)
 + t4067: make rename detection test output raw diff

 Test-coverage enhancement.


* ma/doc-fixes (2020-05-18) 5 commits
  (merged to 'next' on 2020-05-21 at 0f5e748d23)
 + git-sparse-checkout.txt: add missing '
 + git-credential.txt: use list continuation
 + git-commit-graph.txt: fix list rendering
 + git-commit-graph.txt: fix grammo
 + date-formats.txt: fix list continuation

 Various doc fixes.

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

* bc/filter-process (2020-05-21) 2 commits
  (merged to 'next' on 2020-05-24 at 3d51328096)
 + t2060: add a test for switch with --orphan and --discard-changes
 + builtin/checkout: simplify metadata initialization

 Code simplification and test coverage enhancement.

 Will cook in 'next'.


* cb/bisect-helper-parser-fix (2020-05-24) 1 commit
  (merged to 'next' on 2020-05-24 at d30e10fa86)
 + bisect--helper: avoid segfault with bad syntax in `start --term-*`

 The code to parse "git bisect start" command line was lax in
 validating the arguments.

 Will cook in 'next'.


* jn/experimental-opts-into-proto-v2 (2020-05-21) 1 commit
  (merged to 'next' on 2020-05-24 at 53cd664dfe)
 + config: let feature.experimental imply protocol.version=2

 "feature.experimental" configuration variable is to let volunteers
 easily opt into a set of newer features, which use of the v2
 transport protocol is now a part of.

 Will cook in 'next'.


* jx/pkt-line-doc-count-fix (2020-05-21) 1 commit
  (merged to 'next' on 2020-05-24 at 7115240db4)
 + doc: fix wrong 4-byte length of pkt-line message

 Docfix.

 Will cook in 'next'.


* rs/fsck-duplicate-names-in-trees (2020-05-21) 4 commits
  (merged to 'next' on 2020-05-24 at 6e1d6ba087)
 + fsck: detect more in-tree d/f conflicts
 + t1450: demonstrate undetected in-tree d/f conflict
 + t1450: increase test coverage of in-tree d/f detection
 + fsck: fix a typo in a comment

 The check in "git fsck" to ensure that the tree objects are sorted
 still had corner cases it missed unsorted entries.

 Will cook in 'next'.


* ss/submodule-set-branch-in-c (2020-05-24) 2 commits
 - fixup! submodule: port subcommand 'set-branch' from shell to C
 - submodule: port subcommand 'set-branch' from shell to C

 Rewrite of parts of the scripted "git submodule" Porcelain command
 continues; this time it is "git submodule set-branch" subcommand's
 turn.

 cf. <20200523231838.GB1981@danh.dev>


* vs/complete-stash-show-p-fix (2020-05-21) 1 commit
  (merged to 'next' on 2020-05-24 at fcbff29a0f)
 + completion: don't override given stash subcommand with -p

 The command line completion script (in contrib/) tried to complete
 "git stash -p" as if it were "git stash push -p", but it was too
 aggressive and also affected "git stash show -p", which has been
 corrected.

 Will cook in 'next'.


* cb/t5608-cleanup (2020-05-24) 1 commit
  (merged to 'next' on 2020-05-24 at 2bfa581890)
 + t5608: avoid say() and use "skip_all" instead for consistency

 Test fixup.

 Will cook in 'next'.


* es/config-hooks (2020-05-21) 4 commits
 - hook: add --porcelain to list command
 - hook: add list command
 - hook: scaffolding for git-hook subcommand
 - doc: propose hooks managed by the config


* rs/checkout-b-track-error (2020-05-24) 2 commits
 - checkout: improve error messages for -b with extra argument
 - checkout: add tests for -b and --track

 The error message from "git checkout -b foo -t bar baz" was
 confusing.

 Will merge to 'next'.


* lo/sparse-universal-zero-init (2020-05-24) 1 commit
  (merged to 'next' on 2020-05-24 at 1f4ea6b348)
 + sparse: allow '{ 0 }' to be used without warnings

 We've adopted a convention that any on-stack structure can be
 initialized to have zero values in all fields with "= { 0 }", even
 when the first field happens to be a pointer, but sparse complained
 that a null pointer should be spelled NULL for a long time.  Start
 using -Wno-universal-initializer option to squelch it.

 Will cook in 'next'.

--------------------------------------------------
[Stalled]

* dr/push-remoteref-fix (2020-04-23) 1 commit
 - remote.c: fix handling of %(push:remoteref)

 The "%(push:remoteref)" placeholder in the "--format=" argument of
 "git format-patch" (and friends) only showed what got explicitly
 configured, not what ref at the receiving end would be updated when
 "git push" was used, as it ignored the default behaviour (e.g. update
 the same ref as the source).

 Expecting a reroll.
 cf. <20200416152145.wp2zeibxmuyas6y6@feanor>


* jk/complete-git-switch (2020-04-28) 11 commits
 - completion: complete remote branches for git switch --track
 - completion: recognize -c/-C when completing for git switch
 - completion: fix completion for git switch with no options
 - completion: perform DWIM logic directly in __git_complete_refs
 - completion: extract function __git_dwim_remote_heads
 - completion: rename --track option of __git_complete_refs
 - completion: stop completing refs for git switch --orphan
 - completion: add tests showing lack of support for git switch -c/-C
 - completion: add test highlighting subpar git switch --track completion
 - completion: add test showing subpar git switch completion
 - completion: add some simple test cases for git switch completion

 The command line completion (in contrib/) learned to complete
 options that the "git switch" command takes.

 Needs review.


* dl/test-must-fail-fixes-5 (2020-05-21) 5 commits
 - lib-submodule-update: pass OVERWRITING_FAIL
 - SQUASH???  <20200521112545.GB581643@generichostname>
 - lib-submodule-update: prepend "git" to $command
 - lib-submodule-update: consolidate --recurse-submodules
 - lib-submodule-update: add space after function name

 The effort to avoid using test_must_fail on non-git command continues.

 Waiting for a review thread to settle.
 cf. <20200521182928.GA1308647@coredump.intra.peff.net>
 The last step is a bit too ugly to live; Peff seems to have better
 ideas.


* mr/bisect-in-c-2 (2020-04-23) 12 commits
 - bisect--helper: retire `--bisect-autostart` subcommand
 - bisect--helper: retire `--write-terms` subcommand
 - bisect--helper: retire `--check-expected-revs` subcommand
 - bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in C
 - bisect--helper: retire `--next-all` subcommand
 - bisect--helper: retire `--bisect-clean-state` subcommand
 - bisect--helper: finish porting `bisect_start()` to C
 - bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in C
 - bisect--helper: reimplement `bisect_autostart` shell function in C
 - bisect--helper: introduce new `write_in_file()` function
 - bisect--helper: use '-res' in 'cmd_bisect__helper' return
 - bisect--helper: fix `cmd_*()` function switch default return

 Rewrite of the remainder of "git bisect" script in C continues.

 Expecting a response to reviews.
 cf. <nycvar.QRO.7.76.6.2005230007260.56@tvgsbejvaqbjf.bet>


* mk/use-size-t-in-zlib (2018-10-15) 1 commit
 - zlib.c: use size_t for size

 The wrapper to call into zlib followed our long tradition to use
 "unsigned long" for sizes of regions in memory, which have been
 updated to use "size_t".

--------------------------------------------------
[Cooking]

* pw/rebase-i-more-options (2020-05-24) 5 commits
 - rebase: add --reset-author-date
 - rebase -i: support --ignore-date
 - sequencer: rename amend_author to author_to_free
 - rebase -i: support --committer-date-is-author-date
 - rebase -i: add --ignore-whitespace flag

 "git rebase -i" learns a bit more options.

 Expecting the final touch
 cf. <20200523155203.GA10163@danh.dev>


* an/merge-single-strategy-optim (2020-05-19) 1 commit
  (merged to 'next' on 2020-05-20 at 8d5cacc8d1)
 + merge: optimization to skip evaluate_result for single strategy

 Code optimization for a common case.

 Will cook in 'next'.


* cc/upload-pack-data (2020-05-18) 13 commits
 - upload-pack: use upload_pack_data fields in receive_needs()
 - upload-pack: pass upload_pack_data to create_pack_file()
 - upload-pack: remove static variable 'stateless_rpc'
 - upload-pack: pass upload_pack_data to check_non_tip()
 - upload-pack: pass upload_pack_data to send_ref()
 - upload-pack: move symref to upload_pack_data
 - upload-pack: use upload_pack_data writer in receive_needs()
 - upload-pack: pass upload_pack_data to receive_needs()
 - upload-pack: pass upload_pack_data to get_common_commits()
 - upload-pack: use 'struct upload_pack_data' in upload_pack()
 - upload-pack: move 'struct upload_pack_data' around
 - upload-pack: move {want,have}_obj to upload_pack_data
 - upload-pack: remove unused 'wants' from upload_pack_data

 Code clean-up.


* dl/remote-curl-deadlock-fix (2020-05-24) 7 commits
 - stateless-connect: send response end packet
 - pkt-line: define PACKET_READ_RESPONSE_END
 - remote-curl: error on incomplete packet
 - pkt-line: extern packet_length()
 - transport: extract common fetch_pack() call
 - remote-curl: remove label indentation
 - remote-curl: fix typo

 On-the-wire protocol v2 easily falls into a deadlock between the
 remote-curl helper and the fetch-pack process when the server side
 prematurely throws an error and disconnects.  The communication has
 been updated to make it more robust.

 Will merge to 'next'.


* jk/ci-only-on-selected-branches (2020-05-18) 1 commit
  (merged to 'next' on 2020-05-24 at 5f1f5ef66a)
 + ci/config: correct instruction for CI preferences

 Dev support.

 Will cook in 'next'.


* la/diff-relative-config (2020-05-24) 1 commit
 - diff: add config option relative

 The commands in the "diff" family learned to honor "diff.relative"
 configuration variable.

 Will merge to 'next'.


* cb/t4210-illseq-auto-detect (2020-05-18) 2 commits
  (merged to 'next' on 2020-05-24 at c03b4095fa)
 + t4210: detect REG_ILLSEQ dynamically and skip affected tests
 + t/helper: teach test-regex to report pattern errors (like REG_ILLSEQ)

 As FreeBSD is not the only platform whose regexp library reports
 a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that
 automatically and skip the affected tests.

 Will cook in 'next'.


* bk/p4-prepare-p4-only-fix (2020-05-12) 1 commit
  (merged to 'next' on 2020-05-24 at c1b4644b04)
 + git-p4.py: fix --prepare-p4-only error with multiple commits

 The "--prepare-p4-only" option is supposed to stop after replaying
 one changeset, but kept going (by mistake?)

 Will cook in 'next'.
 cf. <CAE5ih797YYxsR2H0TA65w9W-1jF4jQLayja_nGjQMGtc=PB6Jw@mail.gmail.com>


* jt/curl-verbose-on-trace-curl (2020-05-11) 2 commits
  (merged to 'next' on 2020-05-11 at 814e31b9d4)
 + http, imap-send: stop using CURLOPT_VERBOSE
 + t5551: test that GIT_TRACE_CURL redacts password

 Rewrite support for GIT_CURL_VERBOSE in terms of GIT_TRACE_CURL.

 Expecting further work on optionally disabling redacting authinfo


* mt/grep-sparse-checkout (2020-05-11) 4 commits
 - config: add setting to ignore sparsity patterns in some cmds
 - grep: honor sparse checkout patterns
 - config: load the correct config.worktree file
 - doc: grep: unify info on configuration variables

 "git grep" has been tweaked to be limited to the sparse checkout
 paths.

 Expecting further polishing.
 cf. <CAHd-oW6BoHkMSAQVquHR+H7=g84VE-qmXGYcDmWwFxuLyqZSzg@mail.gmail.com>


* bc/sha-256-part-2 (2020-05-13) 44 commits
 - remote-testgit: adapt for object-format
 - bundle: detect hash algorithm when reading refs
 - t5300: pass --object-format to git index-pack
 - t5703: use object-format serve option
 - t5702: offer an object-format capability in the test
 - t/helper: initialize the repository for test-sha1-array
 - remote-curl: avoid truncating refs with ls-remote
 - t1050: pass algorithm to index-pack when outside repo
 - builtin/index-pack: add option to specify hash algorithm
 - remote-curl: detect algorithm for dumb HTTP by size
 - builtin/ls-remote: initialize repository based on fetch
 - t5500: make hash independent
 - serve: advertise object-format capability for protocol v2
 - connect: parse v2 refs with correct hash algorithm
 - connect: pass full packet reader when parsing v2 refs
 - Documentation/technical: document object-format for protocol v2
 - t1302: expect repo format version 1 for SHA-256
 - builtin/show-index: provide options to determine hash algo
 - t5302: modernize test formatting
 - packfile: compute and use the index CRC offset
 - t3200: mark assertion with SHA1 prerequisite
 - setup: set the_repository's hash algo when checking format
 - fetch-pack: parse and advertise the object-format capability
 - t5704: send object-format capability with SHA-256
 - t5562: pass object-format in synthesized test data
 - builtin/clone: initialize hash algorithm properly
 - remote-curl: implement object-format extensions
 - transport-helper: implement object-format extensions
 - docs: update remote helper docs for object-format extensions
 - builtin/receive-pack: detect when the server doesn't support our hash
 - connect: detect algorithm when fetching refs
 - fetch-pack: detect when the server doesn't support our hash
 - connect: make parse_feature_value extern
 - send-pack: detect when the server doesn't support our hash
 - connect: add function to detect supported v1 hash functions
 - transport: add a hash algorithm member
 - pkt-line: add a member for hash algorithm
 - connect: add function to fetch value of a v2 server capability
 - connect: add function to parse multiple v1 capability values
 - remote: advertise the object-format capability on the server side
 - wrapper: add function to compare strings with different NUL termination
 - connect: have ref processing code take struct packet_reader
 - Documentation: document v1 protocol object-format capability
 - t1050: match object ID paths in a hash-insensitive way

 SHA-256 migration work continues.


* es/bugreport-shell (2020-05-12) 2 commits
  (merged to 'next' on 2020-05-24 at 79c5c8308b)
 + bugreport: include user interactive shell
 + help: add shell-path to --build-options

 "git bugreport" learns to report what shell is in use.

 Will cook in 'next'.
 We may want to learn more details than just the path, but
 that can come later.
 cf. <20200512235924.GC6605@camp.crustytoothpaste.net>


* ds/line-log-on-bloom (2020-05-11) 5 commits
  (merged to 'next' on 2020-05-11 at 046d49d455)
 + line-log: integrate with changed-path Bloom filters
 + line-log: try to use generation number-based topo-ordering
 + line-log: more responsive, incremental 'git log -L'
 + t4211-line-log: add tests for parent oids
 + line-log: remove unused fields from 'struct line_log_data'

 "git log -L..." now takes advantage of the "which paths are touched
 by this commit?" info stored in the commit-graph system.

 Will cook in 'next'.


* tb/commit-graph-no-check-oids (2020-05-18) 8 commits
  (merged to 'next' on 2020-05-24 at 72bd1063ca)
 + commit-graph: drop COMMIT_GRAPH_WRITE_CHECK_OIDS flag
 + t5318: reorder test below 'graph_read_expect'
 + commit-graph.c: simplify 'fill_oids_from_commits'
 + builtin/commit-graph.c: dereference tags in builtin
 + builtin/commit-graph.c: extract 'read_one_commit()'
 + commit-graph.c: peel refs in 'add_ref_to_set'
 + commit-graph.c: show progress of finding reachable commits
 + commit-graph.c: extract 'refs_cb_data'

 Clean-up the commit-graph codepath.

 Will cook in 'next'.


* jx/proc-receive-hook (2020-05-18) 11 commits
 - doc: add documentation for the proc-receive hook
 - transport: parse report options for tracking refs
 - t5411: test updates of remote-tracking branches
 - receive-pack: new config receive.procReceiveRefs
 - refs.c: refactor to reuse ref_is_hidden()
 - receive-pack: feed report options to post-receive
 - doc: add document for capability report-status-v2
 - New capability "report-status-v2" for git-push
 - receive-pack: add new proc-receive hook
 - t5411: add basic test cases for proc-receive hook
 - transport: not report a non-head push as a branch

 "git receive-pack" that accepts requests by "git push" learned to
 outsource most of the ref updates to the new "proc-receive" hook.

 Needs review.


* hn/refs-cleanup (2020-05-20) 6 commits
  (merged to 'next' on 2020-05-24 at dd9b665698)
 + reftable: define version 2 of the spec to accomodate SHA256
 + reftable: clarify how empty tables should be written
 + reftable: file format documentation
 + refs: improve documentation for ref iterator
 + t: use update-ref and show-ref to reading/writing refs
 + refs.h: clarify reflog iteration order
 (this branch is used by hn/reftable.)

 Preliminary clean-ups around refs API, plus file format
 specification documentation for the reftable backend.

 Will cook in 'next'.


* hn/reftable (2020-05-20) 9 commits
 - Add reftable testing infrastructure
 - vcxproj: adjust for the reftable changes
 - Add GIT_DEBUG_REFS debugging mechanism
 - Reftable support for git-core
 - Add reftable library
 - Add .gitattributes for the reftable/ directory
 - Iterate over the "refs/" namespace in for_each_[raw]ref
 - Move REF_LOG_ONLY to refs-internal.h
 - Write pseudorefs through ref backends.
 (this branch uses hn/refs-cleanup.)

 A new refs backend "reftable" to replace the traditional
 combination of packed-refs files and one-file-per-ref loose refs
 has been implemented and integrated for improved performance and
 atomicity.

 Needs review.

--------------------------------------------------
[Discarded]

* jc/credential-store-file-format-doc (2020-04-27) 1 commit
 . credential-store: document the file format a bit more

 Now has become a part of Carlo's credential-store fix patches.


* js/ci-skip-on-github-workflow (2020-05-02) 1 commit
 . ci: respect the [skip ci] convention in our GitHub workflow "CI/PR"

 Allow contributors to mark a branch/push that it does not have to
 be built via GitHub actions, in a way similar to how Travis lets
 them mark the commits with an embedded "[skip ci]" string.

 Superseded by dd/ci-only-on-selective-branches topic.


* dd/ci-only-on-selective-branches (2020-05-05) 2 commits
 - CI: limit GitHub Actions to designated branches
 - SubmittingPatches: advertise GitHub Actions CI

 Instead of always building all branches of all forks of our project
 at GitHub via GitHub Actions, only build when branches with known
 and specific names are updated, and also a pull request.

 Superseded by jk/ci-only-on-selected-branches
