What's cooking (2020/09) #01

todo
Junio C Hamano 2020-09-01 14:23:20 -07:00
parent b355891ff6
commit a59d271ca2
1 changed files with 285 additions and 251 deletions

View File

@ -1,10 +1,10 @@
To: git@vger.kernel.org
Bcc: lwn@lwn.net
Subject: What's cooking in git.git (Aug 2020, #07; Thu, 27)
X-master-at: 20de7e7e4f4e9ae52e6cc7cfaa6469f186ddb0fa
X-next-at: e36021eeeff56bc9a7afbe027201c2c7f8603545
Subject: What's cooking in git.git (Sep 2020, #01; Tue, 1)
X-master-at: e19713638985533ce461db072b49112da5bd2042
X-next-at: d5648e830df7306a9eb9019e75db9a350e6c48b3

What's cooking in git.git (Aug 2020, #07; Thu, 27)
What's cooking in git.git (Sep 2020, #01; Tue, 1)
--------------------------------------------------

Here are the topics that have been cooking. Commits prefixed with '-' are
@ -20,91 +20,76 @@ repositories listed at
--------------------------------------------------
[Graduated to 'master']

* en/mem-pool (2020-08-18) 3 commits
(merged to 'next' on 2020-08-19 at eff9ad46f0)
+ mem-pool: use consistent pool variable name
+ mem-pool: use more standard initialization and finalization
+ mem-pool: add convenience functions for strdup and strndup
* al/bisect-first-parent (2020-08-22) 1 commit
(merged to 'next' on 2020-08-24 at f95fbf45a6)
+ bisect: add first-parent option to documentation

API update.
Finishing touches.


* hn/refs-fetch-head-is-special (2020-08-19) 4 commits
(merged to 'next' on 2020-08-21 at def233ab43)
+ refs: read FETCH_HEAD and MERGE_HEAD generically
+ refs: move gitdir into base ref_store
+ refs: fix comment about submodule ref_stores
+ refs: split off reading loose ref data in separate function
(this branch is used by hn/refs-pseudorefs.)
* am/ci-wsfix (2020-08-21) 1 commit
(merged to 'next' on 2020-08-24 at 8491e031f1)
+ ci: fix inconsistent indentation

The FETCH_HEAD is now always read from the filesystem regardless of
the ref backend in use, as its format is much richer than the
normal refs, and written directly by "git fetch" as a plain file..
Aesthetic fix to a CI configuration file.


* jk/leakfix (2020-08-17) 7 commits
(merged to 'next' on 2020-08-21 at a8b25a2657)
+ submodule--helper: fix leak of core.worktree value
+ config: fix leak in git_config_get_expiry_in_days()
+ config: drop git_config_get_string_const()
+ config: fix leaks from git_config_get_string_const()
+ checkout: fix leak of non-existent branch names
+ submodule--helper: use strbuf_release() to free strbufs
+ clear_pattern_list(): clear embedded hashmaps
* dd/diff-customize-index-line-abbrev (2020-08-21) 2 commits
(merged to 'next' on 2020-08-24 at 74e842a2c8)
+ diff: index-line: respect --abbrev in object's name
+ t4013: improve diff-post-processor logic

Code clean-up.
The output from the "diff" family of the commands had abbreviated
object names of blobs involved in the patch, but its length was not
affected by the --abbrev option. Now it is.


* rz/complete-more-options (2020-08-19) 2 commits
(merged to 'next' on 2020-08-21 at ba8f4c8cb1)
+ completion: add GIT_COMPLETION_SHOW_ALL env var
+ parse-options: add --git-completion-helper-all
* hn/refs-pseudorefs (2020-08-21) 4 commits
(merged to 'next' on 2020-08-24 at 3579abe8ff)
+ sequencer: treat REVERT_HEAD as a pseudo ref
+ builtin/commit: suggest update-ref for pseudoref removal
+ sequencer: treat CHERRY_PICK_HEAD as a pseudo ref
+ refs: make refs_ref_exists public

Command line completion (in contrib/) usually omits redundant,
deprecated and/or dangerous options from its output; it learned to
optionally include all of them.

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

* jc/remove-pack-redundant (2020-08-25) 1 commit
- pack-redundant: gauge the usage before proposing its removal

The first step to remove "git pack-redundant" by soliciting
objections.
Accesses to two pseudorefs have been updated to properly use ref
API.


* ps/ref-transaction-hook (2020-08-25) 1 commit
(merged to 'next' on 2020-08-27 at 49b3fb8349)
+ refs: remove lookup cache for reference-transaction hook
* hv/ref-filter-trailers-atom-parsing-fix (2020-08-21) 2 commits
(merged to 'next' on 2020-08-24 at 79b27f3263)
+ ref-filter: 'contents:trailers' show error if `:` is missing
+ t6300: unify %(trailers) and %(contents:trailers) tests

Code simplification by removing ineffective optimization.

Will merge to 'master'.
The parser for "git for-each-ref --format=..." was too loose when
parsing the "%(trailers...)" atom, and forgot that "trailers" and
"trailers:<modifiers>" are the only two allowed forms, which has
been corrected.


* jc/undash-in-tree-git-callers (2020-08-27) 3 commits
(merged to 'next' on 2020-08-27 at 671fa2f87e)
+ credential-cache: use child_process.args
+ cvsexportcommit: do not run git programs in dashed form
+ transport-helper: do not run git-remote-ext etc. in dashed form
(this branch is used by jc/war-on-dashed-git.)
* jc/ident-whose-ident (2020-08-21) 1 commit
(merged to 'next' on 2020-08-27 at caf5149c28)
+ ident: say whose identity is missing when giving user.name hint

A handful of places in in-tree code still relied on being able to
execute the git subcommands, especially built-ins, in "git-foo"
form, which have been corrected.

Will merge to 'master'.
Error message update.


* jc/war-on-dashed-git (2020-08-27) 1 commit
- git: catch an attempt to run "git-foo"
(this branch uses jc/undash-in-tree-git-callers.)
* jk/index-pack-w-more-threads (2020-08-21) 3 commits
(merged to 'next' on 2020-08-24 at 18f18a5b66)
+ index-pack: adjust default threading cap
+ p5302: count up to online-cpus for thread tests
+ p5302: disable thread-count parameter tests by default

The first step to remove on-disk binaries for built-in subcommands
by soliciting objections.
Long ago, we decided to use 3 threads by default when running the
index-pack task in parallel, which has been adjusted a bit upwards.

On hold for now.

* jk/refspecs-cleanup (2020-08-17) 2 commits
(merged to 'next' on 2020-08-24 at 807a080ebf)
+ refspec: make sure stack refspec_item variables are zeroed
+ refspec: fix documentation referring to refspec_item
(this branch is used by jk/refspecs-negative.)

Preliminary code clean-up before introducing "negative refspec".


* jk/rev-input-given-fix (2020-08-26) 1 commit
@ -116,72 +101,153 @@ repositories listed at
digging from HEAD; it has been corrected to become a no-op, like
"git log --tags=no-tag-matches-this-pattern" does.

Will merge to 'master'.

* jt/promisor-pack-fix (2020-08-20) 1 commit
(merged to 'next' on 2020-08-24 at cd26d30d8d)
+ fetch-pack: in partial clone, pass --promisor

Updates into a lazy/partial clone with a submodule did not work
well with transfer.fsckobjects set.


* tb/repack-clearing-midx (2020-08-26) 1 commit
(merged to 'next' on 2020-08-27 at a465875cbb)
+ builtin/repack.c: invalidate MIDX only when necessary
* ps/ref-transaction-hook (2020-08-25) 1 commit
(merged to 'next' on 2020-08-27 at 49b3fb8349)
+ refs: remove lookup cache for reference-transaction hook

When a packfile is removed by "git repack", multi-pack-index gets
cleared; the code was taught to do so less aggressively by first
checking if the midx actually refers to a pack that no longer
exists.
Code simplification by removing ineffective optimization.


* rp/apply-cached-doc (2020-08-20) 1 commit
(merged to 'next' on 2020-08-27 at 1d610f08ea)
+ git-apply.txt: update descriptions of --cached, --index

The description of --cached/--index options in "git apply --help"
has been updated.


* rs/checkout-no-overlay-pathspec-fix (2020-08-22) 1 commit
(merged to 'next' on 2020-08-27 at 277e39346d)
+ checkout, restore: make pathspec recursive

"git restore/checkout --no-overlay" with wildcarded pathspec
mistakenly removed matching paths in subdirectories, which has been
corrected.

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

* hl/bisect-doc-clarify-bad-good-ordering (2020-08-28) 1 commit
(merged to 'next' on 2020-08-31 at 11ce613916)
+ bisect: swap command-line options in documentation

Doc update.

Will merge to 'master'.


* jc/run-command-use-embedded-args (2020-08-26) 1 commit
(merged to 'next' on 2020-08-27 at c2b688e8e9)
+ run_command: teach API users to use embedded 'args' more
* jc/post-checkout-doc (2020-08-27) 1 commit
- doc: clarify how exit status of post-checkout hook is used

Various callers of run_command API has been modernized.
Doc update.

Will merge to 'next'.


* jt/interpret-branch-name-fallback (2020-08-29) 2 commits
(merged to 'next' on 2020-08-31 at 01f5dc8cc0)
+ wt-status: tolerate dangling marks
+ sha1-name: replace unsigned int with option struct

"git status" has trouble showing where it came from by interpreting
reflog entries that recordcertain events, e.g. "checkout @{u}", and
gives a hard/fatal error. Even though it inherently is impossible
to give a correct answer because the reflog entries lose some
information (e.g. "@{u}" does not record what branch the user was
on hence which branch 'the upstream' needs to be computed, and even
if the record were available, the relationship between branches may
have changed), at least hide the error to allow "status" show its
output.

Will merge to 'master'.


* es/worktree-repair (2020-08-27) 5 commits
- init: make --separate-git-dir work from within linked worktree
- init: teach --separate-git-dir to repair linked worktrees
- worktree: teach "repair" to fix outgoing links to worktrees
- worktree: teach "repair" to fix worktree back-links to main worktree
- worktree: add skeleton "repair" command
* pb/doc-sequence-editor-configuration (2020-08-31) 1 commit
(merged to 'next' on 2020-08-31 at 506466270c)
+ doc: mention GIT_SEQUENCE_EDITOR and 'sequence.editor' more

"git worktree repair" command to correct on-disk pointers between
the repository and its secondary working trees.
Doc update.

Will merge to 'master'.


* pb/imap-send-updates (2020-08-31) 3 commits
- git-imap-send.txt: add note about localized Gmail folders
- git-imap-send.txt: do verify SSL certificate for gmail.com
- git-imap-send.txt: don't duplicate 'Examples' sections

"git imap-send" updates.

Will merge to 'next'.


* so/separate-field-for-m-and-diff-merges (2020-08-31) 1 commit
(merged to 'next' on 2020-08-31 at 8def2984ca)
+ revision: add separate field for "-m" of "diff-index -m"

Internal API clean-up to handle two options "diff-index" and "log"
have, which happen to share the same short form, more sensibly.

Will merge to 'master'.


* vv/send-email-with-less-secure-apps-access (2020-08-29) 1 commit
- Documentation/git-send-email.txt: Mention less secure app access might need to enable.

Doc update.

Expecting a reroll.
cf. <xmqqwo1hi9nv.fsf@gitster.c.googlers.com>
cf. <xmqqft85i72s.fsf@gitster.c.googlers.com>


* ew/decline-core-abbrev (2020-09-01) 1 commit
- core.abbrev <off|false|no> disables abbreviations

Allow the configuration to specify no abbreviation regardless of
the hash algorithm.

Expecting a reroll. The intent is very good.


* jk/xrealloc-avoid-use-after-free (2020-09-01) 1 commit
- xrealloc: do not reuse pointer freed by zero-length realloc()

It was possible for xrealloc() to send a non-NULL pointer that has
been freed, which has been fixed.

Expecting a reroll.


* jk/worktree-check-clean-leakfix (2020-08-27) 1 commit
- worktree: fix leak in check_clean_worktree()
* pb/doc-external-diff-env (2020-09-01) 1 commit
- git.txt: correct stale 'GIT_EXTERNAL_DIFF' description

Leakfix.

Will merge to 'next'.


* so/pretty-abbrev-doc (2020-08-27) 1 commit
- pretty-options.txt: fix --no-abbrev-commit description

Documentation update for "--no-abbrev-commit".

Will merge to 'next'.


* ss/submodule-summary-in-c-fixes (2020-08-27) 3 commits
- t7421: eliminate 'grep' check in t7421.4 for mingw compatibility
- submodule: fix style in function definition
- submodule: eliminate unused parameters from print_submodule_summary()
(this branch uses ss/submodule-summary-in-c.)

Fixups to a topic in 'next'.
Doc update.

Will merge to 'next'.

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

* jc/war-on-dashed-git (2020-08-27) 1 commit
- git: catch an attempt to run "git-foo"
(this branch uses jc/undash-in-tree-git-callers.)

The first step to remove on-disk binaries for built-in subcommands
by soliciting objections.

On hold for now.


* tb/bloom-improvements (2020-08-11) 14 commits
- builtin/commit-graph.c: introduce '--max-new-filters=<n>'
- commit-graph: rename 'split_commit_graph_opts'
@ -272,29 +338,6 @@ repositories listed at
cf. <20200416152145.wp2zeibxmuyas6y6@feanor>


* mr/bisect-in-c-2 (2020-07-17) 14 commits
. SQUASH??? do not add new users of git_path_bisect_head()
. 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: call 'clear_commit_marks_all()' in 'bisect_next_all()'
. 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: BUG() in cmd_*() on invalid subcommand

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

Needs more work.
Ejected out of 'seen'; al/bisect-first-parent topic has a bit of
textual conflict with this topic.


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

@ -305,37 +348,104 @@ repositories listed at
--------------------------------------------------
[Cooking]

* jk/refspecs-cleanup (2020-08-17) 2 commits
(merged to 'next' on 2020-08-24 at 807a080ebf)
+ refspec: make sure stack refspec_item variables are zeroed
+ refspec: fix documentation referring to refspec_item
(this branch is used by jk/refspecs-negative.)
* mr/bisect-in-c-2 (2020-08-31) 13 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: call 'clear_commit_marks_all()' in 'bisect_next_all()'
- 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: BUG() in cmd_*() on invalid subcommand

Preliminary code clean-up before introducing "negative refspec".
Rewrite of the "git bisect" script in C continues.


* jc/undash-in-tree-git-callers (2020-08-27) 3 commits
(merged to 'next' on 2020-08-27 at 671fa2f87e)
+ credential-cache: use child_process.args
+ cvsexportcommit: do not run git programs in dashed form
+ transport-helper: do not run git-remote-ext etc. in dashed form
(this branch is used by jc/war-on-dashed-git.)

A handful of places in in-tree code still relied on being able to
execute the git subcommands, especially built-ins, in "git-foo"
form, which have been corrected.

Will merge to 'master'.


* rs/checkout-no-overlay-pathspec-fix (2020-08-22) 1 commit
(merged to 'next' on 2020-08-27 at 277e39346d)
+ checkout, restore: make pathspec recursive
* tb/repack-clearing-midx (2020-08-28) 2 commits
(merged to 'next' on 2020-08-28 at 4204c0cb5e)
+ midx: traverse the local MIDX first
(merged to 'next' on 2020-08-27 at a465875cbb)
+ builtin/repack.c: invalidate MIDX only when necessary

"git restore/checkout --no-overlay" with wildcarded pathspec
mistakenly removed matching paths in subdirectories, which has been
corrected.
When a packfile is removed by "git repack", multi-pack-index gets
cleared; the code was taught to do so less aggressively by first
checking if the midx actually refers to a pack that no longer
exists.

Will merge to 'master'.


* al/bisect-first-parent (2020-08-22) 1 commit
(merged to 'next' on 2020-08-24 at f95fbf45a6)
+ bisect: add first-parent option to documentation
* jc/run-command-use-embedded-args (2020-08-26) 1 commit
(merged to 'next' on 2020-08-27 at c2b688e8e9)
+ run_command: teach API users to use embedded 'args' more

Finishing touches.
Various callers of run_command API has been modernized.

Will merge to 'master'.


* es/worktree-repair (2020-08-31) 5 commits
(merged to 'next' on 2020-08-31 at 604825c5e4)
+ init: make --separate-git-dir work from within linked worktree
+ init: teach --separate-git-dir to repair linked worktrees
+ worktree: teach "repair" to fix outgoing links to worktrees
+ worktree: teach "repair" to fix worktree back-links to main worktree
+ worktree: add skeleton "repair" command

"git worktree repair" command to correct on-disk pointers between
the repository and its secondary working trees.

Will merge to 'master'.


* jk/worktree-check-clean-leakfix (2020-08-27) 1 commit
(merged to 'next' on 2020-08-31 at 220fc43629)
+ worktree: fix leak in check_clean_worktree()

Leakfix.

Will merge to 'master'.


* so/pretty-abbrev-doc (2020-08-27) 1 commit
(merged to 'next' on 2020-08-31 at d664bd0c06)
+ pretty-options.txt: fix --no-abbrev-commit description

Documentation update for "--no-abbrev-commit".

Will merge to 'master'.


* ss/submodule-summary-in-c-fixes (2020-08-27) 3 commits
- t7421: eliminate 'grep' check in t7421.4 for mingw compatibility
- submodule: fix style in function definition
- submodule: eliminate unused parameters from print_submodule_summary()
(this branch uses ss/submodule-summary-in-c.)

Fixups to a topic in 'next'.

Will merge to 'next'.


* js/no-builtins-on-disk-option (2020-08-24) 3 commits
- ci: stop linking built-ins to the dashed versions
- install: optionally skip linking/copying the built-ins
@ -369,108 +479,29 @@ repositories listed at
"git index-pack" learned to resolve deltified objects with greater
parallelism.


* hn/refs-pseudorefs (2020-08-21) 4 commits
(merged to 'next' on 2020-08-24 at 3579abe8ff)
+ sequencer: treat REVERT_HEAD as a pseudo ref
+ builtin/commit: suggest update-ref for pseudoref removal
+ sequencer: treat CHERRY_PICK_HEAD as a pseudo ref
+ refs: make refs_ref_exists public

Accesses to two pseudorefs have been updated to properly use ref
API.

Will merge to 'master'.
Expecting the final reroll.
cf. https://colabti.org/irclogger/irclogger_log/git-devel?date=2020-08-31#l82


* jt/promisor-pack-fix (2020-08-20) 1 commit
(merged to 'next' on 2020-08-24 at cd26d30d8d)
+ fetch-pack: in partial clone, pass --promisor

Updates into a lazy/partial clone with a submodule did not work
well with transfer.fsckobjects set.

Will merge to 'master'.


* hv/ref-filter-trailers-atom-parsing-fix (2020-08-21) 2 commits
(merged to 'next' on 2020-08-24 at 79b27f3263)
+ ref-filter: 'contents:trailers' show error if `:` is missing
+ t6300: unify %(trailers) and %(contents:trailers) tests

The parser for "git for-each-ref --format=..." was too loose when
parsing the "%(trailers...)" atom, and forgot that "trailers" and
"trailers:<modifers>" are the only two allowed forms, which has
been corrected.

Will merge to 'master'.


* jc/ident-whose-ident (2020-08-21) 1 commit
(merged to 'next' on 2020-08-27 at caf5149c28)
+ ident: say whose identity is missing when giving user.name hint

Error message update.

Will merge to 'master'.


* jk/index-pack-w-more-threads (2020-08-21) 3 commits
(merged to 'next' on 2020-08-24 at 18f18a5b66)
+ index-pack: adjust default threading cap
+ p5302: count up to online-cpus for thread tests
+ p5302: disable thread-count parameter tests by default

Long ago, we decided to use 3 threads by default when running the
index-pack task in parallel, which has been adjusted a bit upwards.

Will merge to 'master'.


* rp/apply-cached-doc (2020-08-20) 1 commit
(merged to 'next' on 2020-08-27 at 1d610f08ea)
+ git-apply.txt: update descriptions of --cached, --index

The description of --cached/--index options in "git apply --help"
has been updated.

Will merge to 'master'.


* dd/diff-customize-index-line-abbrev (2020-08-21) 2 commits
(merged to 'next' on 2020-08-24 at 74e842a2c8)
+ diff: index-line: respect --abbrev in object's name
+ t4013: improve diff-post-processor logic

The output from the "diff" family of the commands had abbreviated
object names of blobs involved in the patch, but its length was not
affected by the --abbrev option. Now it is.

Will merge to 'master'.


* hv/ref-filter-misc (2020-08-17) 9 commits
(merged to 'next' on 2020-08-27 at c015fa6b0f)
+ ref-filter: add `sanitize` option for 'subject' atom
+ format-support: move `format_sanitized_subject()` from pretty
+ pretty: refactor `format_sanitized_subject()`
+ ref-filter: add `short` modifier to 'parent' atom
+ ref-filter: add `short` modifier to 'tree' atom
+ ref-filter: rename `objectname` related functions and fields
+ ref-filter: modify error messages in `grab_objectname()`
+ ref-filter: refactor `grab_objectname()`
+ ref-filter: support different email formats
* hv/ref-filter-misc (2020-08-28) 8 commits
- ref-filter: add `sanitize` option for 'subject' atom
- pretty: refactor `format_sanitized_subject()`
- ref-filter: add `short` modifier to 'parent' atom
- ref-filter: add `short` modifier to 'tree' atom
- ref-filter: rename `objectname` related functions and fields
- ref-filter: modify error messages in `grab_objectname()`
- ref-filter: refactor `grab_objectname()`
- ref-filter: support different email formats

The "--format=" option to the "for-each-ref" command and friends
learned a few more tricks, e.g. the ":short" suffix that applies to
"objectname" now also can be used for "parent", "tree", etc.

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


* jk/refspecs-negative (2020-08-21) 1 commit
- refspec: add support for negative refspecs
(this branch uses jk/refspecs-cleanup.)

"negative refspecs"

@ -606,15 +637,6 @@ repositories listed at

Yet another subcommand of "git submodule" is getting rewritten in C.

Looking good.


* am/ci-wsfix (2020-08-21) 1 commit
(merged to 'next' on 2020-08-24 at 8491e031f1)
+ ci: fix inconsistent indentation

Aesthetic fix to a CI configuration file.

Will merge to 'master'.


@ -636,4 +658,16 @@ repositories listed at
repository maintenance tasks, not limited to the object database
cleaning.

Comments?
Almost ready for 'next'.
cf. https://colabti.org/irclogger/irclogger_log/git-devel?date=2020-08-31#l44

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

* jc/remove-pack-redundant (2020-08-25) 1 commit
- pack-redundant: gauge the usage before proposing its removal

The first step to remove "git pack-redundant" by soliciting
objections.

Stop--we had some activity as late as last year.