1========================== 2When do I need Vdirsyncer? 3========================== 4 5Why not Dropbox + todo.txt? 6--------------------------- 7 8Projects like `todo.txt <http://todotxt.com/>`_ criticize the complexity of 9modern productivity apps, and that rightfully. So they set out to create a new, 10super-simple, human-readable format, such that vim suffices for viewing the raw 11data. However, when they're faced with the question how to synchronize that 12data across multiple devices, they seemed to have reached the dead end with 13their novel idea: "Let's just use Dropbox". 14 15What does file sync software do if both files have changed since the last sync? 16The answer is to ignore the question, just sync as often as possible, and hope 17for the best. Because if it comes to a sync conflict, most sync services are 18not daring to merge files, and create two copies on each computer instead. 19Merging the two task lists is left to the user. 20 21A better idea would've been to use ``git`` to synchronize the ``todo.txt`` 22file, which is at least able to resolve some basic conflicts. 23 24Why not file sync (Dropbox, git, ...) + vdir? 25--------------------------------------------- 26 27Since :doc:`vdirs <vdir>` are just a bunch of files, it is obvious to try *file 28synchronization* for synchronizing your data between multiple computers, such 29as: 30 31* `Syncthing <https://syncthing.net/>`_ 32* `Dropbox <https://dropbox.com/>`_ or one of the gajillion services like it 33* `unison <https://www.cis.upenn.edu/~bcpierce/unison/>`_ 34* Just ``git`` with a ``sshd``. 35 36The disadvantages of those solutions largely depend on the exact file sync 37program chosen: 38 39* Like with ``todo.txt``, Dropbox and friends are obviously agnostic/unaware of 40 the files' contents. If a file has changed on both sides, Dropbox just copies 41 both versions to both sides. 42 43 This is a good idea if the user is directly interfacing with the file system 44 and is able to resolve conflicts themselves. Here it might lead to 45 erroneous behavior with e.g. ``khal``, since there are now two events with 46 the same UID. 47 48 This point doesn't apply to git: It has very good merging capabilities, 49 better than what vdirsyncer currently has. 50 51* Such a setup doesn't work at all with smartphones. Vdirsyncer, on the other 52 hand, synchronizes with CardDAV/CalDAV servers, which can be accessed with 53 e.g. DAVx⁵_ or the apps by dmfs_. 54 55.. _DAVx⁵: https://www.davx5.com/ 56.. _dmfs: https://dmfs.org/ 57