I had a problem with mobile org sync, which I finally tracked down to the handling of symlinks in org-mobile-push.
Setup: I want to have a different file name for my school org file depending on fall or spring semester, but I hoped to avoid changing org-agenda-files once a semester. So I symlinked semester-fall.org to ~/Documents/mobileorg/semester.org.
It seems that org-mobile-push resolves the symlink to determine the filename to drop into the online share. So MobileOrg knows about semester-fall.org, but there is no file by that name in org-directory. So, org-mobile-pull opens an empty buffer for semester-fall.org and, as it's empty, of course the parent node can't be found.
My question: Is there a technical reason why org-mobile-push must use the symlink target's filename, instead of the filename that actually lives under org-directory? Other parts of the code assume the filename under org-directory. I can think of two possibilities:
- One should not put symlinks into org-directory, or at least make sure the symlink's name is the same as the target. If this is an intentional limitation, it should be documented.
- Or, the symlink resolution is not actually necessary and it causes problems. In that case, it's a bug that should be fixed.
Which is it? :-)
hjh