Technikwürze

Versionsverwaltung (neu)

Technikwürze 58

Meta: S1 · E58 · Typ full · Veröffentlicht · Aktualisiert

Moderation: David Maciejewski

Gäste: Ralf Kühnbaum-Grashorn

Zusammenfassung

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.

Inhalt

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.

Kommentare (12)

  • macx macx

    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.

  • Daniel Jagszent Daniel Jagszent

    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 ;)

    • Ralf Kühnbaum-Grashorn Ralf Kühnbaum-Grashorn

      @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

    • Daniel Jagszent Daniel Jagszent

      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.

  • Cornelius Cornelius

    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.

  • Shakka Shakka

    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!

  • Jan Jan

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

    Gruß
    Jan

  • macx macx

    Auf dieser Seite haben wir bereits viele Links gesetzt, auch zu "GUIs":http://subversion.tigris.org/links.html.

By submitting your data, you agree that all entered data may be saved and displayed as a comment.