facebook / sapling

A Scalable, User-Friendly Source Control System.
https://sapling-scm.com
GNU General Public License v2.0
5.91k stars 269 forks source link

Sapling operations abort when trying to access updated submodule #879

Open murtlatif opened 2 months ago

murtlatif commented 2 months ago

I have a project structure that looks like this:

my_project/
├─ my_submodule/
├─ other_code/

Where my_submodule is a submodule pointing to another one of my own repositories. Note that my_submodule is a renamed submodule, so the actual repository name is my_real_submodule, and I've aliased it as my_submodule when I initialized it.

When I update and push my_submodule, I see that the folder has changed in sl status:

$ sl status
M my_submodule

However, if I try to do anything that requires reading the actual contents of the "file" (since it's treated as a file IIUC), then sapling fails.

$ sl commit
abort: C:\path\to\submodule: Access is denied
$ sl diff
abort: C:\path\to\submodule: Access is denied

Trying to view changes on ISL (though, I am not surprised this one errors):

The editor could not be opened due to an unexpected error: Unable to read file 'C:\path\to\submodule' (Error: Unable to read file 'C:\path\to\submodule' that is actually a directory)

I assume that the change for this submodule is updating the hash that the directory is pointing to in the submodule repo. The issue is that I want to be able to commit this change but I cannot commit it since the sapling operations abort when trying to work with the submodule change. I can revert the change, but it will point the submodule back to an older hash which I do not want.


Sapling version: Sapling 0.2.20230523-092610+f12b7eee OS: Windows