From: Lessley Dennington Date: Thu, 30 Dec 2021 16:19:53 GMT Subject: Re: [PATCH 1/2] sparse-checkout: custom tab completion tests Message-ID: In-Reply-To: On 12/30/21 7:43 AM, Derrick Stolee wrote: >> +test_expect_failure 'sparse-checkout completes subcommand options' ' >> + test_completion "git sparse-checkout init --" <<-\EOF && >> + --cone Z >> + --sparse-index Z >> + --no-sparse-index Z >> + EOF >> + >> + test_completion "git sparse-checkout set --" <<-\EOF && >> + --stdin Z > > In en/sparse-checkout-set, the 'set' subcommand learns the options > for init, including --cone, --sparse-index, and --no-sparse-index. > I think technically, --no-cone is in there, too. > > Further, the 'reapply' subcommand learns these options in that > series and I see you do not include that subcommand in this test. > > You might want to rebase onto en/sparse-checkout-set and adjust > these tests for the new options (plus change the next patch that > implements the completion). > Ah great point - I was going off of the sparse-checkout docs and forgot about Elijah's changes. I will do the rebase and make your suggested corrections in v2. >> + git -C sparse-checkout config index.sparse false && > > I'm guessing that the implementation actually requires this, but > I'll take a look in the next patch. It might just be slow to expand > the full list of directories in the sparse index case. > I'll plan to remove in v2 per your comments in [1].>> + # test tab completion >> + ( >> + cd sparse-checkout && >> + test_completion "git sparse-checkout set f" <<-\EOF >> + folder1 Z >> + folder1/0 Z >> + folder1/0/1 Z >> + folder2 Z >> + folder2/0 Z >> + folder3 Z > > This tab-completion doing a full directory walk seems like it could > be expensive for a large repository, but I suppose it is the only way > to allow the following sequence: > > fol -> folder > folder1/ -> folder1/0 > folder1/0/ -> folder1/0/1 > > (Hopefully that makes sense.) > Yes, it does. > It would be more efficient to only go one level deep at a time, but > that might not be possible with the tab completion mechanisms. > When you say one level deep, do you mean that from the sparse-checkout directory, tab completion would only show the following? folder1 folder2 folder3 -Lessley [1]: https://lore.kernel.org/git/c79ccf4a-4da9-1c60-32eb-124d3fa94400@gmail.com/