Erstellt am 15.01.2010
Es gibt unzählige Möglichkeiten Verzeichnisse zu synchronisieren. Komplizierter wird es jedoch immer dann, wenn in beide Richtungen synchronisiert werden soll. Die Lösung, die ich hier vorstelle arbeitet mit Subversion (SVN), ist nahezu Betriebssystemunabhängig und bietet nebenbei auch noch die Möglichkeit alte Versionen seiner Dateien jederzeit wiederherstellen zu können. Dieser Artikel soll keine fertig Anleitung sein, sondern vielmehr einen kleinen Einblick in das Thema geben. Über SVN selber gibt es bereits zahlreiche Anleitungen.
Inhalt:
Was heißt das für uns? SVN kann beliebig viele Kopien eines Ordners synchron halten. Jede Änderung an diesen Ordnern auf dem Server wird gespeichert. Wir erhalten also nicht nur eine Synchronisation, sondern auch die Möglichkeit versehentliche Änderungen rückgängig zu machen. Nachteil: Wir brauchen zusätzlich Platz auf dem Server. Bei vielen Änderungen kann das eine ganze Menge werden.
Szenario Sagen wir einmal wir wollen zwei Ordner "Dokumente" zwischen einem PC und einem Notebook (NB) synchron halten. Dazu benötigt man insgesamt 3 Kopien dieses Ordners: Eine auf PC, eine auf NB und dann noch eine auf dem Server, auf den beide PCs zugreifen. Ich werde hier folgendes Szenario beschreiben: Ein Server im Internet, dessen SVN Repository über Http(s) erreichbar ist.
Server Es gibt viele Anleitungen für das Aufsetzen von SVN Servern im Internet. Es ergeben sich für unseren Anwendungsfall dabei keine Besonderheiten. Was man erwähnen sollte: SVN kennt verschiedene Protokolle. Unter anderem http, https und ein eigenes. Für Server im Internet eignet sich https sicherlich gut. Beispiel für eine Anleitung zum installieren eines SVN-Server mit Apache: http://www.petanews.de/blog-news-developer/subversion-mit-apache-22/ Achtung: Ich habe die Anleitung selber nicht getestet.
Client Prinzipiell kann man SVN sehr gut mit der Konsole bedienen. Viele Leute (auch ich) bevorzugen jedoch ein graphisches Programm. Es gibt Clients für Windows, Linux, Mac OS X, Java, usw. Die Arbeitsweise ist immer identisch und die Bedienung meist ähnlich. Hier eine Liste von Clients: http://subversion.tigris.org/links.html#clients
Zur Bedienung: Es gibt 3 Aktionen, die für uns besonders interessant sind:
Synchronisieren Zum Synchronisieren reichen unter Linux beispielsweise zwei einfache Befehle.
[Plain] [Html]1 cd /pfad/verzeichnis/ 2 svn update 3 svn commit -m "test"
Dabei sollte man allerdings beachten, dass neu erstellte Ordner nicht automatisch mit übernommen werden.
Vorteile(+) / Nachteile(-): + SVN ist sehr ausgereift und weit verbreitet. + Sehr Universell einstzbar (verschiedene Protokolle, Internet, LAN, ...) + SVN Clients sind für alle wichtigen Betriebssysteme verfügbar. + Auf einem Client wird nur eine URL und ein Benutzer+Passwort zur Konfiguration benötigt. + (z.B. bei WebDAV) Zugriff von überall aus der Welt über Webbrowser möglich. + Möglichkeit ältere Versionen einer Datei zu betrachten (-> Versionskontrolle). - Grundlegende SVN Kenntnisse sinnvoll. - SVN Server benötigt.