Skip to content
skarra edited this page May 14, 2012 · 5 revisions

This wiki page refers only to the v0.1.0 release. Starting with release v0.2.0 all documentation is maintained inside the repository itself, and can be viewed on the main project page at: http://karra-asynk.appspot.com


Why Gout

There is no fast, free, two way, PIM sync solution for Outlook <-> Android. Until now, that is.

  • Gout is fast - my first run that copied 1200 contacts to Gmail took less than one minute. That compares to more than 15 minutes it takes with Google's own Outlook migration tool (which is one way copy, btw)
  • Gout is free - It is released under the GPL v3 and the source code is available on github
  • Gout is a two way sync - We recognize edits on both ends and synchronize seamlessly where there are no conflicts. On conflict resolution, see below
  • Gout does Contacts in the first beta release. There are plans for Tasks and Notes. The Google Calendar sync utility is pretty good, and can be used, even if it is a closed program
  • It solves the EX mail address problem where many tools are only able to get the ldap EX address which cannot be used outside the corporate network and useless in a cloud based address book. Most outlook contacts sync solutions suffer from this limitation, including Outlook's own 'Export to CSV' "solution".

Installation

The easiest way to get install Gout is to download a pre-packaged, self-contained executable bundle available in the Downloads section of the github page for Gout.

Unzip the downloaded zip file and you would get a directory called 'gout'. This directory contains all you'll need to execute and enjoy the features of Gout. No more downloads are required.

Executing Gout

In the gout directory locate and execute the gout.exe windows executable. When you double click to execute gout.exe, you'll get a command window and a GUI. The command window will contain a lot of informational messages - the 'console' for the application - and we are trying to hide it from regular users; it will happen in subsequent releases.

The interactive dialog box can be used to enter your gmail credentials, select a direction for performing your sync, and to actually perform the sync.

The Basics

Gout works by creating a group called Gout in your Gmail contacts, and synching your outlook contacts to that group. The sync status is tracked by adding a specific field to every synched Outlook contact. No other group or contact in your gmail is touched in any way.

The intended flow is to have all your contacts in Outlook, run Gout for the first time, when a sync will basically create a new group called Gout and copy all the contacts over. Subsequent runs of Gout will identify new contacts and updates on both ends and synchronize properly.

Key Actions

The dialog box contains three main and important buttons:

Dry Run

This will perform a check on the status of the last sync, and give you a report on how many items there are in your Outlook, how many are new since your last sync, how many already synched items are modified, etc. Similar statistics are printed for the Google Contacts as well.

No synching is actually performed. This action does not your impact your 'last sync' time stamps that impact your change set.

Sync

This will do an actual sync. The direction of actual sync is determined by your selection in the radio box in the UI.

Conflicts are, for now, settled by ensuring that Outlook wins. There are plans for supporting a user-editable preference to override this. Please note that in case you want Google edits to overwrite Outlook, you can always perform a one-way sync from Google to Outlook first - this will ensure that there are no conflicts in a subsequent two way sync.

Clear Sync State

You might sometimes wish you could just start over from scratch as if you had ever used Gout. You could achieve that by executing 'Clear Sync State'. The following actions are taken when you do this:

On the Google Contacts side:

  • All contacts in the Gout group are deleted - one at a time. This could be slow if you have hundreds/thousands of contacts, in which case we recommend you manually delete all contacts using the gmail interface where you can nuke 250 at a time, and then return to clear sync state
  • The Gout group itself is deleted, for good measure
  • A fresh empty group with the same name ('Gout') is created

On the Outlook side:

  • Tracking information is deleted
  • The application state is reset, as if there has never been a sync at all

Key Points to Note

There are some limitations that you should be aware of. We have plans to fix all of them in time. As with all product teams in our position, if there are any features you would really like to see implemented from the list below - or outside - do drop us a note and we will see what can be done.

Deletes are not synched (yet)

The Google contacts api can be queried to find out which of your contacts have been deleted since we last synched. This information can be used to delete the same entries from your Outlook. However there is no such API for Outlook, which makes synching deletes a bit more complicated. At this time your deletes are not synched, although that is very much in the feature pipeline and will be the next feature to be released.

You can only sync to the Gout group

The UI has a non-editable text field that displays 'Gout' as the name of the Gmail Contact group to be used for synching. We are working on providing you a way to change the label name the first time you use Gout. As we note below, it is hard to change the group you want to sync after you have synched once or more.

Synching to multiple accounts

Please keep in mind that the sync status is specific to the gmail account you have synched with already. Bad things can happen if you try to sync to multiple gmail accounts during different runs.

Please note that you could perfectly do a 'Clear Sync State', and then start synching with a new gmail account.

Advanced

app_state.json

Your gout directory has a file called app_state.json which is used to store some configuration and sync status information. If you are an advanced user and are willing to take the risk, you can edit some of the fields in this file.

Your gout directory should also contain a app_state.ex.json file with detailed comments about each configuration parameter, and which of them can be edited for fun and profit. Ofcourse, if you mess with this fellow, at least you know that you asked for what you get :-)