Riemer Hemer: CrossVC
Tilo Riemer Frank Hemer CrossVC Grafische Versionskontrolle mit CVS und Subversion
Alle in diesem Buch enthaltenen Programme, Darstellungen und Informationen wurden nach bestem Wissen erstellt. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grunde sind die in dem vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor(en), Herausgeber, Übersetzer und Verlag übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht, auch nicht für die Verletzung von Patentrechten, die daraus resultieren können. Ebenso wenig übernehmen Autor(en) und Verlag die Gewähr dafür, dass die beschriebenen Verfahren usw. frei von Schutzrechten Dritter sind. Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. werden ohne Gewährleistung der freien Verwendbarkeit benutzt und können auch ohne besondere Kennzeichnung eingetragene Marken oder Warenzeichen sein und als solche den gesetzlichen Bestimmungen unterliegen. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung des Buches oder Teilen daraus vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlags in irgendeiner Form (Druck, Fotokopie, Mikrofilm oder einem anderen Verfahren), auch nicht für Zwecke der Unterrichtsgestaltung, reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. 2006 Open Source Press Gesamtlektorat: Dr. Markus Wirtz Satz: Open Source Press (LATEX) Umschlaggestaltung: Fritz Design, Erlangen Gesamtherstellung: Kösel, Krugzell ISBN-10 3-937514-13-9 ISBN-13 978-3-937514-13-0 http://www.opensourcepress.de
1 Einführung 11 1.1 Sinn und Ziel von Versionsverwaltung.............. 11 1.2 An wen richtet sich das Buch?................... 12 1.3 Motivation Versionsverwaltung ohne Kommandozeile... 14 1.4 Eine Kurzgeschichte......................... 15 1.5 CrossVC und CrossVC XXL..................... 17 1.6 Gliederung............................... 18 1.7 Danksagung.............................. 20 I CVS 21 2 Grundlagen der Versionsverwaltung mit CVS 23 2.1 CVS-Fachbegriffe........................... 23 2.2 Arbeitsweise von CVS........................ 26 2.3 SCM intern.............................. 30 2.3.1 Source Code Management (SCM)............. 30 2.3.2 Dateimodus.......................... 32 2.3.3 Organisation Aufbau von Repository und Arbeitskopie.............................. 33 2.3.4 Protokoll............................ 35 2.3.5 Versionierung......................... 36 2.3.6 Verzweigen und Verschmelzen.............. 37 2.3.7 Zugriffskontrolle....................... 40 2.3.8 Dateimodi/Schlüsselwörter................ 41 5
2.3.9 Atomare Commits...................... 43 2.4 CVS versus CVSNT.......................... 44 6 3 Installation 45 3.1 Installation unter Linux/Unix................... 46 3.1.1 Installation via Installationsprogramm.......... 47 3.1.2 Installation via Archiv.................... 49 3.2 Installation unter Windows..................... 50 3.3 Installation unter Mac OS X.................... 53 3.4 Installation aus den Quellen.................... 54 3.4.1 Schnellanleitung....................... 55 3.4.2 Ausführliche Anleitung................... 55 4 Schritt für Schritt: Ein erstes Projekt 59 4.1 Einrichten eines lokalen Servers................ 60 4.2 Ein Projekt ins Leben rufen..................... 61 4.3 Eine Arbeitskopie erzeugen..................... 63 4.4 Darstellung der Arbeitskopie in CrossVC............. 64 4.5 Dateien bearbeiten und committen................ 69 4.6 Grundlegende Informationen über Dateien erhalten..... 70 4.7 Eine Arbeitskopie aktualisieren.................. 76 5 CrossVC anpassen 77 5.1 Einstellungen............................. 77 5.1.1 CrossVC-Optionen...................... 78 5.1.2 Globale CVS-Optionen................... 80 5.1.3 CVS-Befehl.......................... 81 5.1.4 Externe Programme..................... 84 5.1.5 CVS-Details.......................... 89 5.1.6 Aussehen........................... 90 5.1.7 Sprachumgebung...................... 94 5.1.8 Hervorheben......................... 95 5.1.9 Fehlersuche.......................... 95 5.1.10 CrossVC XXL......................... 96
5.2 Menüs und Tastenkürzel anpassen................ 97 5.3 CrossVC als Entwicklungszentrale................. 98 6 CrossVC im Netz 103 6.1 Zugriff auf Samba- und NFS-Server................ 103 6.2 Die PServer-Methode........................ 104 6.3 Verschlüsselt via SSH........................ 106 6.3.1 SSH unter Windows die Clientseite........... 108 6.3.2 SSH unter Linux/Unix/Mac OS X die Clientseite... 111 6.3.3 SSH unter Linux/Unix/Mac OS X die Serverseite... 113 6.3.4 SSH über Proxy........................ 116 6.3.5 RSH/SSH ohne Passwort.................. 118 6.4 Vergleich der Zugriffsmethoden.................. 119 7 Projektverwaltung 121 7.1 Profile................................. 121 7.2 Ein neues Projekt anlegen Teil 2................. 122 7.3 Eine Arbeitskopie erzeugen Teil 2................ 127 7.4 Bereits existierende Arbeitskopien einbinden.......... 130 7.5 Dateien hinzufügen, umbenennen oder entfernen....... 133 7.6 Viele und große Projekte effektiv verwalten........... 135 8 Geschichte eines Projekts 137 8.1 Zeitmaschine die Geschichte eines Projekts erkunden... 137 8.2 Mehrere Entwicklungszweige Teil 1............... 139 8.2.1 Einen Nebenzweig anlegen................. 140 8.2.2 Verschmelzen zweier Entwicklungslinien........ 142 8.2.3 Auflösen von Konflikten.................. 147 8.2.4 Verzweigungen auf mehreren Dateien/Ordnern anlegen............................... 150 8.3 Freigabe von Projektversionen................... 151 9 Arbeit im Team 155 9.1 Das Repository als ewiges Gedächtnis.............. 155 9.1.1 Zugriff auf beliebige Revisionen.............. 156 7
8 9.1.2 Markenvielfalt........................ 158 9.1.3 Der Schlüssellochblick ins Repository.......... 159 9.1.4 Der Beitrag der einzelnen Entwickler........... 159 9.2 Die Aktivitäten anderer Entwickler beobachten......... 163 9.2.1 Automatische Aktualisierung............... 163 9.2.2 Momentan bearbeitete Dateien.............. 164 9.2.3 Dateien beobachten..................... 166 9.2.4 NCVS.............................. 168 9.3 Mehrere Entwicklungszweige Teil 2............... 170 9.3.1 Parallelentwicklung auf mehreren Zweigen....... 170 9.3.2 Lokale Kopie eines Repository............... 182 9.3.3 Dateien Dritter einpflegen................. 185 II Subversion 197 10 CVS oder Subversion? 199 10.1 Pro Subversion............................ 200 10.2 Pro CVS................................ 201 10.3 Anstelle eines Fazits......................... 203 11 Subversion-Grundlagen 205 11.1 Zugriff auf das Repository...................... 205 11.2 Globale Revisionsnummern.................... 207 11.3 Verzweigungen und Marken.................... 208 11.4 Unberührte Kopie der Arbeitskopie................ 210 11.5 Versionierte Metadaten....................... 210 12 Erste Schritte mit Subversion 213 12.1 Konfiguration............................. 214 12.2 Einrichten eines lokalen Repository................ 215 12.3 Das erste Projekt........................... 216 12.4 Die erste Arbeitskopie........................ 219 12.5 Darstellung der Arbeitskopie.................... 219 12.6 Dateien bearbeiten und committen................ 223
12.7 Grundlegende Informationen über Dateien erhalten..... 225 12.8 Eine Arbeitskopie aktualisieren.................. 230 13 CrossVC und Subversion im Netz 235 13.1 Zugriff auf einen Apache2-Webserver............... 236 13.1.1 Zwischenspeichern der Authentifizierungsdaten.... 236 13.2 Der Subversion-eigene Server svnserve.............. 237 13.3 Zugriff via SSH............................ 238 13.4 Vergleich der Zugriffsmethoden.................. 239 14 Projektverwaltung 241 14.1 Profile................................. 241 14.2 Bereits existierende Arbeitskopien einbinden.......... 243 14.3 Objekte hinzufügen, umbenennen oder löschen........ 243 14.4 Behandlung von Binärdateien................... 245 14.5 Eigenschaften............................. 245 14.5.1 Selbstdefinierte Eigenschaften............... 246 14.5.2 Vordefinierte Eigenschaften................ 248 14.6 Konfiguration des Clients...................... 251 15 Marken und Verzweigungen 255 15.1 Entwicklung auf mehreren Zweigen................ 255 15.1.1 Vorbereitungen........................ 256 15.1.2 Einen Nebenzweig anlegen................. 259 15.1.3 Verschmelzen zweier Entwicklungslinien........ 261 15.1.4 Auflösen von Konflikten.................. 270 15.1.5 Strukturanpassungen.................... 276 15.2 Marken - wichtige Revisionen kennzeichnen.......... 279 Anhang 281 A CVS 283 A.1 Bedeutung der Ausgabecodes................... 283 A.1.1 Import............................. 283 A.1.2 Aktualisieren......................... 284 9
A.2 Einrichtung eines PServers..................... 285 A.3 Aufbau der -Datei..................... 287 A.4 Konfiguration der Benachrichtigungsfunktion......... 290 A.5 Konfiguration eines NCVS-Servers................ 291 10 B Subversion 295 B.1 Bedeutung der Ausgabecodes................... 295 B.1.1 Status............................. 295 B.1.2 Aktualisieren......................... 298 B.2 -Konfiguration...................... 299 B.2.1 Konfiguration unter Linux/Unix und Mac OS X.... 301 B.2.2 Konfiguration unter Windows............... 303 C Binärpakete von Drittanbietern 305 D OpenSSH anpassen 307 Index 309