Technikwürze

Wer suchet, der findet!

Reguläre Folge, Download (MP3, 46 MB)

Transkript der Folge

  1. David

    Herzlich willkommen zur Technikwürze Nummer achtundfünfzig. Heute ist Montag, der fünfte zweite nullsieben, und wir sind 'n bisschen später dran, denn das hat nämlich folgenden Hintergrund, dass ich heute wieder 'n Gast, mir eingeladen habe, mit dem ich mich unterhalte. Und zwar geht es heute um die Versionsverwaltung. Und mein Gast ist Ralf Kühnbaum-Grashorn. Grüß dich, Ralf.

  2. Ralf

    Ja, hallo David.

  3. Einspieler

    Herzlich willkommen zu Technikwürze, dem Design und Webstandards-Podcast. Für euch am Mikrofon David Maciejewski und Nadja Müller. Das Gespräch.

  4. David

    Sag doch mal kurz den Hörern, wer du bist.

  5. Ralf

    Ja, ich bin, PHP-Entwickler und, beschäftige mich unter anderem mit dem Thema Versionsverwaltung schon seit einiger Zeit, weil Ordnung ist das halbe Leben und, da können diese Tools doch einiges helfen.

  6. David

    Genau. Tools gibt es für alle Betriebssysteme. Das werden wir nachher auch sehen. Grundsätzlich Versionsverwaltung. Was können wir, was, was können wir dem unbedarften User darüber sagen? Also was ist Versionsverwaltung?

  7. Ralf

    Ja, bei der Versionsverwaltung geht es eigentlich um fünf wichtige Aufgaben oder Punkte. Das ist einmal die Protokollierung der Änderung. Ich möchte also wissen und vor allen Dingen nachvollziehen können, was ich da so getrieben hab oder auch wer, wenn man mit mehreren zusammenarbeitet. Die Wiederherstellung von alten, Releases, Zuständen einzelner Dateien oder auch eines kompletten Sets, also einer Website zum Beispiel. Die Archivierung dieser Version, wenn man so will.

    Dann die Koordinierung des gemeinsamen Zugriffs, wenn man im Team arbeitet und, unter anderem die gleichzeitige Entwicklung mehrerer Entwicklungszweige. Also man hat zum Beispiel kundenspezifische Versionen oder 'n Ableger, den man als eigenständige Version weiterpflegen möchte, auch durch Änderungen in, in der eigentlichen Basis.

  8. David

    Ja, also grundsätzlich zur Versionsverwaltung kann ich eigentlich sagen, wenn ich jetzt lokal irgendwas entwickle oder in meine Versionsumgebung und, jemand im anderen Team arbeitet vielleicht an demselben Projekt, vielleicht sogar an derselben Funktion, dann können beide parallel entwickeln und, die Versionsverwaltung hilft uns quasi dann, das Ganze zu managen, sodass der eine nicht die andere, die Änderung der anderen überschreibt, ne.

  9. Ralf

    Genau. Das kann man so sagen, ja.

  10. David

    Ich glaube, ein ganz wichtiger Punkt ist eben auch die Protokollierung der Änderung. Wie findet das Ganze statt oder, oder was für Tools kann ich nutzen? Also ganz grob erst mal zusammengefasst:, wie funktioniert es? Also ich muss mir extra Programme runterladen oder gibt es bereits irgendwelche Programme, die die Versionsverwaltung unterstützen?

  11. Ralf

    Also ich wüsste im Moment kein Betriebssystem, das, Tools zur Versionsverwaltung mitbringt. Wenn dann überhaupt nur Clients, das sind Linux zum Beispiel oder Mac OS- -für das doch etwas betagte und eigentlich durch das heute angesagte Subversion abgelöste CVS, Concurrent Versioning System. Und, ja, also muss man sich erst mal was runterladen. Ich kann nur aus eigener Erfahrung Subversion oder auch kurz SVN, empfehlen. Und, ja, das installiert man.

    Das gibt es für eigentlich alle Betriebssysteme bis hin zur, wie ich gelesen hab, AS400 von IBM. Allerdings bleiben wir mal in unserem Kontext. Es gibt so, es gibt für Windows gibt es einen, hervorragenden Installer, ebenso für Mac OS X, für Unix und Linux-Derivate sowieso. Und eigentlich ist, Subversion erst mal ein Kommandozeilentool.

    Allerdings dadurch, dass zum einen, es sogenannte grafische Wrapper, also Benutzeroberflächen, die sich dieses Kommandozeilentools bedienen gibt und auf der anderen Seite auch schon entsprechende Libraries, auf denen solche Programme aufbauen können, haben wir auch schon jede Menge Integration in Entwicklungsumgebungen, in Webeditoren et cetera. Beispiel Eclipse oder für Dreamweaver gibt es ein, eine Extension, für die verschiedensten Windows-Editoren gibt es Zusätze.

    Und vor allen Dingen auch eine sehr leistungsfähige Integration in den Windows Desktop- -namens Tortoise.

  12. David

    Genau. Sieht übrigens auch sehr gut aus, wenn man das einbindet. Also für diejenigen, die das noch nicht gesehen haben, wenn ich ein Verzeichnis zum Beispiel unter Subversion stelle, also ich hab 'ne Subversion-Kopie auf meinem lokalen Rechner, dann zeigt er anhand eines Status der Farbe oder des Icons sogar, ob das Ding aktuell ist oder ob es eine neue Version auf dem Server gibt oder was genau damit passiert ist, ne.

  13. Ralf

    Ganz genau. Ich se-- kann unterscheiden zwischen lokalen Änderungen, also Änderungen, die ich gemacht hab. Ich sehe also sofort, Holla, an der Datei war ich dran. Oder wenn ich sporadisch ein, ein Update gegen den Server, gegen das gemeinsame Repository mache, also gegen den, den, den, die, die Sammlung, dann, sehe ich auch, dass an anderen Dateien auch Zusätzlich oder eben durch andere Änderungen gemacht wurden.

    Behalt, also sehr schnell bekomme ich den Überblick und kann auch sehr schnell nachforschen, was denn da geändert worden ist mittels, verschiedenster Tools wie, Blame. Da sehe ich, wer hat wann was wo geändert in der Datei. Oder zum Beispiel, wenn ich's genau wissen woll, will, wie hat sich etwas verändert, kann ich zum Beispiel, mich des Diff-Tools bedienen.

    Das zeigt mir dann mitunter auch grafisch an, in welcher Zeile welche Änderung von der alten zur neuen Version oder einer noch älteren zur aktuellen oder Referenz gemacht wurden.

  14. David

    Und das in derselben Datei, und zwar pro Zeile, also-

  15. Ralf

    Pro Zeile.

  16. David

    Genau. Also dass ich sehe, Mensch, oben, da hat der Ralf jetzt gerade was entwickelt und unten entwickle ich 'n bisschen was weiter. So sehe ich genau die Änderungen, die du beispielsweise gemacht hast und könnte eventuell drauf reagieren, ne.

  17. Ralf

    Genau. Und, wir unterscheiden eigentlich bei der Versionsverwaltung zwischen zwei grundsätzlichen Verfahren. Die älteren Tools wie CVS, die hatten so was, das nannte sich pessimistische Verwaltung. Da wurde also, ich lass die Datei, ich habe sie gesperrt auch in dem, in, in meinem Verzeichnis, in meinem Repository, also in dem, in dem Datenbestand.

  18. David

    Das heißt, andere können nicht drauf zugreifen, um Änderungen zu machen.

  19. Ralf

    Nur lesend in dem Moment drauf zugreifen. Ich habe meine Änderung gemacht, hab's zurückgespielt und damit, wurde es auch wieder zur Bearbeitung durch Dritte freigegeben.

  20. David

    Aha.

  21. Ralf

    Das bedeutete immer, gerade wenn man mit mehreren Leuten arbeitet, dass man 'ne gewisse Disziplin halten musste beziehungsweise dass dann händisch nach der ersten Änderung durch A, B die, die eigenen Änderungen, die inzwischen an einer Kopie gemacht wurden, dort einpflegen musste. Sehr aufwendig und m-mitunter sehr kompliziert.

    Subversion, das übrigens auch von den gleichen Entwicklern, die vor ellenlanger Zeit CVS mitentwickelt haben, geschaffen wurde, die benutzen eine andere Metapher, nämlich das optimistische Versionieren. Da mache ich, ziehe ich mir 'ne Kopie aus meinem Repository, ich modifizier sie und wenn ich sie zurückspiele, versucht das Repository selber, also der Server, so nenn ich's jetzt mal erst mal, versucht, diese Dateien oder die Änderungen in, in der Datei zu mischen. Zu übernehmen.

    Das ist natürlich einfach, wenn jetzt, ich oben die erste Zeile, wie du sagtest, geändert habe. Und, du die letzte Zeile. Da gibt's überhaupt kein Problem. Allerdings, wenn sich jetzt die Bereiche überschneiden, dann wird das spätestens dem zweiten angezeigt: „Hier ist noch 'ne Änderung, die musst du berücksichtigen, was machen wir damit?"

  22. David

    Aha.

  23. Ralf

    Und dann kann ich, hab ich auch in dem Moment die Tools oder die Möglichkeiten, das, ganz schnell entsprechend zu modifizieren, zu ändern, meine Änderung zurückzunehmen, die Änderung des Ersten zu überschreiben, wie auch immer.

  24. David

    Rücknahme ist vielleicht 'n kurzes Stichwort noch mal. Du hattest mir im Vorfeld 'ne kleine Liste zugeschickt mit Stichworten und, da habe ich mir noch notiert, die Archivierung der einzelnen Release-Stände, heißt eigentlich folgendes: Wenn ich, wir sind alle Menschen und machen irgendwann mal Fehler und sollte das der Fall sein, könnte ich immer 'ne alte Version auch zurückgreifen.

    Also nicht nur Zeile für Zeile, indem ich, meine Änderung von vorgestern reinbaue, weil du gesagt hast: „Mensch, das kannst du doch, das hast du doch vorgestern viel besser gemacht", sondern auch von ganz alten Ständen, wo ich gesagt hab: „Mensch, letzte Woche, da hat's doch noch funktioniert und ich weiß gar nicht mehr, wie das war."

  25. Ralf

    Ja. Ja, wobei das dann nicht nur für die Einzeldatei entsprechend gemacht wird, sondern wenn ich mir einen bestimmten Release-Stand zurückhole, oder zusätzlich exportiere, dann, bekomme ich alle Dateien des Produkt, des Projektes auf den Stand, der dieser Versionsnummer entspricht- -rückgedreht.

    Also mit anderen Worten:, Website besteht manchmal ja so eine einzelne Seite aus bis zu dre, mindestens drei Dateien, also 'ner Stylesheet, ja eigentlich 'ner HTML-Datei und vielleicht noch 'ner mindestens einer JavaScript-Datei. Und das bedingt sich ja manchmal, weil ich heutzutage mit JavaScript im Dom und auch in den CSS-Strukturen rumhandeln kann. Und wenn das nicht zueinander passt, dann sieht die Seite hinterher einfach nicht aus oder tut nicht das, was ich möchte.

  26. David

    Genau, ja.

  27. Ralf

    Wenn ich, wenn ich jetzt sage, ich brauch meinen Release-Stand so und so von vorgestern wieder, dann, werden mir alle drei Dateien in dem damals zuletzt hoffentlich als gültig und als ansehbar angesehenen Status zurückgeschraubt.

  28. David

    Ich stell mir nur folgendes vor, dass ich jetzt zum Beispiel irgendwelche JavaScript-Bibliotheken wie, Scriptagilis oder jQuery einsetze. Da kommen irgendwann neue Versionen raus, ich update die und da gab's irgendwann mal 'n Plugin für irgend so 'ne JavaScript-Bibliothek, auf irgend 'ner Unterseite, die ich lange Zeit nicht beachte und stelle dann irgendwann fest, dass die neuen Versionen gar nicht mehr funktionieren, also dass diese Funktion der Webseite nicht mehr hergestellt ist.

    Und dann kann ich eben dank der Versionsverwaltung eben auf den alten Stand updaten. Also im Prinzip, das klingt alles sehr vielversprechend und klingt im Moment für die meisten Hörer vielleicht noch, das ist nur was für Programmierer, die 'n bisschen was in PHP machen. Aber, du hast natürlich auch geschrieben und hast natürlich recht, Versionsverwaltung im Designbereich.

    Das heißt, nicht nur für die Webseiten, sondern, HTML, CSS, sondern eben auch für Designdateien und wenn's die Photoshop-Dateien sind, ne?

  29. Ralf

    Ganz genau. Ja, ich kann das wie gesagt aus der eigenen Erfahrung nur empfehlen, grade auch, da man ja häufig, im Designbereich auch schon mal mit, schon mal eher mit, mit, mit Zweiten und Dritten zusammenarbeitet. Man bekommt also die Photoshop-Dateien-, daraus entstehen dann einzelne, ja, wie auch immer, Zutaten für das Design. Und diese ganze Entwicklungsgeschichte, auch Updates des Grafikers dann hinterher, können durch das Repository jederzeit nachvollzogen werden.

    Ins, insbesondere wenn der, der Grafiker zum Beispiel es auch nutzen würde, dann wird das auch plötzlich Dreh- und Angelpunkt-Scheibe. Also nichts mehr mit E-Mail oder, irgendwie FTP hochladen oder so was, sondern es wird durchs, Verzeichnis geschleust.

  30. David

    Ja. Ich meine, ein klassischer Fall gerade bei Design- oder Photoshop-Dateien ist ja, wenn ich als Hauptgrafiker des Projektes, eine Webseite gemacht hab, die liegt jetzt ein bisschen länger auf Halde, ist möglicherweise schon veröffentlicht und dann möchte der Kunde Änderungen haben. Die macht möglicherweise ein Mitarbeiter, dem ich die Datei zur Verfügung stelle, behalte aber meine lokale Kopie.

    Jetzt macht der Mitarbeiter Änderungen und, jetzt ist natürlich auch für das Projekt oder für zukünftige Änderungen wichtig, dass ich seine Änderungen, die er gemacht hat in seiner eigenen Datei, natürlich in meiner Hauptdatei, die ich aufm Server archiviert habe, auch berücksichtigt werden.

    Und ohne Versionsverwaltung muss man sich schon arg doll anstrengen, damit man sich dazu zwingt, wirklich zu sagen: „Jetzt gib mir die neue Datei und ich, überschreib die.“ Also da ist die Versionsverwaltung natürlich weitaus fortschrittlicher.

  31. Ralf

    Und man muss jede Menge kommunizieren, ja.

  32. David

    Ja, das stimmt. Ich hab, du hast als Stichwort noch aufgeschrieben, es lassen sich einfache Varianten, kundenspezifische Versionen anlegen. Jetzt grade in Bezug auf eine Webseite. Wie genau könnte das aussehen?

  33. Ralf

    Ja, ich habe also jetzt, sagen wir mal, 'n Layout oder einen Entwurf fertig, der auch funktional mit und in der Struktur alles das hergibt, was ich brauche. Und, jetzt kommt ja der Kunde an und möchte, mhm, eine Modifikation haben. Das könnte dann, oder eben das Designteam, sagen wir mal, das könnte jetzt Version A sein. Häufig muss man ja dem Kunden auch mehrere Versionen anpreisen, vorstellen und so weiter.

    Und, mithilfe einer, einer Versionsverwaltung wie Subversion ist es ziemlich einfach, diese Versionsstände oder diese Zustände der Arbeit einfach mal auf die Seite zu schaffen und zu sagen, das ist jetzt so ein Zustand, den ich, für weitere Arbeiten oder einfach als Meilenstein, wie auch immer, entsprechend versioniert haben möchte.

  34. David

    Mhm. Das heißt, ich kann eine einzelne Änderung speziell jetzt für das kommende Meeting machen, die vielleicht für die Präsentation von Vorteil sind, die ich aber im Endprodukt möglicherweise nicht brauchen würde.

  35. Ralf

    Ja, wir, wir können da eigentlich auf zwei Metaphern zurückgreifen, ums mal, mit dem realen Leben zu, zu vergleichen. Wir können taggen, das heißt, ich, ich, zeichne diese Version, von der wir jetzt sprechen, entsprechend aus. Sie kriegt also ein Etikett, könnte man grob übertragen sagen, oder noch besser, ich mach mir eine Kopie, nämlich in, einfach in ein anderes Verzeichnis meines, meines Repositorys.

    So, dann habe ich entweder gebrancht, das wär ein Ableger oder eben eine, eine, eine, einen Snapshot, eine Momentaufnahme gemacht. Technisch gesehen ist es eine Kopie. Und mit dieser Kopie kann ich natürlich später unabhängig weiterarbeiten. Unabhängig von dem Hauptstamm, wenn man so will.

  36. David

    Und das Schöne eben durch die Verwaltung, ist, dass ich eine Übersicht habe über die Änderungen, die wirklich gemacht sind oder so, dass ich auch im Nachhinein immer noch feststellen kann, war jetzt die Kopie die eventuell aktuellere oder der Hauptstamm, ne?

  37. Ralf

    Ja, weil ich werde mit jeder Veränderung oder mit jedem Check-in, also wenn ich meine Änderung zurückspiele in das System, werde ich aufgefordert, eine mehr oder weniger ausführliche Notiz zu machen. Und, wenn man sich gerade da verbunden mit mehreren Leuten auch so ein bisschen System einfallen lässt, dann kann das sehr aufschlussreich sein und auf den ersten Blick sieht man sofort, worum es sich handelt, dreht und geht.

  38. David

    Ja, aber ich meine auch für Einzelentwickler lohnt es sich natürlich, Subversion oder die Versionsverwaltung im Allgemeinen einzusetzen, denn was, viele aus meiner Erfahrung heraus nicht machen, sind Backups ihrer eigenen Dateien. Sie speichern sie aufm lokalen Rechner und packen sie höchstens mal auf CD, aber mit der Versionsverwaltung habe ich doch automatisch gleich ein topaktuelles, Archiv.

  39. Ralf

    Ja, also ich persönlich, selbst wenn ich jetzt nur mal was ausprobiere- Ich mach das immer in einem versionierten Verzeichnis.

  40. David

    Aha.

  41. Ralf

    Und, wenn ich dann aufm Stand bin, wo ich sage: „Okay, jetzt hör ich auf“, oder, „Das war's“, oder, „Holla, es hat geklappt“, dann check in und ich hab's konserviert. Oder bei grimmigen Sachen, wo ich merke, ah, da führen mehrere Wege nach Rom, dann, bevor ich dann eine Variante ausprobiere oder in die Richtung abdrifte, mal eben ein Check in und ich hab einen Zwischenstand. Das verbunden mit einer aussagekräftigen Notiz, dann weiß man selber, was man gemacht hat.

  42. David

    Wie sieht denn das jetzt im Einzelfall möglicherweise aus? Also für den normalen Macintosh-User, wir werden es vielleicht gleich mal für einen Windows-User durchspielen. Was muss ein Webdesigner, Webentwickler für seine Webseite tun, damit er jetzt Subversion nutzen kann? Braucht er einen eigenen Server, der Subversion extra macht oder wie verhält sich das Ganze?

  43. Ralf

    Ja, erst mal, grundsätzlich die Idee ist auf, auf allen Plattformen gleich. Die unterscheiden sich also nur durch die, durch die unterschiedlichen Binaries für die Plattform oder für die Zutaten, wie ich es vorhin sagte, Tor, TorAs als Explorer-Integration und in der, auf der Windows-Plattform. Der Mac hat so was Ähnliches oder in, in die verschiedenen IDEs. Aber das Entscheidende ist eigentlich, ob ich Single User oder Multi User spiele.

    Single User reicht es, wenn ich, mir ein Verzeichnis anlege, in dem mein Repository, also der Datenstamm hinterher lebt. Wenn man's ganz sicher machen will, macht man das auf einer zweiten Festplatte. Und, dort lege ich mit einem einfachen Kommandozeilen-,, Befehl lege ich eine Repository an. So, das ist jetzt so meine Sparbüchse, in die ich alles reinstopfe und später eben auch wieder raussuchen kann.

    Der nächste Schritt ist, dass ich ein zum Beispiel bestehendes, Verzeichnis, eine Website, ein Projekt, wie auch immer, dort hinein importiere, um es im nächsten Augenblick wieder herauszuholen, also ein Checkout zu machen. Damit habe ich dann, also mit dem Import habe ich quasi meine Version eins erzeugt. Und mit dem Checkout und der darauffolgenden Weiterarbeit versioniere ich dann immer entsprechend höher.

    Also mein, meine erste Änderung zum Beispiel, ich habe immer so ein paar für, für die verschiedensten,, Fälle habe ich so ein paar Lehrprojekte. Das sind einfach Strukturen von Verzeichnissen und so ein paar Dateien, die man immer braucht, also Index, HTML und so weiter. Die sind dann mehr oder weniger leer. Oder eben neutral. Und, ich check das ein in mein neues Repository für dieses Projekt und hol's mir dann in mein Arbeitsverzeichnis raus.

    Das kann zum Beispiel ein Wurzelverzeichnis eines Webservers sein-

  44. David

    Aha.

  45. Ralf

    -, eines lokal Laufenden, wie zum Beispiel Lamp oder was Xampp und was es da alles gibt. Und dann kann ich schon loslegen. So, irgendwann habe ich jetzt einen Stand, wo ich sage, das ist jetzt erst mal meine Version null null eins. Also ideell gedacht, dann mache ich einen Check-in und schon ist meine Version eins entstanden.

  46. David

    Hat den Vorteil natürlich auch, viele Webentwickler sprießen jetzt raus und bringen Kreationen in Form von Plugins für WordPress oder was es auch immer für Systeme sind. Und dafür würde sich natürlich auch anbieten, ohne dass sie jetzt überlegen, welche Version hatte ich das nächste Mal. Okay, ich nenne die jetzt null Punkt fünf, dann übernimmt das jetzt die Versionsverwaltung, die vielleicht eh im Hintergrund läuft. Und ich habe eine viel bessere Kontrolle dann darüber, ne.

  47. Ralf

    Ja, oder ich, habe jetzt halt meine Website, meinen WordPress, Blog und, ich liebäugele mit dem und dem Plugin. Ich installiere das, mache einen Check-in, habe also das Ganze versioniert und kann im nächsten Moment auf die wieder, also die, auf die Version vor der Installation des Plugins natürlich wieder zurückgreifen. Sollte das Ganze nicht so in die richtige Richtung gehen.

    Oder ich habe dann zumindest eine Version, die hat das, die Standardinstallation des Plugins, bevor ich mich dran mache, in weiteren Versionen das Ganze wie auch immer anzupassen. Im Look and Feel oder auch funktional.

  48. David

    Das heißt, auf meinem Mac beziehungsweise auf meinem PC sieht es denn effektiverweise so aus, dass ich vielleicht im ersten Schritt ein eigenes Verzeichnis oder vielleicht, eine Festplatte, noch extra habe, wo ich die Versionsverwaltung drauf laufen lasse, dort die Versionierung stattfindet und ich könnte jetzt zum Beispiel lokal entwickeln und mache dann von der Versionsverwaltung einen Checkout auf einen Live-Server, wo das Ganze dann stattfindet, ne?

  49. Ralf

    Auch das ist möglich, dass man sagt, also ich habe jetzt hier in meinem, auf meinem, meiner lokalen Entwicklungsmaschine inklusive Webserver und PHP-Umgebung und was ich alles brauche. Da läuft alles und dann könnte ich das zum Beispiel, auf der Kommandozeile, das setzt natürlich entsprechende Zugriffsrechte auf dem, auf dem Live-Server, voraus, könnte ich das Ganze auschecken in, in der entsprechenden Version und schon hätte ich ein entsprechendes Live-System.

  50. David

    Würdest du sagen, dass eine extra aufgesetzte Maschine, also ein eigener Server, ob das jetzt zu Hause oder im Rechenzentrum ist und/oder mehr Sinn machen würde? Oder ab welchem Personenkreis würde sich das lohnen?

  51. Ralf

    Also, da-dazu erst mal grundsätzlich die beiden Szenarien: Einzelentwickler, der auf Nummer sicher gehen will, der seine eigene Arbeit ja quasi, protokollieren möchte, da reicht völlig die, die lokale Lösung nach Möglichkeit auf einer zweiten Festplatte- -weil dann auch das Backup und das, das Restore einfacher fällt, völlig aus.

    In dem Moment, wo ich A, an mein Repository über, Firewall-freundliche Protokolle herankommen möchte, wäre also eine Serverinstallation denkbar und da die doch mitunter, je nachdem, wie man es realisiert, sehr ressourcenintensiv sein kann, wäre natürlich ein zweiter Rechner nicht schlecht.

  52. David

    Das heißt, für einen Produktivserver, wo Webseiten drauf liegen lassen, A: Könnte ich den nutzen als Subversion, als, als Versionsverwaltung und B: Würde sich das lohnen oder rätst du eher davon ab?

  53. Ralf

    Da würde ich von ablohnen, ab, ab, -

  54. David

    Abraten, ja.

  55. Ralf

    Abraten, weil, draußen im Regelfall, das wir, was wir Webserver nennen, das, sollte eigentlich nur zum, zum Betrieb der Website sein. Außerdem würden ja sämtliche Entwicklungsstände da liegen. Das, das würde ich nicht als sinnvoll erachten. Das zweite Szenario ist, wenn ich mit mehreren Leuten zusammenarbeite, dann müssten die da ja irgendwie rankommen. Dann, dann ist die große Frage: Lasse ich die durch meine Firewall? Reicht überhaupt mein ADSL-Zugang aus?

    Wie häufig wird zugegriffen et cetera? Wie viele Leute sind das? Und dann ist natürlich eine eigene Kiste und eine echte Serverinstallation mit den verschiedenen Protokollen, die Subversion anbietet, unabdingbar. Inzwischen gibt es allerdings auch schon Hoster für Subversion. Da kann man sich entweder, wenn es sich um freies Projekt handelt oder eher so im, im, im, im Amateur- oder im ambitionierten Homebereichlichkei, kann man entsprechenden Subversion Space umsonst bekommen.

    Auch mit mehreren Leuten, den Usern und so weiter oder eben ganz professionelle Installationen. Der Server, bietet dann im Regelfall auch noch eine Weboberfläche für die Verwaltung und für die Pflege beziehungsweise Einsicht oder Redaktion. Dieses Repositorys über, über den Webbrowser an

  56. David

    Hast du ein paar Links diesbezüglich für uns, die wir dann in den Blogbeitrag schreiben können?

  57. Ralf

    Ja, eigentlich, muss ich hier nur einen Link kundtun. Das wäre subversion.tigris.org. Das ist der Hauptserver von Collabnet. Collabnet ist eine ähnliche, Geschichte wie Sourceforge, also ein, einer Heimat für Open-Source-Projekte. Und, von dort aus, es gibt dort eine, in, auf der Projektseite von Subversion gibt es eine, eine, also wirklich, umfassende und auch sehr gut gepflegte Linkliste und vor allen Dingen ganz oben mit der wichtigste Link, ein sehr gutes Onlinehandbuch.

    Und nicht etwa eine Sammlung von Informationen, sondern wirklich ein redigiertes und sehr schnell an die neuesten Versionen angepasstes Handbuch, das es auch in Deutsch gibt.

  58. David

    Sehr schön. Das war nämlich meine nächste Frage gerade.

  59. Ralf

    Ja. Übrigens, Subversion ist auch auf der Kommandozeile lokalisiert. Sprich, die Hilfetexte kommen dann in der entsprechenden Sprache.

  60. David

    Ja. Als, Subversion an sich, so auch der wirkliche Name dieser Versionsverwaltung wird ja auch gehandelt als Nachfolger von dem CVS. Du hast es am Anfang schon ein bisschen angesprochen. Vielleicht so als, mehr oder weniger Laie in, in diesen Geschichten, wo ich nur ab und zu mal mit Versionsverwaltung arbeite in einigen Projekten, weiß ich, CVS war damals, heute ist Subversion. Lässt sich das so einfach sagen oder gibt es noch eine Zukunft für CVS?

    Oder wo bestehen denn die großen Unterschiede dieser zwei Versionsverwaltungsprotokolle?

  61. Ralf

    Also Anhänger auch für CVS werden sich immer noch finden lassen, obwohl, Subversion es den Umsteigern sehr einfach macht. Es gibt so 'n sogenannten Kompatibilitätsmodus, also die Befehle auf der Kommandozeile sind häufig identisch. Beziehungsweise es gibt die alten CVS-,, Synonyme. Aber ansonsten kann man das eigentlich sagen. Ja, es ist so. Also sämtliche großen Open-Source-Projekte haben umgestellt auf Subversion. Dazu gehört unter anderem der gesamte, Bestand von apache.org.

    Und wer, wer apache.org kennt, weiß, dass das ja nicht nur der Webserver mit einigen hunderttausend, Zeilen Code und was weiß ich wie viel Dateien ist, sondern eben auch jede Menge Projekte drumherum. Bis hin zu Java-Server, was weiß ich.

  62. David

    Es sind ja auch die aktuellen Blogsysteme, die, die jetzt, viele Designer, in ihren Blogs verwenden, ob es jetzt WordPress ist, oder was auch immer. Oder selbst die Plugins, wo ich jetzt mit, entwickle, PodPress für WordPress oder auch Gerd von Arns Loudblog, die gibt es auch alle als Subversion. Das heißt, ich kann mir dort vom Entwickler die aktuellste Version runterladen und eventuell dann vielleicht, mal produktiv einsetzen, um zu gucken, wo geht die Reise denn in Zukunft hin.

  63. Ralf

    Ja. Also C-CVS, wird langsam aber sicher gerade durch Subversion, abgelöst und das kommt auch nicht von ungefähr. Denn wie ich's vorhin schon andeutete, die Köpfe hinter Subversion haben auch schon, eine tragende Rolle bei der CVS-Entwicklung vor zum Teil fünfzehn Jahren gespielt. Allen voran ein Mann namens Karl Vogel. Und, die kannten natürlich die Schwächen, insbesondere einfach die Designschwächen dieses Systems am besten und haben mit Subversion eben den Anlauf gemacht, die auszumerzen.

    Und das ist ihnen im Rahmen dieser Aufgabenstellung auch mehr als gelungen.

  64. David

    Als Punkt hast du mir noch aufgeschrieben, Skalierbarkeit und Verlässlichkeit.

  65. Ralf

    Ja. Also, Subversion ist skalierbar. Das, heißt also, ich kann zum Beispiel anfangen als Einzelkämpfer auf meiner zweiten Festplatte mit meinem lokalen Repository. Ich kann das später einbringen, auf einem Server, ohne dass ich es alles irgendwie exportieren oder sonst wie müsste oder meine Versionierung verlieren würde. Dieser, dieser Server ist in sich auch skalierbar. Die Königslösung läuft halt unter einem Apache zwei null.

  66. David

    Aha.

  67. Ralf

    Zumal, zumal Komponenten aus der Apache, also dem Apache, Foundation Framework verwendet werden für diesen Server. Und, dazwischen gibt es dann eben noch ein paar kleinere Lösungen. Das Subversion-Projekt bringt selber einen sogenannten, einen eigenen Server mit, mit einem eigenen Protokoll. Und daher unterscheiden sich auch die URLs beim Aufruf gegen ein solches Repository oder Server.

    Wir kennen eigentlich alle URIs von File über SVN, also dem eigenen Server-Protokoll, bis hin zu HTTP und HTTPS.

  68. David

    Aha.

  69. Ralf

    Also insbesondere wenn man dann auch auf, Sicherheit Wert legen muss, kann man entweder SVN über SSH wählen- -oder eben HTTPS mit einem entsprechenden serverseitigen Zertifikat. Das meine ich mit Skalierbarkeit und wie man dann diese Maschine ausstattet mit RAID-Systemen, mit, entsprechend Speicher und die Webfrontends für das, für das, für das Browsen im Repository mit, was weiß ich alles auf Board, mit Accelerators für PHP oder Python, Memory-Caches.

    Das bleibt dann der eigenen Fantasie überlassen. Und das Ganze kann man eben auch über mehrere Maschinen dann streuen, entsprechend skalieren wie das über Load Balancing et cetera pp. für wirklich ganz, ganz, ganz große Installationen.

  70. David

    Ja, deine Beispiele sind auch wunderbar, weil es ist wirklich was für den einzeln kleinen Webentwickler dabei, der mal eine kleine Webseite macht und 'ne, Versionsverwaltung, drüber haben will, um das ein bisschen unter Kontrolle zu haben, bis zu, kleinen Werbeagenturen, mittelständischen Unternehmen oder sogar 'ne, 'nen Großkonzern, der jetzt vielleicht ein, zwei Server dafür einsetzt, um wirklich Versionsverwaltung über ihre Software zu stülpen.

    Also es ist für jeden wirklich was dabei, ohne Kompromisse oder mit Kompromisse, Fragezeichen?

  71. Ralf

    Ja, Kompromisse, - Eigentlich für die, für die zugrunde liegende Aufgabenstellung nicht. Das ist natürlich noch gerade jetzt, im Zeitalter der, der, der webbasierten Kollaboration. Ich, ich hab's jetzt bewusst, Deutsch gesprochen, dass es da noch andere Ansätze oder auch Philosophien gibt, das sei einfach mal dahingestellt.

    Also es gibt Leute, die brauchen dann unbedingt verteilte Systeme, um auch i-auf ihrem Notebook nicht per Check-in, Check-out, sondern ganz dynamisch auf dem Stand der Dinge zu sein. Da gibt es andere Systeme, die spielen aber, eigentlich eine untergeordnete Rolle und sind nur was für Liebhaber, Freaks oder für Gruppen, die auf diese Art und Weise unterstützt,, entsprechend entwickeln wollen. Subversion ist im Moment der absolute Mainstream.

    Es zeichnet sich auch im Moment nichts ab, was irgendwie in die Richtung gehen würde. Und es ist auf jeden Fall, es ist zumal es gut dokumentiert, ist eine wunderbare Benutzerunterstützung gegeben, ist es, sollte es auf jeden Fall der erste Schritt sein, sich mit diesem Thema auseinanderzusetzen. Es, es gibt darüber hinaus eine ganze Reihe kommerzieller Tools und, da fallen auch immer wieder Namen wie Perforce oder BitKeeper.

    Das sind Systeme, die eigentlich in der klassischen Softwareentwicklung, gerade bei großen, Projekten wie dem Linux-Kernel oder so, erst ihre wirklichen Stärken ausspielen können. Aber selbst da kann Subversion mitreden, weil die Tools drumherum, die offenen Schnittstellen, die APIs machen auch das Anflanschen von entsprechenden Werkzeugen möglich, bis hin zu Continuous,, Testing, also Unit Testing, servergetrieben und so weiter und so fort.

  72. David

    Ja, was natürlich dann wieder, der nächste Schritt in der, in der Programmierung wäre, in diesem Schritt zu gehen. Für den Normaluser, wenn der sich jetzt, also für den Normalwebentwickler, wenn der sich jetzt ein kleines Verzeichnis anlegen möchte, meinst du, das ist ein bisschen schwieriger, den ersten Schritt zu machen und das anzulegen, oder ist es anhand der Beispiele, die ja online gut verfügbar sind, recht einfach?

  73. Ralf

    Es gibt in dem, in dem SVN-Handbuch, gibt es 'ne Step-by-Step-, Wie-geht's-los-Anleitung und das sind eigentlich drei Punkte: Wir laden's runter, wir packen's aus und, suchen uns ein Verzeichnis auf unserer Maschine, das wir zum, zum Stammverzeichnis machen möchten- -für unsere Repository, setzen den Befehl entsprechend ab, nehmen irgendetwas her, was wir versionieren wollen, importieren es, stecken es aus und können dann versioniert weiterarbeiten. Mit Versionsunterstützung weiterarbeiten.

  74. David

    Das, was natürlich dann, sofern man das einmal installiert hat, ganz einfach ist, sofern man, die jeweilige Software installiert hat, ist eben das Arbeiten mit dem Subversion. Sei es jetzt, dass man ein extra Programm hat für Windows, was integriert ist, im, im Windows Explorer oder unter Macintosh im Finder, dass man mit Rechtsmausklick, Informationen darüber anzeigen lassen kann. Ist das File aktuell oder welche Version habe ich? Check out und Check in, ne.

  75. Ralf

    Ja, wie gesagt, darüber, darüber hinaus gibt es eine ganze Menge von GUIs, plattformunabhängig oder auch speziell für die einzelnen Plattformen. Da, da findet eigentlich jeder etwas. Ansonsten Integration auch hinein in die Editoren und integrierten Entwicklungsumgebungen. Also hinterher das zu bedienen, sollte nicht die Schwierigkeit sein. Viel wichtiger ist, dass man sich, gerade im Subversion-Handbuch mal die Grundlagen zum Arbeiten mit versionierten Datenbeständen anschaut. Und-

  76. David

    Dass man einmal das Thema an sich versteht, warum das Ganze, ne.

  77. Ralf

    Ganz genau. Und zum anderen keine Angst vor der Kommandozeile, wenn man da die drei, vier Befehle, die man kennen muss, einfach mal benutzt hat, weiß man, wie das Ganze auch von der Maschinenseite her funktioniert. Ansonsten, Tortoise ist genauso schnell installiert, gerade für den Windows-Benutzer. Ich lade, ich lade mir den Installer runter. Der guckt nach, ob, ob, ob Subversion schon installiert ist, sonst würde er das auch noch nachinstallieren.

    Zumindest die Client-Version, die Client-Bibliotheken. Und schon kann's losgehen. Und, wenn man an, zu diesem Zeitpunkt noch kein eigenes Repository aufgesetzt haben sollte, kann man das natürlich erst mal gegen verschiedene öffentliche ausprobieren. Gerade ob der Client funktioniert.

  78. David

    Also die Hürde zu einem eigenen Subversion ist wirklich nicht lang und ich glaube, Überzeugungsarbeit großartig müssen wir nicht leisten, wenn wir denn sagen, dass gerade, also wenn man mit zwei Leuten mindestens im Team arbeitet, so würde ich sagen, ist es Pflicht, mit Versionsverwaltung zu arbeiten.

    Aber auch, und das haben wir eben erläutert in diesem Podcast, wenn man das alleine arbeitet, dass man auch dort mehr Kontrolle hat und, wirklich eine Versionsverwaltung mal einen auf die Finger schauen lässt, was man da denn täglich tut in seiner Arbeit, ne.

  79. Ralf

    Ja, man könnte natürlich auch aus dem Repository wieder heraus Daten gewinnen. Zum Beispiel: Wie häufig habe ich Änderungen gemacht? Wie lange waren die Abstände zwischen den Änderungen? Daraus lassen sich natürlich auch Metriken ableiten. Wie effizient bin ich oder wie wichtig ist dieses Projekt? All das eben durch entsprechende Analyse der, der vorhandenen Daten.

  80. David

    Ja, das heißt, unter Umständen könnte ich mir extra Tools sparen oder vielleicht, einschränken, die die Zeit mitloggen. Also dass ich jetzt nachgucken muss, wie lange habe ich für welches Projekt wie lange gearbeitet und was steckt wirklich effektiv da drin, ne.

  81. Ralf

    Ja, das kann natürlich nur eine grobe Abschätzung sein. Es würde nämlich voraussetzen, dass du, jedes Mal, bevor du, zur Toilette oder Kaffeetrinken oder in die Mittagspause gehst- -, entsprechend auch mal schnell einen Check-in machst. Ob der dann sinnvoll ist.

  82. David

    Das wäre dann für die ganzen-

  83. Ralf

    Es hat ihn bestellt. Es hat ihn bestellt.

  84. David

    Ich stelle mir vielleicht den Kommentar vor: „Musste zur Toilette, deswegen dieser Checkout."

  85. Ralf

    Genau. Check-in, bitte.

  86. David

    Check-in.

  87. Ralf

    Genau. Ja, das, das, wäre es dann nicht so.

  88. David

    Legst du deine sämtlichen Grafikdateien und, Webprojekte, ab in ein Subversion-System? Machst du das, bedingungslos oder gibt es auch so ein, zwei Sachen, wo du sagst: „Okay, dafür ist das jetzt nicht notwendig"? Ich meine, du hattest am Anfang mal gesagt, du hast, machst es selbst für Tests. Also du bist wirklich konsequent in der Hinsicht, ne?

  89. Ralf

    Ich, ich bin konsequent in dem Fall, weil, ich weiß selber, wie schwer ich mich tue, Ordnung zu halten. Und, wenn man so will, auf meiner Festplatte beziehungsweise meinem Desktop ist also das der Subversion-Zweig so ungefähr die, das einzige, ständig Vorhandene und Auffindbare. Und von daher fällt es dann einfach.

    Das Ganze, also ich habe, ich habe einfach ein paar Projekte oder, oder wenn man so will, Repositories, in denen ich treiben kann oder in die ich einfach reinmülle, aber ich habe sie dann unter Kontrolle. Ich weiß, wann ich das letzte Mal was dran getan habe. Warum? Weil ich's im Regelfall reinschreibe. Und ansonsten kann ich mir mithilfe der technischen Tools wie Div und so weiter auch schnell einen Überblick verschaffen.

    Meine Grafikdateien, lege ich da an und in dem Moment auch, wo ich etwas zugeliefert bekomme von außen, von Grafikern oder vom Kunden, das kommt alles sofort entsprechend in das, in die Versionsverwaltung.

  90. David

    Ja. Stichwort Effizienz und Workflow. Die Frage: Ist es, die Nutzung von Subversion, ein Mehraufwand, der sich lohnt wegen der Sicherheit? Oder, fließt das so effektiv, in meinen Workflow ein, dass ich sagen kann, ich spare sogar Zeit damit?

  91. Ralf

    Also ich empfinde es nicht als Mehraufwand. Sondern, wenn ich also alle meine Dateien, die ich über die Zeit irgendwo auf dem Desktop oder so gesammelt hätte oder, wenn ich die erst wegpacken müsste, sauber noch mal nachbenennen und aufgrund der fehlenden Möglichkeiten, die irgendwo zu, mit Notizen zu versehen- -das dann irgendwo extern machen müsste, das wäre ein wesentlich größerer Aufwand.

    Hier, mache ich einen Check-in, wie auch immer, über eine grafische Benutzeroberfläche, über die Kommandozeile, mache meine Notizen dazu, kann Querverweise oder auch Links sogar da reinschreiben, die mir insbesondere dann in der Webbrowser-Oberfläche zugutekommen und, bin bei der Sache. Und wenn ich's noch weiter treiben möchte, dafür gibt es dann ja inzwischen auch so integrierte, Umgebungen wie zum Beispiel Trac.

    Trac basiert auf einem Subversion-Repository und bietet mir drumherum all die administrativen Tools, die ich brauche, um ein Projekt zu führen. Also Zieldefinition, dann Meilensteindefinition, eine Historie, eine Zeitleiste, ein Ticketing-System, wo ich unter anderem mir meine To-dos reinschreiben können oder Fehlerreports et cetera- -auf die ich dann sogar bis runter auf den Quellcode oder die Webseite, HTML-Seite entsprechend verweisen kann.

    Das Ganze browsergestützt und wie gesagt, das, wäre dann die, die in Sachen Workflow quasi der nächste Schritt. Aber ansonsten, die einzige Disziplin besteht darin, in dem Moment, wo ich sage, ich habe jetzt hier etwas, das zumindest testwürdig oder, oder auch weitergegeben werden kann, einen Check-in machen. Und das sind wenige, wenige Tastaturanschläge oder ein bis zwei Mausklicks.

  92. David

    Ja, also du möchtest es auf keinen Fall mehr missen?

  93. Ralf

    Auf keinen Fall.

  94. David

    Dann haben wir noch ein schönes Stichwort, Schlusswort gefunden, für diese Ausgabe. Ralf, du lebst in Hannover, bist selbstständig? Was bietest du denn deinen Kunden an?

  95. Ralf

    Ich biete ihnen, Consulting an, Systemintegration, häufig eben auch webbasiert. Und ansonsten benutze ich PHP als, ja, wirklich als Programmiersprache, teilweise sogar auf Systemebene für administrative Tasks.

  96. David

    Ja. Wo erreichen dich, Interessenten? Auf welcher Webseite ist das?

  97. Ralf

    www.x-systeme.de.

  98. David

    Okay, Ralf. Dann danke ich, dass du in der Sendung warst. Ich fand's super spannend, gerade das Thema Versionsverwaltung. Das hatten wir bisher in Technikwürze noch gar nicht. Und ich denke, das ist auch für einige noch ein unbekanntes Terrain, was wir beide – und ich denke, da sind wir uns einig –, jedem absolut empfehlen sollten, ne.

  99. Ralf

    Ja. Danke dir auch, David, dass ich so gemein sprechen durfte und, es hat wirklich Spaß gemacht.

  100. David

    Super. Dann sage ich, noch frohes Schaffen. Bis dahin, Ralf.

  101. Ralf

    Ja, danke. Tschüss.

  102. David

    Das Hörertelefon: null fünf elf, einundzwanzig, siebenundzwanzig, dreihundert. Schweizer und Österreicher wählen bitte die deutsche Landesvorwahl null null vier neun.

    Schlagzeilen.

  103. Ralf

    Lektüreempfehlungen. In dieser Woche könnt ihr wieder viel über Design, Usability und Uscha-- Entscheidungen erfahren. Seit einigen Tagen ist das neueste Betriebssystem aus dem Hause Microsoft erhältlich. Doch welche Neuerung bringt Windows Vista mit sich? Und wie schnell sollte man jetzt umsteigen? Webworker Daily nennt uns jeweils zehn gute Gründe, das System sofort zu aktualisieren beziehungsweise damit noch zu warten.

  104. Einspieler

    Über Entscheidungen und die Arbeit mit Kunden berichtet Susan Marnet. Allen Unsicheren gibt sie den Tipp, auch mal Nein zu sagen. Nach einigen Beiträgen zu den kommenden Trends im Jahr 2007 schreibt doch D. Keith Robinson seine Gedanken nieder. In seinem Artikel „The Words of Design 2007" nennt er einige Dinge, die er in diesem Jahr wohl großen Einfluss auf unsere Arbeit im Web haben werden. Auch das Logo-Design wird in diesem Jahr gewissen Mustern folgen.

    Welche das sind, hat Logo Orange aufgeschrieben. Wer eine Website gestaltet, befasst sich nicht nur mit Designfragen, sondern auch mit dem Nutzer, der eine Website besuchen soll. Welches Verhalten solcher Nutzer haben kann, wissen wir von Jakob Nielsen. Eine neue Eye-Tracking-Studie, die sich mit dem Nutzerverhalten, den Unterschieden zwischen Browsen und Suchen auf einer Website und verschiedenen Website-Arten beschäftigt, kommt von Saf Shrestha und Kelsey Lench.

    Eine ganz andere Sicht auf den Nutzer bietet Hugh MacLeod mit seinem End-User-Manifesto seines Lesers Danny. Und damit ihr bei der nächsten Website nicht ratlos vorm Bildschirm sitzt, haben Mark Boulton, Patrick Hunlock und Bharath Kumar einige Tipps auf Lager.

  105. David

    Das war's für den Technikwürze-Podcast Nummer achtundfünfzig. Wir hören uns wieder nächste Woche Montag, diesmal pünktlich, mit Carmen Hillary. „Watching You Dance" will ich euch entlassen in die Woche. Viel Spaß.

  106. Einspieler

    Chase you for miles, but you don't see, I am the girl you always ignored. You have got a smile that captures me, drawing me in and now I want more. And now it seems that you have all these hidden feelings for me, but you're a fool to not let them show. I'm watching you. Everybody wants to be with you. I'm moving so close you don't even know. Now I'm watching you dance for me tonight. I'm watching you seep into my mind.

    'Cause being all alone could never meet all the needs you feel when you walk this way. I may be just a moment in your day, but I'm the kind of girl who likes it her way. You won't be the one to make me cry. I'm the one who holds the keys if you try. You'll never think of anybody else. Like a hand that feeds, I will be your guide. And now I'm watching you dance for me tonight. I'm watching you seep into my mind. So dance for me tonight. I'm watching you feel sunlight. Oh.

    'Cause I know that I will be the one you can't deny. I will be the one to make you cry. Now I'm watching you dance for me tonight. I'm watching you seep into my mind. And now I'm watching you dance for me tonight. I'm watching you seep in my mind, oh. 'Cause I'ma be the one to watch you. I'll be the one to make you cry. Da-dam-di-da-di-da-da. And now it seems that you have found. It seems that you have. Oh. Da-dam-di-da-di-da. And now I'm watching. And now I'm watching you.

    And now I'm watching you.

Ralf Kühnbaum-Grashorn 1 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

News

Lektüreempfehlungen

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

  • Seit einigen Tagen ist das neueste Betriebssystem aus dem Hause Microsoft erhältlich. Doch welche Neuerungen bringt Windows Vista mit sich? Und wie schnell sollte man jetzt umsteigen? Web Worker Daily nennt uns jeweils 10 gute Gründe, das System sofort zu aktualisieren bzw. damit noch zu warten: 10 Reasons for the Windows Web Worker to Upgrade to Vista Or Not 1 .
  • Über Entscheidungen und die Arbeit mit Kunden berichtet Susan Mernit. Allen Unsicheren gibt sie den Tipp, auch mal Nein zu sagen: Adventures in product development: The No Patrol 1
  • Nach einigen Beiträgen zu den kommenden Trends im Jahre 2007 schreibt auch D. Keith Robinson seine Gedanken nieder: In seinem Artikel The Words of Design: 2007 1 nennt er einige Dinge, die in diesem Jahr wohl einen großen Einfluss auf unsere Arbeit im Web haben werden. Auch das Logodesign wird in diesem Jahr gewissen Mustern folgen. Welche das sind hat Logo Orange aufgeschrieben: 11 trends that will define logo design in 2007 1
  • Wer eine Website gestaltet, befasst sich nicht nur mit Designfragen, sondern auch mit dem Nutzer, der die Website besuchen soll. Welches Verhalten solch ein Nutzer haben kann, wissen wir von Jakob Nielsen. Eine neue Eye-Tracking-Studie, die sich mit dem Nutzerverhalten, den Unterschieden zwischen Browsen und Suchen auf einer Website und verschiedenen Websitearten beschäftigt, kommt von Sav Shrestha und Kelsi Lenz: Eye Gaze Patterns while Searching vs. Browsing a Website 1 .
    Eine ganz andere Sicht auf den Nutzer bietet Hugh MacLeod mit dem End-User Manifesto 1 seines Bloglesers Danny.
  • Und damit ihr bei der nächsten Website nicht ratlos vorm Bildschirm sitzt, haben Mark Boulton, Patrick Hunlock und Bharath Kumar einige Tipps auf Lager:
  1. Five Simple Steps to designing with colour part 3: Colour combinations 1
  2. If Only Id Known! (Tips for a new website)If Only Id Known! (Tips for a new website) 1 )
  3. Design a Web 2.0 tab with Photoshop 1

Erwähnungen 4

Kommentare 8

  • 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.

  • 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
    • 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

    • 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.

  • 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.

  • 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!

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

    Gruß
    Jan

Weitere 1 Kommentar anzeigen

Kommentar hinterlassen

Mit dem Absenden stimmst du zu, dass deine eingegebenen Daten gespeichert und als Kommentar veröffentlicht werden dürfen (weitere Infos in der Datenschutzerklärung). Dein Beitrag spiegelt deine persönliche Meinung wider – bitte behandle andere respektvoll und halte dich an geltendes Recht. Rechtswidrige Inhalte behalten wir uns vor zu entfernen.