Symlinks at the root of the repository path will be followed, traversing to their target and backing up the contents of the target, even if that target lives outside of the repository. Symlinks anywhere else in the repository (or residing inside of symlink targets) are completely ignored. They are not backed up as objects or traversed.
I am grateful for this “feature,” but it simply uses symlinks as a workaround for another issue; it does not directly address the needs of those with symlinks in the folders they wish to backup.
Allow the user to decide how to handle symlinks, either per each backup operation with a “option” flag (preferred, eg.
-follow symlink), or maybe per repository?
FreeFileSync implemented and explained it the most simply, so I’ll include their documentation below. Duplicati also allows for the user to determine how to handle this. I was using Duplicati to do just this for over a year before switching to .
…why not? In trying to find a solution to my own issues, I have seen plenty of others either in my predicament, or just plain confused on how symlinks and the like are handled. As long as its not the default it won’t get people into trouble. Not many people are going to search this out and use it, and if they do, and they create path loops or other issues, it will be immediately apparent why that is occurring.
It will also clear up a lot of inconsistency around how interacts with symlinks, specifically in the include/exclude dialog box where they are presented to you and you can interact with them as if they were folders, including selecting them for inclusion/exclusion, and even more confusion when trying to use custom filters (not sure about regex yet, but I’m assuming it’s the same). By letting the user specify how to handle symlinks, can use that decision to choose how it displays, filters, etc. symlinks. Either that, or use some sort of overlay icon or other indicator that lets the user know what they are interacting with isn’t a normal folder and won’t be treated as such.
For me personally, I backup all my local machines to a server using UrBackup, which uses hard and soft links extensively, mainly for the purposes of deduplication. I’d like to back up these backups offsite using Duplicacy, but instead of backing up the 2,000 file | 2.8GB folder I tested with, it only pulled 22 files | 8.2MB, skipping the vast majority of it. There are other ways to handle my issue that are specific to UrBackup so I don’t want to bog this down any further with a discussion on that, but suffice it to say, the other options are equally bad.
FURTHER READING (from freefilesync manual)
Symbolic Link Handling
FreeFileSync lets you choose to include symbolic links (also called symlinks or soft links) when scanning directories rather than skipping over them. When included, you can select between two ways to handle them:
- Follow: Treat symbolic links like the object they are pointing to. Links pointing to directories are traversed like ordinary directories and the target of each link is copied during synchronization.
- Direct: Evaluate the symbolic link object directly. Symbolic links will be shown as separate entities. Links pointing to directories are not traversed and the link object itself is copied during synchronization.
- Under Windows the symbolic link options apply to symbolic links, volume mount points and NTFS junction points.
- Copying symbolic links requires FreeFileSync to be started with administrator rights.