Skip to content

builtins set doesn't follow symlinks when saving variables #7466

Description

@etu

So when using set --universal name value it saves to .config/fish/fish_variables. If that file is a symlink it removes the symlink and just stores as a new file instead.

This for me is a problem because both my root partition and my home partition is on a tmpfs filesystem, so when this happens the change isn't persistent to any filesystem and gets lost on next reboot.

I've lost things more than once due to this, such as abbreviations that I've saved.

Recording: https://asciinema.org/a/Y3QcT1kfZcVC8tIv5I5quHy4p

System info:

$ fish --version
fish, version 3.1.2

$ echo $version
3.1.2

$ uname -a
Linux agrajag 5.9.2 #1-NixOS SMP Thu Oct 29 09:12:22 UTC 2020 x86_64 GNU/Linux

$ echo $TERM
xterm-256color     # (but it's really kitty)

I tried to run with a separate home directory:

$ sh -c 'env HOME=$(mktemp -d) fish'

And could perform the same actions to get the same problem.

More about my setup: https://elis.nu/blog/2020/05/nixos-tmpfs-as-root/ https://elis.nu/blog/2020/06/nixos-tmpfs-as-home/

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions