Fixed an issue where OmniFocus wouldn't always detect conflicts between sync databases which were incompatible.
-
If two databases were closely related, but one was missing some sync history needed to understand changes made by the other database, OmniFocus would try to sync up the two incompatible databases rather than displaying a sync error. Trying to sync up the incompatible databases could cause problems ranging from an alert saying "No root transactions found" to a more subtle issue where new changes wouldn't synchronize and you would be repeatedly prompted with an alert asking you to replace your local database and "start" synchronizing. (This shouldn't happen under normal operation, but could happen if a sync client turned off syncing or was unregistered, then later started syncing again.)
-
We've made several changes to address this problem going forward:
-
When synchronizing two databases, OmniFocus will now detect when one database has changes which no longer match up with the sync history of the other. It will abort sync with an error, forcing you to choose which copy to use.
-
When copying an entire database from the local system to the sync server or from the sync server back to the local system, OmniFocus will now filter out any changes which don't connect to the database's sync history.
-
When working with a local database which has changes which don't connect to the sync history, OmniFocus will make sure that all new changes still do properly connect to sync history (rather than potentially attaching them to the end of a chain of ignored changes).
-
If you were affected by this problem and would like assistance recovering some lost changes to your database, our tech support ninjas are always happy to assist! They're available by email at omnifocus@omnigroup.com, and by telephone at 1-800-315-OMNI or +1 206-523-4152 (10am - 5pm Pacific Time).
-
Turned this sync error into a warning: "Client with identifier [foo] only refers to identifiers that are not locally reachable". (The warning now goes to the Console, with more useful additional details such as the client's name and its last synchronization date.) This warning happens when another client refers to some history that isn't locally available, and indicates that OmniFocus can't compact its sync history anymore. But the sync was actually successful, and eventually that client will sync with some transaction which is in the current graph (or you'll be prompted to remove it as a stale client)—so it's reasonable for this message to be a warning rather than an error.
-
Perspectives should no longer be rewritten to the database when they haven't changed.
-
Eliminated a spurious "Unable to save" alert dialog encountered when processing a synchronized change which predated the creation of an attachment. (The data alert was harmless, but annoying.)
-
Updated the documentation for Perspectives and Attachments.