git-annex/doc/todo/absolute_symlinks.mdwn

8 lines
1.4 KiB
Text
Raw Normal View History

2024-04-08 09:52:49 +00:00
A lot of my git-annex content doesn't have a "stable" location within the repository, I might decide to move things to subdirectories or out of subdirectories. This always invalidates the relative `../../.git/` symlinks that git-annex uses and I have to `annex fix` them every time I move things around. This is especially useful when I'm accessing my homeserver over SMB from Windows PCs, where symlinks are followed automatically and broken symlinks simply don't show up via SMB at all, so moving a file into a subfolder causes it to "disappear" until `annex fix`.
But the repository as a whole does have a stable location in the filesystem, so it would be much more convenient if I had an option for the item symlinks to use absolute paths, e.g. `Foo.mkv -> /hdd/Videos/.git/annex/[etc]`. (I *could* ensure that the `/hdd/Videos` path is valid on all the hosts that the repository is on, and I don't mind running `annex fix` on the rare occasion when I need to move it.)
I thought such an option already exists, but could not find it anywhere within the git-annex manual.
I considered having the files unlocked (which seems to work well with Btrfs automatically providing thin copies even without needing to use the fragile-looking annex.thin mode), but 1) even missing files appear as regular files when they're unlocked, which is *very* confusing; 2) the files are no longer read-only and I don't like the idea of some tool accidentally damaging them.