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, external and  internal.   If  you
12       wish  to sync your data, choose one method only; mixing methods is only
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 hosting systems, such as DropBox
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 ...), and they function in a similar  fashion
29       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   com‐
33       mit/push/pull/update  to  make  sure  that  the data is propagated when
34       needed.  You can even do this using shell scripts so  that  every  task
35       command is preceded 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 HOSTING SERVICES

50       There are many file hosting  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         - Always secure
69         - Good client support
70         - Easy setup
71         - Transparent use
72
73       Weaknesses:
74         - Tasks are not properly merged
75
76
77

OPTION 3: TASKSERVER

79       The  Taskserver  was  designed  for this purpose to be secure, fast and
80       conflict free, allowing data interchange between  assorted  Taskwarrior
81       clients, and tolerant of network connectivity problems.
82
83       There  is a 'sync' command built in to Taskwarrior (provided the GnuTLS
84       library is installed), and with a server account and client  configura‐
85       tion, syncing is done on demand.
86
87       Setup  is  a  matter  of  creating an account on a Taskserver (see your
88       Taskserver  provider  or  operate  your  own  -   see   http://taskwar
89       rior.org/docs/server_setup.html)
90
91       Once  you  have an account, you'll receive a certificate, key, and cre‐
92       dentials.  You'll need to put the certificate and  key  somewhere  like
93       this:
94
95           $ cp <name>.cert.pem ~/.task
96           $ cp <name>.key.pem ~/.task
97
98       Then you configure Taskwarrior, using the provided details:
99
100           $ task config taskd.certificate ~/.task/<name>.cert.pem
101           $ task config taskd.key         ~/.task/<name>.key.pem
102           $ task config taskd.credentials <organization>/<name>/<UUID>
103           $ task config taskd.server      <server domain>:<port>
104
105       If  you  are  using a private server, you are likely also using a self-
106       signed certificate, which means you will  need  one  of  the  following
107       additional entries:
108
109           $ task config taskd.ca          ~/.task/ca.cert.pem
110
111       The  CA  (Certificate Authority) will be used to verify the server cer‐
112       tificate.   Alternatively,  you  can  override  the  cert  verification
113       process using:
114
115           $ task config taskd.trust       'allow all'
116
117       This is an insecure option that should be used with caution, because it
118       directs Taskwarrior to trust any certificate.
119
120       After setup, you run a one-time sync initialization, like this:
121
122           $ task sync initialize
123
124       This will make sure your client and the server are properly in sync  to
125       begin with.  From this point on, you never run the 'initialize' command
126       again, just go about your business, and when  you  want  to  sync,  run
127       this:
128
129           $ task sync
130
131       You'll  see  a  summary of how many tasks were uploaded and downloaded.
132       You can safely run the command as often as you like.  When there are no
133       changes  to  sync,  nothing  happens.  If you do not have connectivity,
134       your task changes accumulate so that when  you  next  run  'sync'  with
135       proper  connectivity,  the  changes  are properly handled, in the right
136       order.
137
138       Strengths:
139         - Always secure
140         - Minimal bandwidth
141         - Tolerates connectivity outage
142
143       Weaknesses:
144         - You need to manage your own server, or  gain  access  to  a  hosted
145       server.
146
147

CREDITS & COPYRIGHTS

149       Copyright (C) 2006 - 2016 P. Beckingham, F. Hernandez.
150
151       Taskwarrior  is distributed under the MIT license. See http://www.open
152       source.org/licenses/mit-license.php for more information.
153
154

SEE ALSO

156       task(1), taskrc(5), task-color(5),
157
158       For more information regarding task, the following may be referenced:
159
160
161       The official site at
162              <http://taskwarrior.org>
163
164
165       The official code repository at
166              <https://git.tasktools.org/scm/tm/task.git>
167
168
169       You can contact the project by writing an email to
170              <support@taskwarrior.org>
171
172

REPORTING BUGS

174       Bugs in task may be reported to the issue-tracker at
175              <http://taskwarrior.org>
176
177
178
179task 2.5.1                        2016-02-24                      task-sync(5)
Impressum