| | 1 | = Subversion-Anleitung = |
| | 2 | ------------------------------------------------------------------------------ |
| | 3 | Diese Datei beschreibt den Umgang mit dem Subversion Kommandozeilenclient. |
| | 4 | ------------------------------------------------------------------------------ |
| | 5 | Gliederung |
| | 6 | 1. Voraussetzung |
| | 7 | 1.1 Welche Software brauche ich? |
| | 8 | 1.2 Dateien im SVN ändern |
| | 9 | 1.3 Terminologie |
| | 10 | 2. Verschiedene Arbeitsabläufe (Was will ich machen?) |
| | 11 | 2.1 Das Repository lokal auf meinem Rechner haben |
| | 12 | 2.2 Das Repository auf meinem Rechner auf den neuesten Stand bringen |
| | 13 | 2.3 Dateien im Repository ändern |
| | 14 | 2.4 Dem Repository neue Dateien hinzufügen |
| | 15 | 2.5 Dateien im Repository umbenennen |
| | 16 | 2.6 Dateien aus dem Repository löschen |
| | 17 | 2.7 Änderungen ins Repository hochladen |
| | 18 | 3. Ratschläge / »best practice SVN usage« |
| | 19 | ------------------------------------------------------------------------------ |
| | 20 | 1. Voraussetzung |
| | 21 | ------------------------------------------------------------------------------ |
| | 22 | 1.1 Welche Software brauche ich? |
| | 23 | |
| | 24 | Benötigt wird das Programm subversion für die Kommandozeile: |
| | 25 | Download: http://svn.tigris.org |
| | 26 | |
| | 27 | Alternativ liegt für Windows auch ein komfortabler SVN-Client vor, der sich in die normale Dateiverwaltung integriert: |
| | 28 | http://www.tortoisesvn.net/ |
| | 29 | |
| | 30 | Die weiteren Erläuterung beziehen sich auf den Kommandozeilen-Client, können aber sinngemäß auf einen graphischen Client übertragen werden. |
| | 31 | |
| | 32 | ------------------------------------------------------------------------------ |
| | 33 | 1.2 Dateien im SVN ändern |
| | 34 | |
| | 35 | Will man auch Dateien im Repostiory ändern, braucht man einen Schreibzugang mit Namen und Passwort. |
| | 36 | ? Ben fragen! |
| | 37 | Wenn es voraussichtlich bei einer einzigen Änderung bleiben wird, kann alternativ auch auf der Mailingliste Unterstützung für ein einmaliges »Einchecken« erbeten werden. |
| | 38 | |
| | 39 | ------------------------------------------------------------------------------ |
| | 40 | 1.3 Terminologie |
| | 41 | |
| | 42 | $REPOSITORY_HOME – Das Verzeichnis in dem das ausgecheckte Repository liegt |
| | 43 | |
| | 44 | ------------------------------------------------------------------------------ |
| | 45 | 2. Was will ich machen? |
| | 46 | ------------------------------------------------------------------------------ |
| | 47 | 2.1 Das Repository lokal auf meinem Rechner haben |
| | 48 | |
| | 49 | Angenommen ich möchte Neo in das Verzeichnis »$VERZEICHNIS/$NEO« runterladen: |
| | 50 | |
| | 51 | cd $VERZEICHNIS |
| | 52 | svn checkout https://neo.eigenheimstrasse.de/svn $NEO |
| | 53 | |
| | 54 | $REPOSITORY_HOME ist dann $VERZEICHNIS/$NEO |
| | 55 | |
| | 56 | ------------------------------------------------------------------------------ |
| | 57 | 2.2 Das Repository auf meinem Rechner auf den neuesten Stand bringen |
| | 58 | |
| | 59 | cd $REPOSITORY_HOME |
| | 60 | svn update |
| | 61 | |
| | 62 | ------------------------------------------------------------------------------ |
| | 63 | 2.3 Dateien im Repository ändern |
| | 64 | |
| | 65 | Einfach die Datei ändern und weiter geht’s mit Abschnitt 2.7. |
| | 66 | |
| | 67 | ------------------------------------------------------------------------------ |
| | 68 | 2.4 Dem Repository neue Dateien hinzufügen |
| | 69 | |
| | 70 | Nachdem man die Datei in der lokalen Repositorykopie erstellt hat: |
| | 71 | svn add $DATEI |
| | 72 | weiter mit Abschnitt 2.7 |
| | 73 | |
| | 74 | ------------------------------------------------------------------------------ |
| | 75 | 2.5 Dateien im Repository umbenennen |
| | 76 | |
| | 77 | svn mv $DATEI_ALT $DATEI_NEU |
| | 78 | weiter mit Abschnitt 2.7 |
| | 79 | |
| | 80 | ------------------------------------------------------------------------------ |
| | 81 | 2.6 Dateien aus dem Repository löschen |
| | 82 | |
| | 83 | svn rm $DATEI |
| | 84 | weiter mit Abschnitt 2.7 |
| | 85 | |
| | 86 | ------------------------------------------------------------------------------ |
| | 87 | 2.7 Änderungen ins Repository hochladen |
| | 88 | |
| | 89 | cd $REPOSITORY_HOME |
| | 90 | svn commit -m "$ÄNDERUNGSBESCHREIBUNG" --username $USER |
| | 91 | |
| | 92 | Wenn man das Repository mit seinem Nutzernamen ausgecheckt hat, |
| | 93 | kann »--username $USER« weggelassen werden. |
| | 94 | Statt auschecken wie in Abschnitt 2.1 beschrieben: |
| | 95 | cd $VERZEICHNIS_WO_NEO_REIN_SOLL |
| | 96 | svn checkout https://$USER@neo.eigenheimstrasse.de/svn neo |
| | 97 | |
| | 98 | ------------------------------------------------------------------------------ |
| | 99 | 3. Ratschläge / »best practice« |
| | 100 | ------------------------------------------------------------------------------ |
| | 101 | In diesem Abschnitt geht es weniger um technische Fragen, sondern eher darum, wie man sinnvoll/empfohlenerweise mit einem SVN arbeiten sollte. Diese Ratschläge haben sich in der Praxis als sinnvoll erwiesen: |
| | 102 | |
| | 103 | ‣ Bevor man beginnt, die eigene SVN-Kopie zu bearbeiten, sollte immer erst ein Update durchgeführt werden (insbesondere, wenn das letzte Aus-checken schon länger her liegt). Dies vermeidet mögliche Konflikte. |
| | 104 | |
| | 105 | ‣ Es ist vorteilhaft, inhaltlich Zusammengehörendes auch gemeinsam zu committen, und Dinge, die voneinander unabhängig sind, auch einzeln einzuchecken. |
| | 106 | |
| | 107 | ‣ Die Änderungsbeschreibung sollte immer eingegeben werden und möglichst genau sein. |
| | 108 | |
| | 109 | ‣ Längere Änderungsbeschreibungen sollten mit einer kurzen Zusammenfassung der Form »[Adjektiv] Subjekt Prädikat: …« begonnen werden, etwa »Neues Feature: …«, »Caps-Lock-Fehler behoben: …«, »Dokumentation ergänzt: …« |
| | 110 | |
| | 111 | ‣ Inhaltliche (bzw. »programmiertechnische«) Änderungen (oder Fehlerkorrekturen) sollten unabhängig von ästhetischen Korrekturen (wie Einrückungen oder der Korrektur von Rechtschreibfehlern) eingecheckt werden. Mögliche Änderungsbeschreibungen wären etwa: [Revision 698:] »Doku erweitert: Wie man NEO auf dem C64 installieren kann«, [Revision 699:] »Formatierung korrigiert: Leere Zeilen entfernt, Einrückung angeglichen (r698)« |
| | 112 | |
| | 113 | ‣ Größere Commits können auch aufgeteilt werden, wenn die Intention dazu aus den Änderungsbeschreibungen hervor geht. |
| | 114 | |
| | 115 | ‣ Wenn man Angst um kostbare Änderungen durch einen Headcrash während einer intensiven Change-Session hat, muss man einen Branch für den Zeitraum der Änderungen eröffnen. |
| | 116 | |
| | 117 | ‣ Änderungen an der Referenz sollten unbedingt vorher auf der Mailingliste besprochen bzw. ausdiskutiert werden. Unwesentliche Änderungen sollten zumindestens auf der Liste erwähnt werden. |
| | 118 | |
| | 119 | |
| | 120 | -------------- |
| | 121 | |
| | 122 | [wiki:WikiStart Zur Hauptseite] |