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