threads / bug / 56726

Possible bug with checkout and submodules

Subject: Possible bug with checkout and submodules

## tl;dr

4 messages between Oct 16, 2021 and Oct 17, 2021.

replies: 3people: 3as markdown or json

Adam Hutchings· Oct 16, 2021, 18:44 UTC · lore
Hi,
I may have found a bug in Git but I'm not sure if it's intentional or not. I
checked out to a new branch to test a PR on my repo, and the PR added a
submodule. I init'ed and updated the submodule, and when I was done testing, I
went back to my main branch. However, it did not remove the submodule, and
produced this message:
```
$ git checkout main
warning: unable to rmdir 'glfw': Directory not empty
Switched to branch 'main'
$
```
A friend of mine has managed to reproduce this behavior. We believe the expected
outcome is to remove the submodule folder, but this does not seem to happen. Is
this intentional?
Best,
Adam Hutchings
brian m. carlson· Oct 16, 2021, 18:52 UTC · re: Adam Hutchings · lore

Re: Possible bug with checkout and submodules

On 2021-10-16 at 18:44:04, Adam Hutchings wrote:
Show 31 quoted lines
> Hi,
> 
> I may have found a bug in Git but I'm not sure if it's intentional or not. I
> 
> checked out to a new branch to test a PR on my repo, and the PR added a
> 
> submodule. I init'ed and updated the submodule, and when I was done testing, I
> 
> went back to my main branch. However, it did not remove the submodule, and
> 
> produced this message:
> 
> 
> ```
> 
> $ git checkout main
> 
> warning: unable to rmdir 'glfw': Directory not empty
> 
> Switched to branch 'main'
> 
> $
> 
> ```
> 
> 
> A friend of mine has managed to reproduce this behavior. We believe the expected
> 
> outcome is to remove the submodule folder, but this does not seem to happen. Is
> 
> this intentional?

This is intentional. It may be that the submodule has data that's ignored, it could have local changes, or it could have additional unpushed history, any of which would probably be data users might not want to lose. As a result, we don't remove the directory unless the user has run "git submodule deinit".

-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA
Adam Hutchings· Oct 16, 2021, 20:32 UTC · re: brian m. carlson · lore

Re: Possible bug with checkout and submodules

OK, thank you!

On Sat, Oct 16, 2021 at 11:52 AM brian m. carlson <sandals@crustytoothpaste.net> wrote:

Show 42 quoted lines
>
> On 2021-10-16 at 18:44:04, Adam Hutchings wrote:
> > Hi,
> >
> > I may have found a bug in Git but I'm not sure if it's intentional or not. I
> >
> > checked out to a new branch to test a PR on my repo, and the PR added a
> >
> > submodule. I init'ed and updated the submodule, and when I was done testing, I
> >
> > went back to my main branch. However, it did not remove the submodule, and
> >
> > produced this message:
> >
> >
> > ```
> >
> > $ git checkout main
> >
> > warning: unable to rmdir 'glfw': Directory not empty
> >
> > Switched to branch 'main'
> >
> > $
> >
> > ```
> >
> >
> > A friend of mine has managed to reproduce this behavior. We believe the expected
> >
> > outcome is to remove the submodule folder, but this does not seem to happen. Is
> >
> > this intentional?
>
> This is intentional.  It may be that the submodule has data that's
> ignored, it could have local changes, or it could have additional
> unpushed history, any of which would probably be data users might not
> want to lose.  As a result, we don't remove the directory unless the
> user has run "git submodule deinit".
> --
> brian m. carlson (he/him or they/them)
> Toronto, Ontario, CA
Philippe Blain· Oct 17, 2021, 00:30 UTC · re: brian m. carlson · lore

Re: Possible bug with checkout and submodules

Hi Adam,
Le 2021-10-16 à 14:52, brian m. carlson a écrit :
Show 39 quoted lines
> On 2021-10-16 at 18:44:04, Adam Hutchings wrote:
>> Hi,
>>
>> I may have found a bug in Git but I'm not sure if it's intentional or not. I
>>
>> checked out to a new branch to test a PR on my repo, and the PR added a
>>
>> submodule. I init'ed and updated the submodule, and when I was done testing, I
>>
>> went back to my main branch. However, it did not remove the submodule, and
>>
>> produced this message:
>>
>>
>> ```
>>
>> $ git checkout main
>>
>> warning: unable to rmdir 'glfw': Directory not empty
>>
>> Switched to branch 'main'
>>
>> $
>>
>> ```
>>
>>
>> A friend of mine has managed to reproduce this behavior. We believe the expected
>>
>> outcome is to remove the submodule folder, but this does not seem to happen. Is
>>
>> this intentional?
> 
> This is intentional.  It may be that the submodule has data that's
> ignored, it could have local changes, or it could have additional
> unpushed history, any of which would probably be data users might not
> want to lose.  As a result, we don't remove the directory unless the
> user has run "git submodule deinit".
> 

... or unless you run 'git checkout --recurse-submodules', or just 'git checkout' and you have 'submodule.recurse' set to true in your configuration.

Cheers, Philippe.

← back to recent threads