Alsuren

December 2, 2010

Synchronisation

Filed under: collabora — alsuren @ 7:52 pm

I’ve been looking for a task-management app which could sync with my phone for *months* now without much luck. I tried making GTG sync with RememberTheMilk, and using nolazy for a while, but it was mostly just annoying and got in my way so I gave up.

I’d seen a lot of the guys in the office using Tomboy to organise their thoughts/todo lists, and being pretty effective at keeping on top of their lives, but I didn’t want to adopt a solution that would leave me helpless when I didn’t have my laptop with me. A great thing about Maemo is that there are a lot of ports/clones of desktop apps available, so I set about planning a few of my projects using Tomboy on the desktop and Conboy on my phone.

Then it came to the problem of syncing the two. Conboy suggests that it has the ability to sync notes with your desktop via Ubuntu One, but I decided against that solution. Also, I found out that Tomboy and Conboy use the same format for their notes, so you can sync the files without the help of either application.

The guide I found to sync the files uses a dedicated sync program called unison, which isn’t packaged for maemo, and sounds a bit dubious. Also, I use git to sync files between multiple computers *all the time* for my day-to-day job, so why can’t I just use that instead? It turns out that git *is* available for the n900 (yes: Maemo is awesome) but it is designed for more complicated workflows than “sync these files between here and here”, so I had to hack up a little script to make the job a bit easier.

At the moment it’s more “proof-of-concept” than anything production quality, so I don’t know if it will be useful to anyone who doesn’t already know how to use git, but the idea is there for people to try out and improve on as they see fit.

Current obvious limitations are:
* It just complains loudly and leaves you in the hands of git-rebase if there are any conflicts (should probably fire up mergetool in a temporary directory if I want to handle conflicts *properly*).
* You have to use git init . in both places to set up the git repositories before you try to sync (might add a –init option at some point, but haven’t done so yet).

Advertisements

Blog at WordPress.com.