oracular (5) task-sync.5.gz

Provided by: taskwarrior_2.6.2+dfsg-1build2_amd64 bug

NAME

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

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.

ALTERNATIVES

       There are three alternatives for syncing data, which are:

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

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:
         - Good data transport mechanisms
         - Secure transport options

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

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:
         - Good client support
         - Easy setup
         - Transparent use

       Weaknesses:
         - Tasks are not properly merged

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:
         - Secure communication
         - Minimal bandwidth
         - Tolerates connectivity outage

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

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.

SEE ALSO

       task(1), taskrc(5), task-color(5),

       For more information regarding Taskwarrior, see the following:

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

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

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

REPORTING BUGS

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