Subject: Re: What's cooking in git.git (Dec 2021, #01; Fri, 3)

From: Derrick Stolee <[email-masked]>
Date: Tue, 7 Dec 2021 10:54:16 -0500

On 12/3/2021 8:37 PM, Junio C Hamano wrote:
> This is probably the first issue of the "What's cooking" report, in
> which all topics have some sort of description.
> 
> That's a small achievement, at least for me.

Thank you for continuing to do this monumental amount of work.
 
> Even better, each and every topic is annotated with some sort of
> verdict (like "Will discard", "Expecting a reroll", "Will merge to
> 'next'?" etc.).  There is no topic in the "Undecided" category when
> this report is fed to "cook -w" script (found in the 'todo' branch).
> 
> A handful of topics are added to 'next', and we have about 40 topics
> cooking there.  For them, the future is automated---they spend about
> a week in 'next', and if we find issues in them, we incrementally
> improve them, or get merged to 'master'.
> 
> Then we have about a dozen topics that are marked for 'next' (please
> raise your hand if you have objection before a real damage is done),
> and 8 more that may be ready for 'next' (please raise your hand if
> you want to nudge them in either direction, for or against).

> * ds/trace2-regions-in-tests (2021-11-29) 2 commits
>  - t/t*: remove custom GIT_TRACE2_EVENT_NESTING
>  - test-lib.sh: set GIT_TRACE2_EVENT_NESTING
> 
>  The default setting for trace2 event nesting was too low to cause
>  test failures, which is worked around by bumping it up in the test
>  framework.
> 
>  Will merge to 'next'.
>  source: <[email-masked]>

I agree this is ready. Some additional discussion is in the thread,
but it is all about how to build upon this fix.

> * en/keep-cwd (2021-12-01) 11 commits
>  - t2501: simplify the tests since we can now assume desired behavior
>  - dir: new flag to remove_dir_recurse() to spare the original_cwd
>  - dir: avoid incidentally removing the original_cwd in remove_path()
>  - stash: do not attempt to remove startup_info->original_cwd
>  - rebase: do not attempt to remove startup_info->original_cwd
>  - clean: do not attempt to remove startup_info->original_cwd
>  - symlinks: do not include startup_info->original_cwd in dir removal
>  - unpack-trees: add special cwd handling
>  - unpack-trees: refuse to remove startup_info->original_cwd
>  - setup: introduce startup_info->original_cwd
>  - t2501: add various tests for removing the current working directory
> 
>  Many git commands that deal with working tree files try to remove a
>  directory that becomes empty (i.e. "git switch" from a branch that
>  has the directory to another branch that does not would attempt
>  remove all files in the directory and the directory itself).  This
>  drops users into an unfamiliar situation if the command was run in
>  a subdirectory that becomes subject to removal due to the command.
>  The commands have been taught to keep an empty directory if it is
>  the directory they were started in to avoid surprising users.
> 
>  Needs review.
>  There are some comments on earlier rounds; the latest one needs a
>  serious review or at least Acks from past commentors.
>  source: <[email-masked]>

I've been meaning to get back to this one. I'll see what I can do
today.

> * ds/fetch-pull-with-sparse-index (2021-11-29) 3 commits
>  - ls-files: add --sparse option
>  - fetch/pull: use the sparse index
>  - Merge branch 'ld/sparse-diff-blame' into ds/fetch-pull-with-sparse-index
>  (this branch uses ld/sparse-diff-blame and vd/sparse-reset.)
> 
>  "git fetch" and "git pull" are now declared sparse-index clean.
>  Also "git ls-files" learns the "--sparse" option to help debugging.
> 
>  Expecting a reroll?
>  Discussion seems to have stalled, with a few loose ends questions.
>  source: <[email-masked]>

I do plan to re-roll, but with all of the movement in vd/sparse-reset
and ld/sparse-diff-blame, I paused work on this. As those topics
become more stable, I will revisit this and the comments that are
still outstanding.

I have another sparse index topic [1] that came out _after_ this
cooking email that is higher priority, since it fixes a bug.

[1] https://lore.kernel.org/git/[email-masked]/

> * js/scalar (2021-12-01) 17 commits
>  - scalar: implement the `version` command
>  - scalar: implement the `delete` command
>  - scalar: teach 'reconfigure' to optionally handle all registered enlistments
>  - scalar: allow reconfiguring an existing enlistment
>  - scalar: implement the `run` command
>  - scalar: teach 'clone' to support the --single-branch option
>  - scalar: implement the `clone` subcommand
>  - scalar: implement 'scalar list'
>  - scalar: let 'unregister' handle a deleted enlistment directory gracefully
>  - scalar: 'unregister' stops background maintenance
>  - scalar: 'register' sets recommended config and starts maintenance
>  - ci: also run the `scalar` tests
>  - cmake: optionally build `scalar`, too
>  - scalar: create test infrastructure
>  - scalar: start documenting the command
>  - scalar: create a rudimentary executable
>  - scalar: add a README with a roadmap
> 
>  Add pieces from "scalar" to contrib/.
> 
>  Need to pick up the reroll before merging to 'next'.
>  cf. <[email-masked]>
>  source: <[email-masked]>

I look forward to moving to the next stages of this work.

Thanks,
-Stolee