Subject: Re: [PATCH] new-workdir: Never try to recurse into submodules on the initial checkout.

From: Jonathan Nieder <[email-masked]>
Date: Mon, 14 Jan 2019 13:34:30 -0800

Hi,

Marc Branchaud wrote:

> The new workdir is empty before the checkout, so attempts to recurse into
> a non-existent submodule directory fail.
>
> Signed-off-by: Marc Branchaud <[email-masked]>
> ---

Thanks for reporting.  Can you describe the error message when it fails
here?

> Until the worktree command supports submodules I've gone back to using the
> git-new-workdir script, but it fails if my config has
> submdodule.recurse=true.

Oh, dear.  In general, the project does a better job at supporting "git
worktree" than "git new-workdir", but I don't blame you about this.

Noting locally as another vote for getting submodules to play well with
worktrees soon.

[...]
>  contrib/workdir/git-new-workdir | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/contrib/workdir/git-new-workdir b/contrib/workdir/git-new-workdir
> index 888c34a521..5de1dc3c58 100755
> --- a/contrib/workdir/git-new-workdir
> +++ b/contrib/workdir/git-new-workdir
> @@ -102,4 +102,4 @@ trap - $siglist
> 
>  # checkout the branch (either the same as HEAD from the original repository,
>  # or the one that was asked for)
> -git checkout -f $branch
> +git -c submodule.recurse=false checkout -f $branch

nit: can this use "git checkout --no-recurse-submodules" instead
of -c?

In general, we tend to recommend that kind of option instead of
--config in scripts.

Thanks,
Jonathan