Symbolic links of plist file getting turned into plain text files

dropboxsymlink

I'm trying to share my Sequel Pro favourites between my iMac and my Macbook Air. The method I'm using is this:

  1. On the iMac, ove Favorites.plist from ~/Application Support/Sequel Pro/Data to ~/Dropbox/Apps/Sequel_Pro;
  2. On the iMac, make a symbolic link to the Favorites.plist file (in Dropbox) and move that link into the ~/Application Support/Sequel Pro/Data folder;
  3. On the Macbook, make a symbolic link to the Favorites.plist file (in Dropbox) and move that link into the ~/Application Support/Sequel Pro/Data folder

In both steps 2 and 3 I need to rename the symbolic link file from Favorites.plist symlink to Favorites.plist in order to Sequel Pro to pick up on it.

What I find is that Sequel Pro on both machines opens with the favourites in place, but changes to the favourites are not reflected on the other machine and do not seem to be passed back to the original in Dropbox (there is no 'sync activity' indicator on the Dropbox icon). Further investigation reveals that, after opening Sequel Pro, the act of saving changes to the favourites (or of quitting the app, which I guess updates the favorites.plist as part of the quitting process) apparently changes the symbolic link into a regular text file rather than updating the original.

Is this expected behaviour?

Extra info: OSX 10.9.5, Sequel Pro 1.1

Best Answer

Yes, it's the expected behavior because Sequel Pro expects the Favorites.plist file to be where it's programmed to be, in ~/Application Support/Sequel Pro/Data.

In other words, when Sequel Pro opens, it reads the Favorites.plist file following the symlink because it's just making a read of the file. When a change is make or the app closes the file is updated and is written in its programmed location and does not follow the symlink because first a temporary Favorites.plist.<$random> file is written and then the symlink is deleted and the temporary Favorites.plist.<$random> file is renamed to Favorites.plist. In this process Sequel Pro sees the symlink of the Favorites.plist as a regular file not a symlink and why it's replaced.