Re: [PATCH 8/8] worktree: make "move" refuse to move atop missing registered worktree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes:

> -	if (file_exists(dst.buf))
> -		die(_("target '%s' already exists"), dst.buf);
> +	check_candidate_path(dst.buf, force, worktrees, "move");

OK.  Moving to a location that is already occupied by an existing
file or a directory, even if that file or directory is not one of
the existing worktree, used to die here, but check_candidate_path()
performs that check and dies with almost the same message (it does
not say 'target'), so there is no loss of safety here.  The check
done in the check_candidate_path() helper is even better in that it
allows an existing directory as long as it is empty.

> diff --git a/t/t2403-worktree-move.sh b/t/t2403-worktree-move.sh
> index 939d18d728..7035c9d72e 100755
> --- a/t/t2403-worktree-move.sh
> +++ b/t/t2403-worktree-move.sh
> @@ -112,6 +112,27 @@ test_expect_success 'move locked worktree (force)' '
>  	git worktree move --force --force flump ploof
>  '
>  
> +test_expect_success 'refuse to move worktree atop existing path' '
> +	> bobble &&

Style?

> +	git worktree add --detach beeble &&
> +	test_must_fail git worktree move beeble bobble
> +'
> +
> +test_expect_success 'move atop existing but missing worktree' '
> +	git worktree add --detach gnoo &&
> +	git worktree add --detach pneu &&
> +	rm -fr pneu &&
> +	test_must_fail git worktree move gnoo pneu &&
> +	git worktree move --force gnoo pneu &&
> +
> +	git worktree add --detach nu &&
> +	git worktree lock nu &&
> +	rm -fr nu &&
> +	test_must_fail git worktree move pneu nu &&
> +	test_must_fail git worktree --force move pneu nu &&
> +	git worktree move --force --force pneu nu
> +'
> +
>  test_expect_success 'move a repo with uninitialized submodule' '
>  	git init withsub &&
>  	(

Thanks.



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux