Things ist ein großartiges Produkt. (Punkt! Dem ist nichts hinzuzufügen!)
Nutzer von .Mac bzw. MobileMe können mit der Hilfe der iDisk und etwas git-Magie™ allerdings noch ein Stückchen mehr awesome bauen, nämlich ein Sync der Things-Datenbank über mehrere Macs.
Vorgeplänkel:
- Wenn Du Things auf mehr als einem Mac nutzen möchtest, dann kaufe bitte eine entsprechende Anzahl von Lizenzen.
- Ja, ich meine das ernst – die Buben aus Stuttgart haben wahnsinnig gute Arbeit geleistet, sowas muß man einfach würdigen.
- Ich gehe davon aus, daß Du ein lauffähiges git auf Deinem Mac hast, Anleitungen hierzu gibt es genug im Netz.
- Ich habe vor langer Zeit den symlink
/Volumes/iDisk erstellt, um einen generischen Zugriffspfad zu haben. In den kompletten Zeilen weiter unten referenziere ich diesen Pfad. Der Name Deiner iDisk ist Dein Benutzername, ersetze also entsprechend iDisk mit $Du.
Let’s get dirty!
Auf dem Mac mit installiertem und genutztem Things erstellen wir ein git-Repository. Things legt seine Datenbank als XML in ~/Library/Application Support/Cultured Code/Things ab, und damit das Setup einfach bleibt, nutzen wir auch genau diesen Pfad für das Repository.
cd ~/Library/Application\ Support/Cultured\ Code/Things
git init
git add .
git commit -a -m "initial commit"
Sobald das neu erstellte Repository existiert und mit den bisherigen Daten gefüllt ist, erstellen wir erst ein neues Repository auf der iDisk (--bare weil wir in diesem Repository nicht arbeiten wollen, sondern es nur als “Server” benutzt wird) und pushen die Daten dort hin.
git clone --bare . /Volumes/iDisk/Repository/things.git
git remote add idisk /Volumes/iDisk/Repository/things.git
git push idisk master
Der Name “iDisk” für das remote-Repository ist hierbei frei gewählt.
Das folgende Shell-Script wird in Zukunft die oben angesprochene Magie™ für uns übernehmen, daher bitte einmal copy&paste, chmod +x und mit dem gewünschten Zeitpunkt in die crontab des eigenen Users eintragen.
1
2
3
4
5
6
| #!/bin/bash
DATE=`date`
cd ~/Library/Application\ Support/Cultured\ Code/Things
git pull idisk master
git commit -a -m "Auto Sync - $DATE"
git push idisk master |
Bis hier haben wir ein Backup-System mit Versionshistorie, aber von einem zweiten Mac war bisher noch nicht die Rede, oder? Also…
Schickt die Clone herrein!
Auf dem zweiten oder siebzenten Mac Things installieren und mit der leeren Datenbank beenden.
cd ~/Library/Application\ Support/Cultured\ Code
mv Things Things.dist
git clone /Volumes/iDisk/Repository/things.git
Und auch auf diesem Apfel lassen wir das obige Shell-Script per cron laufen. Ich empfehle hier die Zeitpunkte nicht zu nah aneinander zu legen, so daß Kollisionen bestmöglich vermieden werden.
Kollisionen:
Auch wenn git mit Kollisionen umgehen kann, dieser Weg sollte nur so weit als Sicher bezeichnet werden, als das nur ein Mensch an einem Mac parallel arbeitet. Mit etwas mehr Magie™ läßt sich sicherlich ein Weg finden, die Things Datenbank bei Änderungen aus mehreren Quellen entsprechend zu mergen, aber diese Anforderung stellte sich bei der Motivation dieser Anleitung nicht. Für Vorschläge bin ich immer offen.
Egal was Du tust, sichere Deine Daten! Ich bin zwar kein Fießling, und absichtlich werden hier niemals Fehler zu finden sein, aber wer blind ein rm -rf / abtippt, dem ist nicht mehr zu helfen. Sichere Deine Daten, denke nach was Du tust, teste was man testen kann.
Inspiriert von:
Apple, GTD