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, 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
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
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
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
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
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
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
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)