threads / discuss / 47682

Creating sparse checkout in a new linked git worktree

Subject: Creating sparse checkout in a new linked git worktree

## tl;dr

3 messages between Jan 24, 2018 and Jan 28, 2018.

replies: 2people: 3as markdown or json

Jessie Hernandez· Jan 24, 2018, 16:11 UTC · lore
Hi All,

I am trying to get a sparse checkout in a linked worktree but cannot get it working. I have tried the following

* git worktree add /some/new/path/new-branch --no-checkout
* git config core.sparseCheckout true
* <add the directory I would like to checkout out to
$GIT_DIR/info/sparse-checkout>
* cd  /some/new/path/new-branch
* git read-tree -mu sparse-checkout
But I still end up with a fully populated worktree.
Is there something I am missing or doing wrong?
thank you for any response.
jessie
Eric Sunshine· Jan 28, 2018, 07:25 UTC · re: Jessie Hernandez · lore

Re: Creating sparse checkout in a new linked git worktree

On Wed, Jan 24, 2018 at 11:11 AM, Jessie Hernandez <git@jessiehernandez.com> wrote:

Show 12 quoted lines
> I am trying to get a sparse checkout in a linked worktree but cannot get
> it working. I have tried the following
>
> * git worktree add /some/new/path/new-branch --no-checkout
> * git config core.sparseCheckout true
> * <add the directory I would like to checkout out to
> $GIT_DIR/info/sparse-checkout>
> * cd  /some/new/path/new-branch
> * git read-tree -mu sparse-checkout
>
> But I still end up with a fully populated worktree.
> Is there something I am missing or doing wrong?

The sparse-checkout file is specific to each worktree, which allows you to control "sparsity" on a worktree by worktree basis. Therefore, you should create $GIT_DIR/worktrees/<id>/info/sparse-checkout instead (where <id> is "new-branch" in your example).

Duy Nguyen· Jan 28, 2018, 09:40 UTC · re: Eric Sunshine · lore

Re: Creating sparse checkout in a new linked git worktree

On Sun, Jan 28, 2018 at 2:25 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 19 quoted lines
> On Wed, Jan 24, 2018 at 11:11 AM, Jessie Hernandez
> <git@jessiehernandez.com> wrote:
>> I am trying to get a sparse checkout in a linked worktree but cannot get
>> it working. I have tried the following
>>
>> * git worktree add /some/new/path/new-branch --no-checkout
>> * git config core.sparseCheckout true
>> * <add the directory I would like to checkout out to
>> $GIT_DIR/info/sparse-checkout>
>> * cd  /some/new/path/new-branch
>> * git read-tree -mu sparse-checkout
>>
>> But I still end up with a fully populated worktree.
>> Is there something I am missing or doing wrong?
>
> The sparse-checkout file is specific to each worktree, which allows
> you to control "sparsity" on a worktree by worktree basis. Therefore,
> you should create $GIT_DIR/worktrees/<id>/info/sparse-checkout instead
> (where <id> is "new-branch" in your example).
Nit. Do
    $EDITOR `git rev-parse --git-path info/sparse-checkout`

if you're already in the right worktree so you don't have to find out about <id> or the full path.

I wanted to add "git checkout --edit-sparse" for some time. Using it in multiple worktrees may be a good push for me to eventually do it.

-- 
Duy

← back to recent threads