git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC PATCH 2/2] t2402: add test to locked linked worktree marker

From
Rafael Silva <rafaeloliveira.cs@gmail.com>
Date
Sep 29, 2020, 21:37 UTC
Message-ID
<20200929213747.GC1336@contrib-buster.localdomain>
In-Reply-To
<xmqq3631lg8f.fsf@gitster.c.googlers.com>
On Mon, Sep 28, 2020 at 02:54:24PM -0700, Junio C Hamano wrote:
Show 14 quoted lines
> Rafael Silva <rafaeloliveira.cs@gmail.com> writes:
> 
> > Test the output of the `worktree list` command to show when
> > a linked worktree is locked and test to not mistakenly
> > mark main or unlocked worktrees.
> >
> > Signed-off-by: Rafael Silva <rafaeloliveira.cs@gmail.com>
> > ---
> >  t/t2402-worktree-list.sh | 13 +++++++++++++
> >  1 file changed, 13 insertions(+)
> 
> I think this should be part of [1/2], as the change necessary to
> implement the new feature is small enough that there is no reason
> to split the test part out.
Sounds good
Show 45 quoted lines
> 
> > diff --git a/t/t2402-worktree-list.sh b/t/t2402-worktree-list.sh
> > index 52585ec2aa..07bd9a3350 100755
> > --- a/t/t2402-worktree-list.sh
> > +++ b/t/t2402-worktree-list.sh
> > @@ -61,6 +61,19 @@ test_expect_success '"list" all worktrees --porcelain' '
> >  	test_cmp expect actual
> >  '
> >  
> > +test_expect_success 'show locked worktree with (locked)' '
> > +	echo "$(git rev-parse --show-toplevel) $(git rev-parse --short HEAD) [$(git symbolic-ref --short HEAD)]" >expect &&
> > +	test_when_finished "rm -rf locked unlocked out actual expect && git worktree prune" &&
> > +	git worktree add --detach locked master &&
> > +	git worktree add --detach unlocked master &&
> > +	git worktree lock locked &&
> > +	echo "$(git -C locked rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD) (locked)" >>expect &&
> > +	echo "$(git -C unlocked rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD)" >>expect &&
> > +	git worktree list >out &&
> > +	sed "s/  */ /g" <out >actual &&
> > +	test_cmp expect actual
> > +'
> 
> This seems to prescribe the output from the command too strictly
> (you do avoid being overly too strict by removing the indentation
> with 's/ */ /g' though).  
> 
> If the leading path to the $TRASH_DIRECTORY has two or more
> consecutive SPs (and that is not something under our control), the
> 'expect' file would keep such a double-SP, but such a double-SP in
> 'out' would have been squashed out in the 'actual' file.
> 
> I wonder if
> 
> 	grep '/locked  *[0-9a-f].* (locked)' out &&
> 	! grep '/unlocked  *[0-9a-f].* (locked)' out
> 
> might be a better way to test?  That is
> 
>  - we do not care what the leading directories are called
>  - we do not care what branch is checked out or how they are presented
>  - we care the one that ends with /locked is (locked)
>  - we care the one that ends with /unlocked is not (locked)
> 
> After all, this new test piece is not about verifying that the
> object name or branch name is correct.

Sounds good and I agree with the all, and seems even easier to understand the test code this way. Will address this change on the next patch, although I'm not sure whether somebody could run into any issues when running the `grep` command in other platforms. I'll look into it.

Previous: Junio C HamanoNext: Eric Sunshine
Message 8 of 23 in “teach `worktree list` to mark locked worktrees”
  1. 0/2 teach `worktree list` to mark locked worktreesRafael Silva, Sep 28, 2020
  2. 1/2 worktree: teach `list` to mark locked worktreeRafael Silva, Sep 28, 2020
  3. Junio C HamanoSep 28, 2020
  4. Rafael SilvaSep 29, 2020
  5. Eric SunshineSep 30, 2020
  6. 2/2 t2402: add test to locked linked worktree markerRafael Silva, Sep 28, 2020
  7. Junio C HamanoSep 28, 2020
  8. Rafael SilvaSep 29, 2020
  9. Eric SunshineSep 30, 2020
  10. Junio C HamanoSep 28, 2020
  11. Rafael SilvaSep 29, 2020
  12. Eric SunshineSep 30, 2020
  13. Rafael SilvaOct 2, 2020
  14. Eric SunshineOct 9, 2020
  15. Rafael SilvaOct 10, 2020
  16. 0/1 Teach "worktree list" to annotate locked worktreesRafael Silva, Oct 10, 2020
  17. 1/1 worktree: teach `list` to annotate locked worktreeRafael Silva, Oct 10, 2020
  18. Eric SunshineOct 11, 2020
  19. Eric SunshineOct 11, 2020
  20. Rafael SilvaOct 11, 2020
  21. 0/1 Teach "worktree list" to annotate locked worktreesRafael Silva, Oct 11, 2020
  22. worktree: teach `list` to annotate locked worktreeRafael Silva, Oct 11, 2020
  23. Eric SunshineOct 12, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.