Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
task-sync(5)			  User Manuals			    task-sync(5)

NAME
     task-sync - A discussion and tutorial for the various task(1) data synchro-
     nization 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 central-
     ized 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  di-
     rectory  in  a  shared directory under the control of the file hosting ser-
     vices.

     Syncing happens quickly, although it is possible to run into conflict situ-
     ations 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 prob-
     lem by never modifying the same task on two machines, without an  interven-
     ing sync.

     Setup  simply involves creating the directory and modifying your data.loca-
     tion 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  con-
     flict-   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  li-
     brary  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://taskwar-
     rior.org/docs/taskserver/setup.html)

     Once you have an account, you'll receive a certificate,  key,  and  creden-
     tials.  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  en-
     tries:

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

     The  CA  (Certificate Authority) will be used to verify the server certifi-
     cate.

     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  be-
     gin  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  connectiv-
     ity, 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.open-
     source.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>

task 2.6.2			   2016-02-24			    task-sync(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=task-sync&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help