1task-sync(5)                     User Manuals                     task-sync(5)
2
3
4

NAME

6       task-sync - A discussion and tutorial for the various task(1) data syn‐
7       chronization capabilities.
8
9

INTRODUCTION

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

ALTERNATIVES

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

OPTION 1: VERSION CONTROL SYSTEMS

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

OPTION 2: FILE SHARING SERVICES

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

OPTION 3: TASKSERVER

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

CREDITS & COPYRIGHTS

154       Copyright (C) 2006 - 2021 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

SEE ALSO

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

REPORTING BUGS

179       Bugs in Taskwarrior may be reported to the issue-tracker at
180              <https://github.com/GothenburgBitFactory/taskwarrior/issues>
181
182
183
184task 2.5.3                        2016-02-24                      task-sync(5)
Impressum