summaryrefslogtreecommitdiff
path: root/Subversion-Anleitung.txt
blob: 8d2322b7a925df471ed6b9badfb90295185e754c (plain)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
------------------------------------------------------------------------------
Diese Datei beschreibt den Umgang mit dem Subversion Kommandozeilenclient.
------------------------------------------------------------------------------
Gliederung
1. Voraussetzung
1.1 Welche Software brauche ich?
1.2 Dateien im SVN ändern
1.3 Terminologie
2. Verschiedene Arbeitsabläufe (Was will ich machen?)
2.1 Das Repository lokal auf meinem Rechner haben
2.2 Das Repository auf meinem Rechner auf den neuesten Stand bringen
2.3 Dateien im Repository ändern
2.4 Dem Repository neue Dateien hinzufügen
2.5 Dateien im Repository umbenennen
2.6 Dateien aus dem Repository löschen
2.7 Änderungen ins Repository hochladen
3. Ratschläge / »best practice SVN usage«
------------------------------------------------------------------------------
1. Voraussetzung
------------------------------------------------------------------------------
1.1 Welche Software brauche ich?

Benötigt wird das Programm subversion für die Kommandozeile:
Download: http://svn.tigris.org

Alternativ liegt für Windows auch ein komfortabler SVN-Client vor, der sich in die normale Dateiverwaltung integriert:
http://www.tortoisesvn.net/

Die weiteren Erläuterung beziehen sich auf den Kommandozeilen-Client, können aber sinngemäß auf einen graphischen Client übertragen werden.

------------------------------------------------------------------------------
1.2 Dateien im SVN ändern

Will man auch Dateien im Repostiory ändern, braucht man einen Schreibzugang mit Namen und Passwort.
	? Ben fragen!
Wenn es voraussichtlich bei einer einzigen Änderung bleiben wird, kann alternativ auch auf der Mailingliste Unterstützung für ein einmaliges »Einchecken« erbeten werden.

------------------------------------------------------------------------------
1.3 Terminologie

$REPOSITORY_HOME – Das Verzeichnis in dem das ausgecheckte Repository liegt

------------------------------------------------------------------------------
2. Was will ich machen?
------------------------------------------------------------------------------
2.1 Das Repository lokal auf meinem Rechner haben

Angenommen ich möchte Neo in das Verzeichnis »$VERZEICHNIS/$NEO« runterladen:

  cd $VERZEICHNIS
  svn checkout https://neo.eigenheimstrasse.de/svn $NEO
 
$REPOSITORY_HOME ist dann $VERZEICHNIS/$NEO

------------------------------------------------------------------------------
2.2 Das Repository auf meinem Rechner auf den neuesten Stand bringen

  cd $REPOSITORY_HOME
  svn update

------------------------------------------------------------------------------
2.3 Dateien im Repository ändern

Einfach die Datei ändern und weiter geht’s mit Abschnitt 2.7.

------------------------------------------------------------------------------
2.4 Dem Repository neue Dateien hinzufügen

Nachdem man die Datei in der lokalen Repositorykopie erstellt hat:
  svn add $DATEI
weiter mit Abschnitt 2.7

------------------------------------------------------------------------------
2.5 Dateien im Repository umbenennen

  svn mv $DATEI_ALT $DATEI_NEU
weiter mit Abschnitt 2.7

------------------------------------------------------------------------------
2.6 Dateien aus dem Repository löschen

  svn rm $DATEI
weiter mit Abschnitt 2.7

------------------------------------------------------------------------------
2.7 Änderungen ins Repository hochladen

  cd $REPOSITORY_HOME
  svn commit -m "$ÄNDERUNGSBESCHREIBUNG" --username $USER

Wenn man das Repository mit seinem Nutzernamen ausgecheckt hat, 
kann »--username $USER« weggelassen werden.
Statt auschecken wie in Abschnitt 2.1 beschrieben:
  cd $VERZEICHNIS_WO_NEO_REIN_SOLL
  svn checkout https://$USER@neo.eigenheimstrasse.de/svn neo

------------------------------------------------------------------------------
3. Ratschläge / »best practice«
------------------------------------------------------------------------------
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:

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

‣ Es ist vorteilhaft, inhaltlich Zusammengehörendes auch gemeinsam zu committen, und Dinge, die voneinander unabhängig sind, auch einzeln einzuchecken.

‣ Die Änderungsbeschreibung sollte immer eingegeben werden und möglichst genau sein.

‣ 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: …«

‣ 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)«

‣ Größere Commits können auch aufgeteilt werden, wenn die Intention dazu aus den Änderungsbeschreibungen hervor geht.

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

‣ Änderungen an der Referenz sollten unbedingt vorher auf der Mailingliste besprochen bzw. ausdiskutiert werden. Unwesentliche Änderungen sollten zumindestens auf der Liste erwähnt werden.
------------------------------------------------------------------------------