View Single Post
Originally Posted by Scott Betz View Post
I would be very interested in learning how you are syncing your laptop desktop. Please amplify. Thanks.

Sorry for the delay. I've been busy (that's the point, no?).

I hope this is the right level of detail for you. This is what works for me, and so I can't warrant that it will work for anyone else, but here's how I think I understand the process.

You need to use the shell to do this (it was explained that you need to use "symbolic links", which are very similar to aliases but are a native part of the file system implementation).

Also, I'm set up with my iDisk "cached" on my machines, meaning that a local copy is updated, and then iSync or Sync Services goes out and updates the copy on the iDisk server. This is enabled up by setting "iDisk Syncing On" in the .Mac preferences pane; I have mine set to sync automatically. You'll want to ensure that your iDisk is synced when you move to another machine; you can do this by clicking on the circular-arrows-chasing-each-other icon on the iDisk icon in a Finder window. If you have a Finder window open to the iDisk or a subfolder, the sync status is displayed at the bottom of that window.

You'll be Unhappy if you try to work on Machine B if Machine A hasn't synced the files, and Machine B hasn't then picked up all of those changes... and, BTW, for a more enjoyable experience consider putting your "Back up database..." files there, too, just in case. And, of course, you don't want to try this while OF is actually running...

Still with me?

Here we go.
  1. Locate the local copy of your OmniFocus data on your computer, which is likely in your home directory in the Library/Application Support/OmniFocus directory. If your username is "bob", then the full path to this is /Users/bob/Library/Application Support/OmniFocus. If you look at this file in the finder, you'll see the OmniFocus data file. However, this is actually a Mac OS X "Package" which the shell sees as a directory, and is called "OmniFocus.ofocus". You're going to copy this file to a directory on your iDisk, and then set up a symbolic link (short name: "symlink") to point to it, exactly as if you were setting up an alias.
  2. You need to copy the file to your iDisk (doing so from the Finder is fine); I put mine in the Documents folder in a folder called OmniFocus. (It's good to be really obvious about this - because you're probably going to have to figure it out again later!). You need to also figure out the pathname for this file (which is, again, actually a directory as far as the shell and filesystem is concerned). Again, in my case, the iDisk is mounted on my Mac as /Volumes/iDisk; but my machine at home has it mounted differently - you may need to do some hunting, but it's surely under /Volumes. So, again, putting everything together, I now have the OmniFocus [data package] on my iDisk, at /Volumes/iDisk/Documents/OmniFocus/OmniFocus.ofocus .
  3. Finally, you have two copies of the file, but you need to remove the local copy and create a symlink. You can trash the file from the Finder, and then, in the shell, create the symlink. The command is a bit tricky - I can never remember which parameter is first. The general form of the command is ln -s destination pointer - so, if you are "bob", and you are "in" the right directory (/Users/bob/Library/Application Support/OmniFocus/), you might issue this command: ln -s /Volumes/iDisk/Documents/OmniFocus/OmniFocus.ofocus/ OmniFocus.ofocus - which would create the link for you - the link OmniFocus.ofocus in that directory "points" to the package on the iDisk, but the application just sees "OmniFocus.ofocus" as a directory it's going to use for its data.

If you look at that folder in the Finder, you should see what looks like an alias - but it's actually a symlink. If you use the ls command, as in ls -l you'll see the pointer/link indicated. The next time you start up OmniFocus, you should see the lock file appear on your iDisk: OmniFocus.ofocus.lock, which is the result of the standard practice of leaving a "sentinel" file so the application can tell that either another copy of itself is running, or else the application crashed, and some recovery of the data in the file may be in order.

And, you'll want to do this on whatever other computer(s) you have OF installed on. Obviously, you need to figure out which OF file is the "master" and propagate the links as necessary. One of the things that applications that use sync services to manage changes do is to read files or parts of files and make decisions - or allow sync services to prompt the end-user to make decisions - about which record or data point should be kept. OF doesn't do this, at least now.

Finally, remember, that file is really a package - so the iDisk sync services will see a whole bunch of files with very long and seemingly random names "inside" of it to sync. Just make sure that the sync has completed successfully before making any assumptions about using the file elsewhere, and you should be okay.

I hope this helps - but I'll try to respond more quickly if there are more questions. And remember - back up, back up, back up, not only before you try something like this, but remember that OF is Alpha software...