File: task-sync.5.in

package info (click to toggle)
task 2.6.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 7,076 kB
  • sloc: cpp: 45,964; python: 12,713; sh: 785; perl: 189; makefile: 21
file content (177 lines) | stat: -rw-r--r-- 5,668 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
.TH task-sync 5 2016-02-24 "${PACKAGE_STRING}" "User Manuals"

.SH NAME
task-sync \- A discussion and tutorial for the various task(1) data
synchronization capabilities.

.SH INTRODUCTION
Taskwarrior has several sync options, both external and built in.  If you wish
to sync your data, choose one method only; mixing methods is going to lead to
problems.  Each of the methods discussed have their own strengths.

.SH ALTERNATIVES
There are three alternatives for syncing data, which are:

1) Version control systems, such as git, hg, svn
.br
2) File sharing systems, such as DropBox, Google Drive
.br
3) Using the Taskserver and the 'sync' command


.SH OPTION 1: VERSION CONTROL SYSTEMS
There are several good, distributed VCS systems (git, hg, ...) and centralized
VCS systems (svn, cvs ...), and they all function in a similar fashion for our
purposes.

Setup is straightforward.  You place your .task directory under revision
control.  You then need to perform a regular commit/push/pull/update to make
sure that the data is propagated when needed.  You can even do this using shell
scripts so that every task command is preceded by a 'pull' and followed by
a 'push'.

Strengths:
.br
  - Good data transport mechanisms
.br
  - Secure transport options

Weaknesses:
.br
  - You need proficiency with VCS tools
.br
  - You will need to manually resolve conflicts frequently
.br
  - You need to provide the mechanism for making sure copies are up to date


.SH OPTION 2: FILE SHARING SERVICES
There are many file sharing services, such as DropBox, Amazon S3, Google Drive,
SkyDrive and more.  This technique involves storing your .task directory in a
shared directory under the control of the file hosting services.

Syncing happens quickly, although it is possible to run into conflict situations
when there is no network connectivity, and the tasks are modified in two
separate locations.  This is because the file hosting service knows only about
files, and it has no idea how to merge tasks.  Avoid this problem by never
modifying the same task on two machines, without an intervening sync.

Setup simply involves creating the directory and modifying your data.location
configuration variable like this:

    $ task config data.location /path/to/shared/directory

Strengths:
.br
  - Good client support
.br
  - Easy setup
.br
  - Transparent use

Weaknesses:
.br
  - Tasks are not properly merged


.SH OPTION 3: TASKSERVER
The Taskserver was designed for this purpose to be secure, fast and conflict-
free, allowing data interchange between assorted Taskwarrior clients, and
tolerant of network connectivity problems.

There is a 'sync' command built in to Taskwarrior (provided the GnuTLS library
is installed), and with a server account and client configuration, syncing is
done on demand.

Setup is a matter of creating an account on a Taskserver (see your Taskserver
provider or operate your own - see
https://taskwarrior.org/docs/taskserver/setup.html)

Once you have an account, you'll receive a certificate, key, and credentials.
You'll need to put the certificate and key somewhere like this:

    $ cp <name>.cert.pem ~/.task
    $ cp <name>.key.pem ~/.task

Then you configure Taskwarrior, using the provided details:

    $ task config taskd.certificate ~/.task/<name>.cert.pem
    $ task config taskd.key         ~/.task/<name>.key.pem
    $ task config taskd.credentials <organization>/<name>/<UUID>
    $ task config taskd.server      <server domain>:<port>

If you are using a private server, you are likely also using a self-signed
certificate, which means you will need one of the following additional entries:

    $ task config taskd.ca          ~/.task/ca.cert.pem

The CA (Certificate Authority) will be used to verify the server certificate.

After setup, you run a one-time sync initialization, like this:

    $ task sync init

This will make sure your client and the server are properly in sync to begin
with.  From this point on, you never run the 'initialize' command again, just
go about your business, and when you want to sync, run this:

    $ task sync

You'll see a summary of how many tasks were uploaded and downloaded.  You can
safely run the command as often as you like.  When there are no changes to sync,
nothing happens.  If you do not have connectivity, your task changes accumulate
so that when you next run 'sync' with proper connectivity, the changes are
properly handled, in the right order.

If you run multiple clients that sync to the same server, you will need to run
this command on your primary client (the one you use most often):

    $ task config recurrence on

And on the other clients, run:

    $ task config recurrence off

This protects you against the effects of a sync/duplication bug.

Strengths:
.br
  - Secure communication
.br
  - Minimal bandwidth
.br
  - Tolerates connectivity outage

Weaknesses:
.br
  - You need to manage your own server, or gain access to a hosted server.

.SH "CREDITS & COPYRIGHTS"
Copyright (C) 2006 \- 2021 T. Babej, P. Beckingham, F. Hernandez.

Taskwarrior is distributed under the MIT license. See
https://www.opensource.org/licenses/mit-license.php for more information.

.SH SEE ALSO
.BR task(1),
.BR taskrc(5),
.BR task-color(5),

For more information regarding Taskwarrior, see the following:

.TP
The official site at
<https://taskwarrior.org>

.TP
The official code repository at
<https://github.com/GothenburgBitFactory/taskwarrior>

.TP
You can contact the project by emailing
<support@GothenburgBitFactory.org>

.SH REPORTING BUGS
.TP
Bugs in Taskwarrior may be reported to the issue-tracker at
<https://github.com/GothenburgBitFactory/taskwarrior/issues>