Wenig Beachtung unter Webentwicklern sind die Backups der eigenen Dateien. Noch wichtiger aber als die bloße Kopie wichtiger Dateien ist eine Versionsverwaltung. Ralf Kühnbaum-Grashorn ist im Interview und erklärt im Gespräch mit David Maciejewski, warum auch normale Webentwickler Subversion und co einsetzen sollten.

Diese Folge jetzt anhören

Ralf Kühnbaum-Grashorn ist Spezialist im Gebiet der Versionsverwaltung und steht im Interview Rede und Antwort. Für euch haben wir die Stichworte aus dem Gespräch hier zusammengefasst.

Warum eigentlich Versionsverwaltung?

  • Protokollierungen der Änderungen – Es kann jederzeit nachvollzogen werden, wer wann was geändert hat.
  • Wiederherstellung von alten Ständen einzelner Dateien – Somit können versehentliche Änderungen jederzeit wieder rückgängig gemacht werden.
  • Archivierung der einzelnen Release-Stände eines Projektes – Dadurch ist es jederzeit möglich auf alle ausgelieferten Versionen zuzugreifen.
  • Koordinierung des gemeinsamen Zugriffs von mehreren Entwicklern auf die Dateien
  • Gleichzeitige Entwicklung mehrerer Entwicklungszweige

Wie funktioniert das?

Stichworte: pessimistisches (read lock write) und optimistisches ( copy modify merge ) Versionieren

Warum eigentlich Versionsverwaltung im Design-Bereich?

  • Websites bestehen in der Regel aus mehreren Dateien, Verzeichnissen
  • nur die Kombination aus diesen Dateien ergibt ein Ergebnis
  • es lassen sich einfach Varianten oder z.B. kundenspezifische Versionen anlegen
  • häufig arbeiten mehrere Personen/Instanzen zusammen an einer Site
  • Schnelles Deployment auf Test- oder Produktiv-Systemen.

Versionsverwaltung auch für Einzelgänger

  • lohnt sich auch bei lokaler Entwicklung (siehe oben).
  • Backup und Historie
  • es muss nicht erst ein “Server” her.

Versionsverwaltung mit subversion

  • Kurze Historie
  • CVS als Vorgänger
  • wichtigste Unterschiede
  • Skalierbarkeit
  • Verlässlichkeit
  • Unterstützte Betriebssysteme (*nix, Linux, MacOSX, Windows)
  • Architektur (apache, DAV, ssh, etc.)
  • Standards (http(s), ssh
  • effiziente Versionierung von Binär-Dateien (Grafiken) und Verzeichnissen
  • Bedienbarkeit
  • Unterstützung in Applikationen (GUI, Desktop, IDEs etc.), Clients, IDEs, Frontends.
  • Zugriffsmöglichkeiten (http(s), svn+ssh etc.)
  • Automatisierung
  • Erweiterbarkeit

Links zur Versionsverwaltung

News

Lektüreempfehlungen

In dieser Woche könnt ihr viel über Design, Usability und Entscheidungen erfahren.

Diese Folge jetzt anhören

Dieser Beitrag wurde am Dienstag, 6. Februar 2007 um 19:10 Uhr in der Kategorie Podcast veröffentlicht.
Du kannst einen Kommentar hinterlassen, oder einen Trackback von deiner Seite aus senden.

Kommentare

  • Avatarbild von macx macx
    am 6. Februar 2007, 19:37 Uhr

    Aufgrund eines Fehlers im Schnitt konnte diese neue Folge erst am Dienstag, 06.02. um 19:00 Uhr online gehen. Wer die alte Folge erwischt hat, kann hier die neue runterladen.

  • Avatarbild von Daniel Jagszent Daniel Jagszent
    am 7. Februar 2007, 02:02 Uhr

    Ja! SVN ist wirklich klasse!

    Was ich auch sehr nützlich finde, sind die hooks Damit kann man das Repository direkt wieder auf einen Test/Staging-Server auschecken. So könnte ein solcher Hook z.B. aussehen:

    #!/bin/sh

    # POST-COMMIT HOOK

    REPOS="$1"

    svn export --force $REPOS /home/testingsite/htdocs/

    Eclipse SVN-Integration finde ich unschlagbar. Ich benutze da Subversive in meinem Lieblings-Editor, aber das war ja eine andere Folge ;)

  • Avatarbild von Ralf Kühnbaum-Grashorn Ralf Kühnbaum-Grashorn
    am 7. Februar 2007, 08:49 Uhr

    @Daniel:

    Macht es denn wirklich Sinn, per post-comitt hook direkt wieder auszuchecken. Denn per hook würde ja bedeuten, es JEDES mal und automatisch zu machen. Ich comitte häufiger und ich/Team sind auf dem Staging-Server nicht unbedingt jedes mal schon durch.

    Aber man kann mit den hooks auch tolle Sachen machen, wie etwa Mails oder Jabber-Notifications an das Team herumschicken, wenn sich etwas getan hat. Oder man läßt z.B. Unit-Tests oder andere Routinen laufen.

    mfg Ralf

  • Avatarbild von Daniel Jagszent Daniel Jagszent
    am 7. Februar 2007, 14:00 Uhr

    Hi Ralf,

    mit einer Kombination aus pre- und post-commit-hook könnte man das ganze natürlich auch abhängig von einem frei gewählten check-in Kommentar machen. Ich checke aber nicht so häufig ins SVN ein – habe in Eclipse ja schon eine eingebaute History – und komme mit dem einem Skript wunderbar aus.

  • Avatarbild von Cornelius Cornelius
    am 13. Februar 2007, 06:18 Uhr

    Klasse Folge, hab schon haeufig Subversion / CVS fuer Programmierprojekte eingesetzt und kann jedem der im Team arbeitet nur dazu raten es einzusetzen. Man sollte sich aber schon ein wenig ins Thema Versionsverwaltung einlesen, um nicht ploetzlich mit einem korrupten Repository und einer zerstoerten Verzeichnisstruktur zu enden. Also erst klein anfangen und probieren.
    Gruss, Cornelius.

  • Avatarbild von Shakka Shakka
    am 21. Februar 2007, 15:26 Uhr

    Hallo,
    durch diverse Opensource-Projekte kannte ich CVS/SVN schon. Meist aber nur als Quelle für die neueste Programmversion mit den aktuellsten Features… Danke für die Motivation, es auch für eigenes Schaffen, egal bei welchem Thema, zu nutzen.

    Mich würde freuen, wenn im Podcast und den Notizen mehr Wert auf Interoperabilität gelegt werden würde. Ganz im Sinne der offenen Standards:
    Wenn schon Hinweis auf bestimmte Programm, dann bitte auch mal abseits der Marktführer/Monopole.
    Es gibt (immer mehr) Leute, die z.B. auch unter Linux oder mit GIMP/Inkscape arbeiten. Daher wäre eine platformübergreifende Bereichterstattung toll.

    Dank & Grüße!

  • Avatarbild von Jan Jan
    am 18. März 2007, 11:25 Uhr

    Wollte mal fragen,ob es auch eine gute GUI für die Administration des SVN gibt?

    Gruß
    Jan

  • Avatarbild von macx macx
    am 18. März 2007, 12:42 Uhr

    Auf dieser Seite haben wir bereits viele Links gesetzt, auch zu GUIs.

Und was hast du zum Thema zu sagen?

Fülle bitte alle mit *-gekennzeichneten Felder aus.


Du darfst Textile verwenden, um deinen Beitrag auszuzeichen.