Closed maichmueller closed 1 year ago
This is the culprit:
+_gitstatus_install_main:214> mkdir -p -- /u/michael.aichmueller/.cache/gitstatus
mkdir: cannot create directory ‘/u/michael.aichmueller/.cache’: File exists
Or, in plain words, mkdir -p -- /u/michael.aichmueller/.cache/gitstatus
fails with the diagnostic "File exists". This implies that /u/michael.aichmueller/.cache
is a regular file and not a directory. I have no idea why that may be. It sounds like a bug in the filesystem or the way the drive is mounted.
Hi @romkatv , thanks for your answer! the cache is actually a symlink to a directory:
l | grep .cache ✔
lrwxrwxrwx 1 michael.aichmueller assi 45 Jul 18 10:37 .cache -> /var//tmp/.unburden-michael.aichmueller/cache
and
ls -al /var//tmp/.unburden-michael.aichmueller | grep cache ✔
drwx------ 23 michael.aichmueller assi 4096 Aug 3 18:37 cache
is there a way to adapt the script to work with a symlink?
This looks pretty bad. Firstly, the link is on a network drive, so every access to the cache is super slow. Second, the link leads to a memory-mapped drive, which is wiped on reboot.
You need to export XDG_CACHE_HOME
and point it to a directory on a local disk. Not on a network drive, and not on a memory-mapped drive.
You also need to ensure that commands such as this one work:
mkdir -p -- ${XDG_CACHE_HOME:-~/.cache}/gitstatus
On a properly working filesystem this works even if some of the directories in the path are symlinks (even though it's not ideal).
Thanks for your help! I take it from your comments that there is no hotfix for this problem on my work station?
I did not build this system and am not part of the IT either so I cannot make underlying changes. I will forward your suggestions to them, however. Maybe they can reexamine their structure.
I take it from your comments that there is no hotfix for this problem on my work station?
That's not what I meant. You need to export XDG_CACHE_HOME
from your own zsh rc files (ideally, from ~/.zshenv
) and point it to a local disk. You don't need to make any changes to the OS.
I can't point XDG_CACHE_HOME
to a local disk as then the remote server's zsh would also export XDG_CACHE_HOME
to point to that same folder, because they are configured by the same .zshrc/env as the local server's zsh. I am not sure how to seperate those as I only have this one shared shell.
I use the same zsh startup files across all operating systems and devices. The humble if
is what makes it possible. You can condition something based on the OS, hostname, filesystem of the home directory, existence of certain files, or the fact that you are connecting over SSH. I don't know which of these is appropriate for you but none of theme are difficult.
Hi, thanks for the great theme!
I am running into the issue that gitstatus fails when connecting with ssh to a remote server who mounts the same home directory as the local device from which I start the connection (essentially our IT offers mounted ubuntu images with shared home directories). This implies that both the local and remote computer use the exact same zsh configuration in every way.
On the local machine the theme works well, but immediately after connecting with ssh this message appears (with debug mode):
Could this be related to the git version? My local machine sports git version
2.34.1
. My remote machine has git version2.7.4
.