Inhaltsverzeichnis
Über den Autor 13
Danksagungen 13
Einführung 15
Etwas über die Terminologie 17
Verwendete Konventionen 17
Praktizieren, was wir predigen 19
Warum Open Source-Entwicklung und CVS Hand in Hand gehen 21
1.1 Was ist »freie Software«? 21
1.1.1 Wie alles begann 23
1.1.2 Die zwei Entwicklungsmethoden 26
1.2 Was hat CVS damit zu tun? 27
1.3 Prinzipien der Open Source-Entwicklung und wie CVS dabei hilft 31
1.4 Wie geht das? 33
2.5 Ein neues Projekt beginnen 51
2.6 Eine Arbeitskopie auschecken 54
2.6.1 Eine Veränderung einbringen 58
2.6.2 Herausfinden, was man selbst und andere getan haben: update und diff 59
2.6.3 CVS und implizite Argumente 64
2.6.5 Herausfinden, wer was gemacht hat: Log-Nachrichten lesen 77
2.6.6 Veränderungen untersuchen und zurücknehmen 80
2.7 Andere nützliche CVS-Kommandos 87
2.7.2 Verzeichnisse hinzufügen 87
2.7.4 Verzeichnisse entfernen 90
2.7.5 Dateien und Verzeichnisse umbenennen 91
2.7.6 Optionsmüdigkeit vermeiden 92
3.1 Fehlschläge und Erfolgserlebnisse 123
3.2 Wie beginnt man ein Projekt 125
3.2.1 Geben Sie etwas Nützliches heraus 128
3.2.2 Verpacken 131
3.2.3 Ankündigen des Programms 136
3.3 Durchführung eines Projektes 137
3.3.1 Kultivierung technischer Beurteilungen 141
3.3.2 Wer ist nun wirklich der Betreuer? 145
3.3.3 Leiten durch Komitee 146
3.3.4 Wie man eine Verzweigung erzeugt, wenn es unbedingt sein muss 149
3.3.5 Wechsel von Betreuern 152
3.3.6 Stase 153
3.3.7 Wissen, was wir nicht wissen 153
4.1 Die Rolle des Administrators 155
4.1.1 Beschaffen und Installieren von CVS 155
4.2 Beschaffen und Bauen von CVS unter Unix 156
4.2.1 Beschaffen und Installieren von CVS unter Windows 159
4.2.2 Beschaffen und Installieren von CVS auf einem Macintosh 161
4.2.3 Beschränkungen der Macintosh- und Windows-Versionen 161
4.3 Anatomie einer CVS-Distribution 162
4.3.3 Andere Informationsquellen 167
4.4 Mit einem Archiv beginnen 168
4.4.1 Der Passwortauthentisierungs-Server 171
4.4.2 Anonymer Zugriff über den Passwortauthentisierungs-Server 176
4.4.3 Archivstruktur, in quälender Detailfülle erklärt 178
4.4.4 RCS-Format quotiert »@«-Zeichen immer 185
4.4.5 Was geschieht, wenn Sie eine Datei löschen 188
5.1 Die Bedeutung des Softwareentwurfs 207
5.2 Proprietärer Softwareentwurf vs. freier Softwareentwurf 208
5.3 Kostenfragen 210
5.4 Entwurfsinvarianten 211
5.5 Quelltextentwurf 212
5.5.1 Sicherheiten von Unsicherheiten trennen 212
5.5.2 Die Aufteilung des Quelltextes in Dateien und Verzeichnisse 215
5.5.3 Aufteilung des Quelltextes in Module 216
5.6 Evolutionszentrierter Entwurf 218
5.7 Prinzipien des freien Softwareentwurfs 220
5.7.1 Limitieren Sie die Eingabe nicht 220
5.7.2 Benutzen Sie eine konsistente Schnittstelle 222
5.7.3 Dokumentieren Sie Datenstrukturen 223
5.7.4 Halten Sie es portabel 223
5.8 Im Zweifelsfall - Hände weg 225
6.1 Über die Grundlagen hinaus 227
6.3 Watches: Wer arbeitet wann woran 228
6.3.1 Watches im Archiv aktivieren 229
6.4 Log-Nachrichten und Commit-E-Mails 248
6.5 Wie man eine Arbeitskopie los wird 251
6.6 Überblick über die Projekthistorie 252
6.7 Detaillierter Überblick über Projektaktivitäten: Anmerkungen 257
6.8 Verwendung der Schlüsselwortexpansion 263
6.9 Eine prekäre Lage: Wie überlebt man die Arbeit mit Verzweigungen? 266
6.10 Häufig mit der Hauptversion verschmelzen 267
6.11 Der koordinierte Ansatz: Verschmelzungen von und zur Hauptversion 276
6.12 Der Ansatz »fliegender Fisch«: Wie's einfacher geht 278
7.1 Warum überhaupt eine neue Version? 289
7.2 Den Veröffentlichungsprozess starten 291
7.3 Wie man den Effekt »Code Cram« vermeidet 292
7.4 Einfrieren 293
7.5 Entwicklungszweig - stabiler Zweig 294
7.6 Testen 297
7.6.1 Rekrutierung und Haltung der Tester 297
7.6.2 Automatisiertes Testen 298
7.7 Übersetzen, installieren und verpacken 299
7.7.1 Wie man sich von CVS beim Verpacken helfen lässt 304
7.8 Veröffentlichen 306
7.8.1 Wie man mitteilt, was sich geändert hat 307
7.8.2 Die Veröffentlichung im CVS vermerken: Tags und
Revisionsnummern 308
7.9 Weiterführende Informationen 309
8.1 Wenn mal was schief läuft 311
8.2 Die üblichen Verdächtigen 312
8.2.1 Der administrative Teil der Arbeitskopie 312
8.2.2 Zugriffsrechte im Archiv 315
8.3 Häufige Probleme und deren Lösung 317
9.1 Organisation und Konventionen 335
9.3 Typische Eigenschaften von CVS-Kommandos 336
9.5.1 Diff-Kompatibilitätsoptionen 354
9.6 Schlüsselwortersetzung (RCS-Schlüsselwörter) 383
9.6.1 Schlüsselwort-Expansion kontrollieren 384
9.7 Liste der Schlüsselwörter 386
9.8 Archivverwaltungsdateien 388
9.8.2 Gemeinsame Variablen 389
9.8.3 Liste der Archivverwaltungsdateien 389
9.9 Laufzeit-Kontrolldateien 398
10.1 Was sind Werkzeuge von Drittanbietern? 407
10.2 pcl-cvs: eine Emacs-Bedienungsoberfläche für CVS 407
10.3 Installation von pcl-cvs 408
10.4 Benutzung von pcl-cvs 411
10.5 Fehlerbehandlung in pcl-cvs 413
10.6 Die Zukunft von pcl-cvs 413
10.7 cvsutils: allgemeine Werkzeuge zur Nutzung mit CVS 414
10.8 cvs2cl.pl: die Erzeugung von ChangeLogs im GNU-Stil aus CVS Logs 418
A.1 Der Übergang von Cyclic nach SourceGear 427
A.2 Wie bekomme ich CVS heute? 429
GNU General Public License 431
B.1 Preamble 431
B.2 Terms And Conditions For Copying, Distribution, And Modification 432
B.3 Wie Sie diese Bedingungen auf Ihre neuen Programme anwenden 437
Stichwortverzeichnis 441