Currently, when you change the sync configuration (for instance switching from local to server), there is no warning, and nothing prevents you from syncing.
But it seem that it will only sync the operations not marked as synced, thus making the data in the new sync backend incomplete. A newly synced device using the new backend would miss operations, wouldn’t it.
I have four proposals (I didn’t look into the taskwarrior internals, so far)
-
Forbid (or warn) sync when the method or config has changed.
The implementation could add a sync_config key that contains a footprint of the sync method (server+URL, local+DIR, …), and refuse to sync without force if it has changed.
-
Add an official (subcommand), or unofficial (script/documentation) method to "unsync" your local replica : it would set synced to 0 for all operations and remove information in sync_meta . It might be a confusing feature, though.
-
docs Remove Saves disk space. from the documentation. It seem that all operations are stored in the taskchampion db. Are some operations removed from the local db when syncing ? edit still relevant, see comment below
-
docs Add a warning in documentation to explain that changing synchronization method or configuration is not supported. It could be an easy step before 1. is implemented.
Currently, when you change the sync configuration (for instance switching from
localtoserver), there is no warning, and nothing prevents you from syncing.But it seem that it will only sync the operations not marked as
synced, thus making the data in the new sync backend incomplete. A newly synced device using the new backend would miss operations, wouldn’t it.I have four proposals (I didn’t look into the taskwarrior internals, so far)
Forbid (or warn) sync when the method or config has changed.
The implementation could add a
sync_configkey that contains a footprint of the sync method (server+URL,local+DIR, …), and refuse to sync without force if it has changed.Add an official (subcommand), or unofficial (script/documentation) method to "unsync" your local replica : it would set
syncedto0for all operations and remove information insync_meta. It might be a confusing feature, though.docs Removeedit still relevant, see comment belowSaves disk space.from the documentation. It seem that all operations are stored in the taskchampion db. Are some operations removed from the local db when syncing ?docs Add a warning in documentation to explain that changing synchronization method or configuration is not supported. It could be an easy step before 1. is implemented.