Acrosync aborts on broken symlinks

Hi,

I have been using Acrosync successfully for years in order to mirror large directories of documents which are almost static (e.g. collections of scientific papers), from my main computers to my iOS devices. I have noticed time and again that the existence of a broken symlink in the source repository (most often a Linux remote server) would halt the execution of Acrosync on the iOS device with the message "symlink has no referent" (followed by the name of the broken symlink in the source directory). 

This behaviour is different from the standard rsync tool: rsync would seamlessy synchronize broken symlinks from source to target, by default.

Today I am trying to synchronize a large directory of "current work" files, where broken symlinks have a useful meaning. I find myself stuck.

I use symlinks on my Unix machines to avoid the useless replication of data across different directories. For example, large data or postscript/PDF files in one directory could be symlinked to other directories needing the same file locally. Every now and then, in order to minimize storage occupancy, I compress a whole subdirectory to a .zip file and then remove the subdirectory, e.g. whenever I know I won't need that subdirectory very often. Whenever the removed subdirectory contains an original file that was symlinked elsewhere, this removal creates broken symlinks here and there. If, at some point, I need the original reference of the broken symlink, I simply look up the filename it used to point to, I follow its path, I find the compressed archive that holds that file, I decompress it, and can work on it again. Thus, for me, the existence of broken symlinks is a necessary trace to a compressed file which needs to be temporarily decompressed (and then perhaps removed again).

The behaviour of Acrosync on broken symlinks (abort its run) means I either refrain from using it, or I must delete all the broken symlinks in my directory, which would mean I would no longer be able to use whole subdirectories, because I would no longer know where the missing files can be found. 

Is there any chance you could change (perhaps optionally?) the behaviour of Acrosync in presence of broken symlinks? I can envisage three options:
- just skip over the broken symlink without aborting (probably the easiest option)
- copy the symlink to the iOS device "as is" (I am assuming that the iOS filesystem has an idea of "symlinks")
- otherwise, create a small text file on the iOS device holding the name of the original file the source symlink points to.

Other than that, I'm grateful for this very useful tool!

Please let me know, and thanks for your work and your attention.

Yours,

Leo Liberti

Comments

  • Hi again... I was hoping for a follow-up. Is the iOS version of AcroSync still being maintained? Changing the tool by skipping over broken symlinks can't be too difficult a change, can it?
  • Your use case is very rare.  Acrosync for ios by default passes the --copy-links option to the remote rsync and I don't want to change this default behavior just for this use case.  As a workaround you can write a script to find all broken symlinks and make them point to 0-byte files instead.
Sign In or Register to comment.