Option to copy linked file if filesystem does not support symlinks
Submitted by The Anarcat
Assigned to Jannis Pohlmann
Description
Created attachment 5581 trivial symlink retry patch
This Q&A describes the situation pretty well:
Basically, new Linux users are not very familiar with symlinks. When confronted with them, they often lead to catastrophic usability failures as described above, which are best answered as "that is a symlink, you need to find the target by hand and copy that", which basically a technical support nightmare.
Even worse, some software extensively use symlinks. For example, git-annex uses symlinks to ensure data protection, but this breaks down usability for the joe user. Example story:
http://git-annex.branchable.com/forum/usability:_what_are_those_arrow_things__63__/
Now, maybe we can blame git-annex for being a little exotic -- and there are workarounds on that side -- but I believe we can do better than that. There are some pretty well designed merge algorithm in Thunar that allow use to keep directories in sync. (That they could be improved with stuff like rsync is beyond the point here.) Why couldn't we do similar things with symlinks?
What I am thinking of is instead of popping the user with what is basically an "Abort / Retry / Fail" UI...
https://en.wikipedia.org/wiki/Abort,_Retry,_Fail%3F
... we could instead prompt the user with something like "Filesystem does not support symlinks, do you want to copy the symlink target instead? This may take up more space than the original."
Attached is an untested patch to thunar that will actually retry without the "nofollow" flag (I think, my C is definitely rusty). Now I understand this is a rather drastic patch, and only fixes part of the problem - the user should probably be prompted here instead (but I don't know how to do that exactly).
Furthermore, to fix this would probably require fixing it in other file managers as well (Nautilus suffers from the same issue), but I wanted to start the discussion somewhere, and Thunar is the file manager I use right now.
Thanks for any feedback.
Patch 5581, "trivial symlink retry patch":
thunar-retry-symlink.patch
Version: 1.6.3