<page xmlns="http://projectmallard.org/1.0/"
      xmlns:its="http://www.w3.org/2005/11/its"
      type="topic" style="task"
      id="gtg-sync">

  <info>
    <link type="guide" xref="index#gtg-sync" group="first"/>
     <link type="seealso" xref="gtg-add-sync"/>
      <link type="seealso" xref="gtg-caldav"/>

      <revision pkgversion="0.3.1" date="2013-06-18" status="outdated"/>
      <revision pkgversion="0.4.0" date="2020-05-20" status="outdated"/>      
      <revision pkgversion="0.6.0" date="2022-01-17" status="candidate"/>		

   <credit type="author copyright">
      <name>Radina Matic</name>
      <email its:translate="no">radina.matic@gmail.com</email>
      <years>2013</years>
    </credit>
    <credit type="copyright editor">
      <name>Danielle Vansia</name>
      <email its:translate="no">daniellevansia@gmail.com</email>
      <years>2022</years>
    </credit>

    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>

  </info>

  <title>Understanding Synchronization Services</title>


<section id="built-in-sync">
<title>Built-In Synchronization Services</title>

<p>Synchronization Services allow <app>GTG</app> to synchronize (meaning to have access or to import) tasks or other items like notes from other services.</p> 

<p>In GTG, there can be different types of synchronization:</p>
<list>
      <item><p><em>Read-only synchronization</em>: The primary goal is to track things (for example, the bugs assigned to you on a bug tracking system). You cannot directly mark the task as resolved in <app>GTG</app>, but when you mark the associated bug as fixed on the bug tracking system, it will show up as such in <app>GTG</app>. Read-only also means that if you open one of the imported tasks and change the title, description, or tags, those changes are visible only to you and will be lost when the associated task is modified on the originating service. You are free to set any other field (start/due dates, subtasks, etc.), and with those field your changes will be preserved. This is useful to add personal annotations to imported tasks.</p></item>
      <item><p><em>Import synchronization</em>: This is similar to read-only synchronization; however, you are free to change any field you want. Keep in mind that all the changes you make will be visible only on your computer. <app>GTG</app> will also make sure that no task is imported twice.</p></item> 
      <item><p><em>Full synchronization</em>: This provides the full read/write synchronization between <app>GTG</app> and the service. </p></item>
</list>

<p>List of available Sync Services in <app>GTG</app>:</p>

<list>
	<item><p><em style="strong"><link xref="gtg-caldav">CalDAV</link></em>: Allows you to synchronize your <app>GTG</app> tasks with CalDAV tasks (full synchronization). CalDAV is often provided by calendar and tasks/groupware services.</p></item>
</list>
</section>

<section id="third-party-sync">
<title>Other Synchronization Systems</title>

<p>Alternatively, if you do not have (or want) an always-on server to handle continuous synchronization (such as for the CalDAV synchronization service), you can use a manual synchronization tool, like <link href="https://en.wikipedia.org/wiki/Unison_(software)">Unison</link>, to sync GTG's data folders over SSH/SFTP from one computer to another, as long as you ensure you are running GTG on only one of your computers at a time, cleanly shut down GTG, review and synchronize the data before using it on the other computer. This "batch" manual synchronization technique potentially provides more control, at the expense of the simplicity of running simultaneous instances of GTG that would be continuously synchronized across computers.</p>

<p>Recent versions of GTG do not have a locking file mechanism to ensure it is not already running on one of your other computers, so third-party "continuous" file synchronization services (such as Syncthing) cannot be recommended for this purpose.</p>
</section>

</page>

