Kommt euch bestimmt bekannt vor: Man arbeitet an einem Dokument und merkt, dass man vor wenigen Tagen etwas aus dem Dokument gelöscht hat, was man nun doch wieder benötigt. Leider innerhalb einer zu kurzen Zeitspanne, dass es nicht mehr aus dem Backup wiederherstellbar ist. Ärgerlich.
Lösung? Es gibt verschiedene Möglichkeiten, eine davon ist eine Versionsverwaltung. Mit einer Versionsverwaltung kann man ältere Dateiversionen wiederherstellen oder mit der aktuellen Version vergleichen.
In der Dropbox ist beispielsweise so eine Funktion integriert. In der kostenlosen Version aber leider nur 30 Tage zurück und ohne integrierte Diff-Möglichkeit. Also habe ich mich mal mit Subversion beschäftigt. Ursprünglich wurde ich mal durch Patrick darauf aufmerksam. Für den Server ist nicht mehr wie der Apache sowie das Subversion Paket nötig. Ich habe hierzu beispielsweise einen Ubuntu-Server verwendet.
Ist der Server einmal soweit eingerichtet benötigt man die entsprechende Software auf dem Client. Unter Linux reichen die Command-Line Utilities, für Windows finde ich Tortoise SVN ganz praktisch. Integriert sich in das Windows Kontextmenü und bietet die Möglichkeit die einzelnen Befehle direkt von dort auszuführen. Zudem sieht man anhand der Icons im Explorer gleich den entsprechenden SVN-Status (added, modified, normal, …) der Dateien.
Anschliessend müssen nur noch die gewünschten Dateien und Ordner in die Versionsverwaltung eingecheckt und ein «Working Directory» angelegt werden.
Einsatzmöglichkeiten? Gibt es natürlich sehr viele. Vor allem bei Entwicklern werden solche Tools zur Versionsverwaltung sehr gerne eingesetzt. Ich schätze es aber auch im Umgang mit Dokumentationen oder wissenschaftlichen Arbeiten, welche ich beispielsweise in der Schule sehr oft schreiben muss.
Auch kann ich so in der Schule an einer Arbeit arbeiten, welche sich auf dem USB-Stick befindet — Zuhause aktualisiere (commite) ich die Datei dann via Tortoise und habe dann direkt auch wieder ein Backup der Datei auf dem SVN-Server und kann später auf diese ältere Dateiversion zurückgreifen, sollte ich sie wieder benötigen.
Ich bin zwar kein Entwickler, schreibe aber auch hin und da wieder mal ein kleines Script, da ist das dann natürlich auch ganz praktisch wenn ich auf vorherige Versionen zurückgreifen kann oder den Changelog direkt ins SVN auslagern kann.
Auf Google+ habe ich SVN ja auch mal kurz erwähnt und festgestellt, dass der Trend aktuell eher Richtung Git (dezentrales Versionsmanagement) geht. Ich bleibe aber nun mal bei SVN, da ich ganz zufrieden bin so wie es ist.
Wer von euch verwendet ein System zur Versionsverwaltung? Welches? Zu welchen Zwecken?


Hatte bei mir auf der Seite vor ein paar Monaten was zu «portable Subversion Server» geschrieben, bzw. wie relativ einfach einer erstellt werden kann. Find ich für zuhause recht praktisch. Ansonsten in der Firma ganz klar Subversion — ohne Versionsverwaltung geht es einfach nicht.
Wer für einen Windows PC einen SVN Server sucht, dem kann ich den Visual SVN Server (http://visualsvn.com) empfehlen. Kostet in der Standardversion nichts und läßt sich gut Administrieren.
Ich nutze SVN selbst für meine Entwicklungsprojekte und bin damit eigentlich zufrieden. Habe mir vor einiger Zeit auch mal GIT angeschaut, bin damit aber nicht so recht warm geworden.
Cheers
Für Subversion braucht man nichtmal den Apache Webserver. Der ist nur dann nötig, wenn man Subversion per HTTP-Protokoll erreichbar machen möchte (somit kann ich z.B. Sperren unserer Firmen-Firewall umgehen).
Ohne Apache benutzt man einfach den Befehl/Dienst svnserve mit ensprechenden Parametern.
Finde HTTP aus dem von dir erwähnten Grund ganz praktisch. Wobei ich auf dem entsprechenden Server aktuell nur den SSH Port offen habe.
Den Rest mache ich dann direkt via SSH-Tunnel und Zugriff via localhost. Funktioniert sehr gut und ich kann ohne Bedenken auch in fremden Netzwerken darauf zugreifen.
Ich verwende ebenfalls Subversion, ohne gehts nicht mehr. Ich bin einfach zu faul die unterschiedlichen Versionen auf den Computers zusammenzusuchen und ich will meine Daten online verfügbar haben. Hier ist meine Anleitung, wie man sich auf einem Server mit Debian Subversion einrichten und konfigurieren kann: http://blog.root1024.ch/netzwerk/subversion-svn-einrichten-v.….n-a-bis-z/
Man kann mit Versionsverwaltungen auch ganz gut die Konfigurationsdateien von Unix/Linus-Systemen sichern… ist insbesondere hilfreich, wenn man irgendwas kaputtoptimiert ;)
Achja, ich nutze auch hauptsächlich SVN, weil ich dafür mal n passenden Server eingerichtet hab (inkl. Trac), damit macht das entwickeln in der Gruppe gleich viel mehr Spass und mit ein paar Spielregeln, geht auch fast nichts schief :)
Super Idee mit den Konfigurationsdateien! Habe ich mir bis jetzt noch gar nicht überlegt, kann ich mir bei mir aber auch sehr gut vorstellen.
Wie machst du das genau? Einfach im entsprechenden Ordner mit den Config-Files einen bestimmten Ordner aus einem SVN-Projekt auschecken?
Einfach den Ordner /etc in die Versionsverwaltung mit aufnehmen.
SVN ist auf jeden Fall eine sehr feine Sache, nutze es seit 2 Jahren (Beginn meines Studiums) und seit einiger Zeit auch privat. Ist extrem praktisch alles immer dabei zu haben und das vor allem in den jeweils aktuellsten Versionen.
Wobei ich es zum Großteil für aufwendigere Dinge nutze und z.B. simple Dokumente eher via Google Docs allgemein verfügbar mache.
Hi Jeffrey,
mit welchem Programm bzw. welchem Dateiformat schreibst du deine Dokumentationen und Arbeiten? Für doc und odt Dateien ist SVN meines Wissens nicht geeignet, oder?
Viele Grüße,
Gerald
Meine Dokumentationen schreibe ich meist im docx Format (Word 2010). SVN kommt bei mir bis jetzt sehr gut zurecht damit.
Zusammen mit Tortoise SVN funktioniert auch das Vergleichen von verschiedenen Dateiversionen ganz gut. Es wird dabei direkt die Word interne Vergleichs-Funktion verwendet.
Warum denkst du, dass es Probleme geben könnte? Meiner Meinung nach kann man jegliche Dateitypen im SVN ablegen.
Ich kannte SVN bisher nur für Coding, welches ja im plain text format vorliegt. Das sogar ein inhaltlicher Vergleich des proprietären docx Formats möglich ist, hatte ich nicht erwartet. Das werde ich auch mal testen!
Nur mal interessehalber: Ist dein Ubuntu Server ein eigener physikalischer Rechner oder hast du den als virtuelle Maschine auf dem selben Computer laufen?
Im Beispiel mit dem docx-Format wird der Inhalt ja nicht direkt von SVN selber, sondern von Word verglichen. Das SVN stellt dazu nur die beiden zu vergleichenden Dateiversionen zur Verfügung, die dann von Tortoise an Word übergeben und dort verglichen werden.
Mein Ubuntu Server steht in der Cloud (HostEurope) und wird unter anderem für SVN verwendet. Darüber sichere ich aber beispielsweise auch meinen Webserver (ebenfalls bei HostEurope).
http://infoblog.li/hosteurope-es-gibt-nicht-nur-schlechte-ho.….-anbieter/
http://infoblog.li/mein-erster-eindruck-vom-parallels-plesk-.….panel-10/
Hallo,
ich würde SVN auch gerne mal ausprobieren, allerdings brauch ich die Daten nicht im Internet. Kann ich mir das auch lokal einrichten? Wenn ja wie, hast du da einen guten Artikel dazu?
Grüße & Danke
Ja, das ist problemlos möglich. Das Einzige, was du benötigst ist ein Linux-Server, der irgendwo bei dir im Netzwerk steht. Dort muss dann der SVN-Dienst bzw. der Apache laufen.
Eine entsprechende Anleitung habe ich im Beitrag oben (zugegeben, versteckt) verlinkt. Im UbuntuWiki gibt es Tipps zu dem Thema: http://wiki.ubuntuusers.de/subversion
Das geht auch wunderbar unter Windows: http://www.techspread.de/41/anleitung-subversion-server-unte.….stallieren
Danke soweit,
ist das auch unter MacOS möglich?
Grüße
Es gibt bestimmt auch einen Subversion Server für Mac OS. Falls nicht, könntest du dir mal Git anschauen.