Als Entwickler ist es absolut notwendig verschiedene Versionen seines Codes vorliegen zu haben. Subversion macht genau dies. Eigentlich als Versionsverwaltung für mehrere Verwalter ersonnen, ist es allerdings auch bei mir nicht wegzudenken, wenn ich solo an bestimmten Projekten arbeite.
Eine grossartige Einrichtung ist auf einem Apple nicht notwendig. Bei meinem MacBook mit Snow Leopard ist SVN in einer relativ aktuellen Version 1.62 vorhanden (aktuellste Version wäre z.Zt.: 1.65). Bei dem normalen Leopard OSX 10.5 war noch 1.44 installiert. Für mich haben sich allerdings in meinem Benutzerverhalten noch keine prägnanten Verbesserungen oder zusätzlichen Features gezeigt. Mit ist allerdings unter Snow Leopard aufgefallen, dass ab jetzt beim Commit oder Import noch eine Message (-m 'meine Nachricht') erforderlich ist. Das finde ich allerdings sehr nützlich, da viele Entwickler dies oft vergessen. Diese Kurzanleitung sollte allerdings mit allen halbwegs aktuellen Versionen zu betreiben sein. Nun genug gequatscht - auf zum Terminal.
Um die Dateistruktur zu verstehen können wir uns SVN als Büroarchiv im Keller unseren ganzen alten archivierten Akten vorstellen. Wer allerdings schon mal im Job ins Archiv geschaut hat wird auch dort eine gewisse Weile brauchen um ein archiviertes Dokument zu finden. Meist wird hier noch ein kundiger Mensch hinzugezogen der uns mit viel Glück das Archivsystem erklären kann, welches ja von Company zu Company anscheinend grundsätzlich anders sein muss - aus Prinzip halt ![]()
Zum Glück müssen wir aber in Zukunft nicht in den Keller und werden dank Subversion ein standardisiertes Archiv vorliegen haben.
Unser Archiv unter Mac OSX nennt sich Repository (engl. für Ablage oder auch Lager). Wir sollten uns jetzt überlegen ob wir alleine das Lager benutzen wollen oder auch anderen Usern zur Verfügung stellen wollen. Genau wie es im Keller Archivräume mit eigenen Schlüsseln für einzelne Abteilungen oder Personen (naja, das habe ich noch nicht gesehn), können wir auf unserem Mac auch mehrere Archive anlegen. Dabei wird allerdings jedesmal quasi ein neuer Raum mit Tür, Fenster(?), Raumschild und dem üblichen Quatsch erstellt. Das hat aber jetzt nichts mit den archivierten Projekten zu tun. In jedem Raum lassen sich natürlich beliebig viele Aktenschränke, also für jedes Projekt eines, hinstellen. Unter dem Mac können wir z.B. anlegen:
Ich lege ein geshartes Repository für meine Webprojekte (Sites) an
Der letzte Befehl ist notwendig wenn wir später mit unserem Apache auf das Repository zugreifen wollen.
Jetzt wollen wir unsere Dateien in das SVN übernehmen. In meinem Fall einfach meine eigene Website (wolfgang-burger.de). Dazu legen wir in unserem SVN-Repo den Ordner an und machen einen initial import
Wir haben jetzt unseren Dateibaum im Repository abgelegt. Dummerweise wissen die Ursprungsdateien allerdings noch nichts davon. Wir haben quasi unsere Dokumente kopiert und ins Archiv gelegt. SVN hat sich dann im Archiv sozusagen darum gekümmert jeder Akte und jedem Papierchen ein Stempel mit Informationen aufzudrücken. Aber davon sind natürlich unsere Orginalakten nicht betroffen. Die liegen immer noch ungestempelt auf unserem Schreibtisch rum. Also nehmen wir unsere Orginale und schmeissen Sie weg, damit mir in Zufunft nur noch mit den schönen neuen gestempelten Kopien arbeiten. Da wir aber gerne auch Nummer sicher gehen wollen (Obwohl da ja Timemachine auch aktiv ist), benennen wir den Orginalordner erst mal sicherheitshalber um.
Um den Status des ausgecheckten Dateien zu überprüfen wechseln wir in das neu erstellte checkout-Verzeichnis und lassen uns den Status anzeigen:
ist alles richtig gelaufen erscheint dann hier ein Text wie folgender:
Guter Artikel auf Bombay Digital
Adding Trac - da schreibe ich bei Bedarf noch mal was zu...
Eine schnelle englische Anleitung
Guter Stil ist es heute Codezeilen Online als Codezeilen zu markieren. Sei es nun in Joomla oder jetzt hier bei Serendipity. Old School wird dies meist mit Geshi gemacht - New School ist aber eher der hier vorgestellte SyntaxHighlighter von Alex Gorbatchev. <link type="text/css" rel="Stylesheet" href="/Styles/shThemeDjango.css"/>Wer mag und sich auskennt kann dann natürlich noch alles entsprechend seinem Gusto anpassen.Die Konfiguration ist sehr einfach:
<textarea name="code" class="c#" cols="60" rows="10">
... some code here ...
</textarea>
<link type="text/css" rel="stylesheet" href="css/SyntaxHighlighter.css"></link>
<script language="javascript" src="js/shCore.js"></script>
<script language="javascript" src="js/shBrushCSharp.js"></script>
<script language="javascript" src="js/shBrushXml.js"></script>
<script language="javascript">
dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>
|
|
September '10 | |||||
| Mo | Di | Mi | Do | Fr | Sa | So |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||