![]() |
Possible to create a sync conflict?
I'm wondering if I should be careful about making sure things are always in sync between my devices (I'm using Mac, Iphone, and iPad).
I have used other apps where you have to be sure that you fully sync new data from the other device before you start the other device, otherwise there can be data loss (e.g. Anki for Mac and Iphone). I am really impressed with how seamless the sync seems to be, this is a killer feature. And I don't see any problem with it putting together things like new inbox items from devices that haven't been synced in a while. But what if you do major changes on one platform; and you also do major changes on another platform concerning the same data with possibly conflicting attributes, without stopping to sync between the two beforehand? For example, what if you somehow manage to create dependencies on a task on one, but delete that task altogether on another, without getting a sync in? Thanks. |
For the most part, you don't have to worry. OmniFocus takes the last change made to any given item and discards any others. Note that this is done on an action-by-action basis, not the individual bits of data in an action, so if you change the due date of an action on one machine, and the context on another, then sync, one of those changes will be lost (and there won't be any warning that this has happened). A more likely failure is to mark a repeating action or project as completed on two different devices, which will cause duplicates to be made of the repeating item, because the replication happens when something is marked completed, and the software isn't clever enough to recognize that something has been marked completed on two different devices and merge the two chains together (could be rather difficult if you've then made changes to the newly created items, so it isn't surprising to me that they haven't tackled that issue).
Best practice is to do a sync before starting to make changes on a device, and after you've made some changes, too. Normally, OmniFocus will do a sync every hour when it is running (and in the foreground in the case of iOS versions), but if a change is made, it will attempt a sync 1 minute after a change is made, then return to the 1 hour cycle. So, if OmniFocus is left running after you make changes, it should probably do that post-change sync without you needing to do anything. The only time you can have possible sync issues is if you make changes on two or more devices without syncing in between, and even then it isn't an issue if you didn't change the same items. Doing syncs in this way optimizes the transaction graph and makes it likely that OmniFocus will compact your database more frequently and effectively. That reduces the time it takes to sync, and makes it easier to sync first and ask questions later :-) The one thing OmniFocus sync can't do at all is merge two different databases. If you've got the Mac version, have been using it for a while, and you decide to buy the iPad version or the iPhone version, they are so much fun to use that it is tempting to enter a bunch of data before you set up sync, but you'll be an unhappy camper when you try to sync the first time, because it will want to discard one of the two databases. It isn't impossible to recover from this, but it is a headache best avoided! In several years of use and many thousands of actions synced between Macs, iPads, and iPod, I don't recall seeing a single sync mishap that wasn't ultimately my fault (edited the same item or completed a repeating item on two different clients without sync in between). |
Thank you very much for the detailed response. It's great that we mostly don't have to worry about messing things up unless we really try.
|
Recover from the not impossible
How DO you recover from losing a database after your first sync. I put a bunch of tasks in this morning after download Omni on the Mac. Then I installed on the iPhone and set up syncing. I came back and set up syncing on the Mac, and lost all of my original mac items! :( I'd love to recover them.
|
Have a look in your Documents folder for a folder called OmniFocus backups. In there, there should be a file called OmniFocus Prior to Resynchronizing on <date and time>.ofocus-backup. Whenever OmniFocus replaces its database with another one, it makes such a backup. Use File->Revert to Database Backup to restore that database, and when you are sure that it is what you want, use File->Replace Server Database to push it to the server. Then you will need to resync your iPhone, and when asked whether to keep the device database or the sync database, choose the sync database. Anything you did on the iPhone will be lost.
If you did a bunch of stuff on the iPhone you wish to keep, use File->Back Up Database to make a backup copy of your database [b]before[/b] using File->Revert to Database Backup. After the backup has been restored and you've got the iPhone syncing, you can double-click (in the Finder) on the backup you just made and drag and drop from one window to the other to copy over any missing items. Omni should consider putting in some language in the setup screens for sync that walks you through setting things up in the proper order when you get a new gadget. There's an easy way, and a hard way, and it's all too easy to choose the hard way when you don't know that the order matters! |
hdanzige,
whpalmer4's got the answer for you. I just wanted to add that if you're having any trouble getting this sorted out (or any other part of OmniFocus!) feel free to email our Support Ninjas: [email]omnifocus@omnigroup.com[/email] |
All times are GMT -8. The time now is 09:12 AM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.