Based on my understanding of OmniFocus, projects and tasks that are completed and older than a certain period are archived and moved from OmniFocus’s cloud servers to local storage on the user’s device. This means archived items are no longer synced across devices but are preserved locally for reference.
Can someone explain the reasoning for OmniFocus doing this since it limits one’s access to historical data
What settings do you have in relation to this feature?
Is it possible to turn it off?
And if it is possible, what is the downside of turning it off?
It’s entirely optional and a manually triggered action (doesn’t happen automatically). The rationale presumably being that you’re less likely to need fully synced access to old data, and archiving it speeds up syncs and reduces cloud storage requirements. I find it quite hard to browse vast amounts of archival completed-action data without bespoke perspectives
As mentioned it’s a manually actioned command under the File menu near the bottom (Archive Old Items…). There you can decide the date threshold. I typically archive every couple of months and find myself removing several hundred items from the active database. Note that you should always archive on the same machine (so that all archiving is to the same one local repository). There is a process for migrating an archive e.g. to a new machine when the need arises.
Once the archive step has been actioned the archived items are removed from the actively-synced-across-devices database so subsequent syncing should be quicker
In OmniFocus 3 and earlier, OmniFocus archives were stored at a predetermined local location on a Mac. OmniFocus 4 allows you to specify where the archive is stored. I store my archive in iCloud Drive (specifically OmniFocus/Archive/). This way the archive can be accessed on other Macs.
The approach for “archiving” is left over from the days when the intent was to remove items from syncing to speed up the sync process. The approach should really be called “culling” rather than archiving. In my lexicon, archiving is the purposeful process of setting aside content as read only (e.g. for historical records), not a process of cutting out certain things because they meet certain settings that you have no other control over.
I avoid using it.
As far as I know, you can only avoid having it happen by canceling the option to archive manually each time the request appears.
Slower syncing. Is it noticeable in this day and age. Not for me.
Archiving, as others have stated, is optional. While it does speed up syncing, what really speeds up syncing is ensuring all devices are kept up to date & thus the sync history hasn’t diverged that much. If a device isn’t connected to the internet or running, it won’t sync & will slow down syncing for all devices far more than any archive operation.
However, archiving also speeds up any DB operations on whichever device you are working with. This is really noticeable if you create a lot tasks and complete them regularly.
I’ve been using OF since the days of 1.x back in 2008 and archive monthly. I usually complete about 2100 tasks per month, because I use it for everything and have many repeating task groups. If I hadn’t archived each month, I’d have an additional ~200K tasks sitting in my DB on top of the roughly 6000 currently there. I notice everything is more snappy after I archive, even when not connected to the internet, so syncing isn’t impacted.
While archiving is optional, unless you cycle thru a relatively small number of tasks each month, I’d make it a regular part of grooming. I have a task that repeats monthly for me to archive old tasks, so the system is self-referencing!