git-annex: Like Dropbox, but ...

Joey Hess, bekannt als wichtiger Contributor beim Debian Projekt, hat vor einigen Wochen auf Kickstarter ein Projekt angekündigt, das mit “Like DropBox, but with your own cloud” betitelt ist.

Inzwischen hat er über Kickstarter genug Geld für die nächsten Monate eingesammelt und entwickelt damit den git-annex assistant, ein einfach benutzbares Frontend für git-annex:

git-annex allows managing files with git, without checking the file contents into git. While that may seem paradoxical, it is useful when dealing with files larger than git can currently easily handle, whether due to limitations in memory, time, or disk space.

The git-annex assistant creates a folder on each of your computers, removable drives, and cloud services, which it keeps synchronised, so its contents are the same everywhere. It’s very easy to use, and has all the power of git and git-annex.

Funktioniert so:

ein Git-Repository wird angelegt, die Dateien werden jedoch nicht direkt eingecheckt, sondern in ein spezielles Verzeichnis unterhalb von ./.git/annex verschoben und Symlinks darauf erstellt. Diese landen im Repository und sind auf allen synchronisierten Kopien des Repositorys verfügbar.

Die eigentlichen Daten werden von git-annex nach Wunsch des Benutzers zur entsprechenden Kopie kopiert. D.h. man könnte eine Kopie des Repositorys haben, die jedoch erstmal nur aus (broken) Symlinks besteht. Die Daten, die man verfügbar haben möchte, kann git-annex dann von einer anderen Kopie holen (dabei kann man sogar noch Sachen festlegen, wie “diese Datei soll in mindestens 3 Kopien des Repositorys verfügbar sein”).

Die Daten können in Git-Repositorys gespeichert werden, aber auch in Amazons S3 oder per rsync irgendwo.

Der Assistant

Das alles funktioniert schon (sogar als Debian-Paket). Derzeit entsteht der Assistant, der die Verwaltung des ganzen einfacher machen soll und damit nicht nur für Kommandozeilen-Nerds interessant.

Fazit

Klingt cool, ist es auch, und zudem noch in Haskell geschrieben und stabil und schnell und überhaupt.

Sicher nicht die Allerweltslösung, die Tatsachen, dass alle Dateien Symlinks sind und normalerweise read-only (immutable), schließt einige Anwendungsfälle aus (daher kein Dropbox-Ersatz!), aber für bestimmte Aufgaben ist es jetzt schon sehr sehr nützlich.