1task-sync(5) User Manuals task-sync(5)
2
3
4
6 task-sync - A discussion and tutorial for the various task(1) data syn‐
7 chronization capabilities.
8
9
11 Taskwarrior has several sync options, both external and built in. If
12 you wish to sync your data, choose one method only; mixing methods is
13 going to lead to problems. Each of the methods discussed have their
14 own strengths.
15
16
18 There are three alternatives for syncing data, which are:
19
20 1) Version control systems, such as git, hg, svn
21 2) File sharing systems, such as DropBox, Google Drive
22 3) Using the Taskserver and the 'sync' command
23
24
25
27 There are several good, distributed VCS systems (git, hg, ...) and cen‐
28 tralized VCS systems (svn, cvs ...), and they all function in a similar
29 fashion for our purposes.
30
31 Setup is straightforward. You place your .task directory under revi‐
32 sion control. You then need to perform a regular commit/push/pull/up‐
33 date to make sure that the data is propagated when needed. You can
34 even do this using shell scripts so that every task command is preceded
35 by a 'pull' and followed by a 'push'.
36
37 Strengths:
38 - Good data transport mechanisms
39 - Secure transport options
40
41 Weaknesses:
42 - You need proficiency with VCS tools
43 - You will need to manually resolve conflicts frequently
44 - You need to provide the mechanism for making sure copies are up to
45 date
46
47
48
50 There are many file sharing services, such as DropBox, Amazon S3,
51 Google Drive, SkyDrive and more. This technique involves storing your
52 .task directory in a shared directory under the control of the file
53 hosting services.
54
55 Syncing happens quickly, although it is possible to run into conflict
56 situations when there is no network connectivity, and the tasks are
57 modified in two separate locations. This is because the file hosting
58 service knows only about files, and it has no idea how to merge tasks.
59 Avoid this problem by never modifying the same task on two machines,
60 without an intervening sync.
61
62 Setup simply involves creating the directory and modifying your
63 data.location configuration variable like this:
64
65 $ task config data.location /path/to/shared/directory
66
67 Strengths:
68 - Good client support
69 - Easy setup
70 - Transparent use
71
72 Weaknesses:
73 - Tasks are not properly merged
74
75
76
78 The Taskserver was designed for this purpose to be secure, fast and
79 conflict- free, allowing data interchange between assorted Taskwarrior
80 clients, and tolerant of network connectivity problems.
81
82 There is a 'sync' command built in to Taskwarrior (provided the GnuTLS
83 library is installed), and with a server account and client configura‐
84 tion, syncing is done on demand.
85
86 Setup is a matter of creating an account on a Taskserver (see your
87 Taskserver provider or operate your own - see https://taskwar‐
88 rior.org/docs/taskserver/setup.html)
89
90 Once you have an account, you'll receive a certificate, key, and cre‐
91 dentials. You'll need to put the certificate and key somewhere like
92 this:
93
94 $ cp <name>.cert.pem ~/.task
95 $ cp <name>.key.pem ~/.task
96
97 Then you configure Taskwarrior, using the provided details:
98
99 $ task config taskd.certificate ~/.task/<name>.cert.pem
100 $ task config taskd.key ~/.task/<name>.key.pem
101 $ task config taskd.credentials <organization>/<name>/<UUID>
102 $ task config taskd.server <server domain>:<port>
103
104 If you are using a private server, you are likely also using a self-
105 signed certificate, which means you will need one of the following ad‐
106 ditional entries:
107
108 $ task config taskd.ca ~/.task/ca.cert.pem
109
110 The CA (Certificate Authority) will be used to verify the server cer‐
111 tificate.
112
113 After setup, you run a one-time sync initialization, like this:
114
115 $ task sync init
116
117 This will make sure your client and the server are properly in sync to
118 begin with. From this point on, you never run the 'initialize' command
119 again, just go about your business, and when you want to sync, run
120 this:
121
122 $ task sync
123
124 You'll see a summary of how many tasks were uploaded and downloaded.
125 You can safely run the command as often as you like. When there are no
126 changes to sync, nothing happens. If you do not have connectivity,
127 your task changes accumulate so that when you next run 'sync' with
128 proper connectivity, the changes are properly handled, in the right or‐
129 der.
130
131 If you run multiple clients that sync to the same server, you will need
132 to run this command on your primary client (the one you use most of‐
133 ten):
134
135 $ task config recurrence on
136
137 And on the other clients, run:
138
139 $ task config recurrence off
140
141 This protects you against the effects of a sync/duplication bug.
142
143 Strengths:
144 - Secure communication
145 - Minimal bandwidth
146 - Tolerates connectivity outage
147
148 Weaknesses:
149 - You need to manage your own server, or gain access to a hosted
150 server.
151
152
154 Copyright (C) 2006 - 2021 T. Babej, P. Beckingham, F. Hernandez.
155
156 Taskwarrior is distributed under the MIT license. See https://www.open‐
157 source.org/licenses/mit-license.php for more information.
158
159
161 task(1), taskrc(5), task-color(5),
162
163 For more information regarding Taskwarrior, see the following:
164
165
166 The official site at
167 <https://taskwarrior.org>
168
169
170 The official code repository at
171 <https://github.com/GothenburgBitFactory/taskwarrior>
172
173
174 You can contact the project by emailing
175 <support@GothenburgBitFactory.org>
176
177
179 Bugs in Taskwarrior may be reported to the issue-tracker at
180 <https://github.com/GothenburgBitFactory/taskwarrior/issues>
181
182
183
184task 2.6.2 2016-02-24 task-sync(5)