Open To1ne opened 4 months ago
Thanks for reporting!
It looks like you are on Windows and aren't using the latest version, 0.11.4 at the moment. There the issue you are describing should be fixed. Could you try to update and try again? Thank you.
I'm on Linux. Maybe I wasn't using 0.11.4 at the time, but now I am. The log now shows:
2024-04-26T13:42:33.040736Z ERROR add_project: crates/gitbutler-tauri/src/projects.rs:27: error=Error(failed to add 'foo.socket' to temporary index
Caused by:
0: failed to open repository
1: failed to run initial flush
2: failed to build working directory tree
3: failed to build wd index
4: failed to add 'foo.socket' to temporary index
5: could not open '/tmp/tmp.PdmNlywACH/foo.socket': No such device or address; class=Os (2)) [3mpath[0m[2m=[0m"/tmp/tmp.PdmNlywACH"
2024-04-26T13:42:33.040780Z INFO add_project: crates/gitbutler-tauri/src/projects.rs:27: close time.busy=16.7ms time.idle=57.7µs [3mpath[0m[2m=[0m"/tmp/tmp.PdmNlywACH"
Thanks you!
That's strange - foo.socket
shouldn't be touched if it is ignored. If the .gitignore
file contains foo.socket
and git ignores it, then the answer must be some part of the code that doesn't respect .gitignore
- I will take a look.
I actually can't reproduce this on MacOS. Not only does our client ignore it, but even the Git CLI ignores it entirely, even without a .gitignore
.
EDIT: This looks like a symlink, that's a clue. Let me check.
I still can't reproduce on Mac for some reason; I tried
This might be linux specific. I'm not sure why we'd be trying to open it, though, given that it's gitignored. That's really strange and doesn't seem like it'd be platform-specific.
A clue that this is a symlinked + closed (server is dead) socket is that the realpath gets resolved to /tmp
and the error, No such device or address
, means that the socket file exists but no endpoint (server) is responding on the other side.
We do have a bug, however, that GItButler will show a symlinked/hardlinked socket in the file tree erroneously, but it seems to be unaffected by commits (as it should be). Git CLI at least follows the symlink and tries to stat
the file it points to when determining if the file should be ignored - we should be doing that for anything that isn't a Normal/Dir file node on *nix systems.
However that doesn't address the fact I still can't reproduce on Mac 😓 I'll have to try this on Linux when I get a chance.
Possibly related issues: #2608 and #2672
I tried to import my project, in the project directory there is a socket file (which is in the
.gitignore
) which is used to run the project locally. Having this socket in existence makes project import fail:You can clone the project from https://gitlab.com/gitlab-org/gitlab-development-kit/, but you need to run the whole SDK to run into this, so I've created reproduction steps:
Try to import that, and you'll get "Something went wrong".
While I was testing this I noticed import seems to hang when you have a named pipe in your repo, created with
mkfifi my.pipe
.