Dieser Text befindet sich gegenwärtig in Bearbeitung, unterliegt ständigen Änderungen und kann dadurch nicht stets akkurat irgendeine freigegebene Version der Software Apache™ Subversion® beschreiben. Das Speichern dieser Seite als Lesezeichen oder andere auf diese Seite zu verweisen, ist keine so gute Idee. Besuchen Sie http://www.svnbook.com/, um stabile Versionen dieses Buchs zu erhalten.

Teil I. Subversion kennenlernen

Inhaltsverzeichnis

1. Grundlegende Konzepte
Grundlagen der Versionskontrolle
Das Projektarchiv
Die Arbeitskopie
Versionierungsmodelle
Das Problem verteilter Dateizugriffe
Die Sperren-Ändern-Entsperren-Lösung
Die Kopieren-Ändern-Zusammenführen-Lösung
Versionskontrolle nach Art von Subversion
Subversion Projektarchive
Revisionen
Projektarchive adressieren
Subversion-Arbeitskopien
Wie die Arbeitskopie funktioniert
Grundlegende Interaktionen der Arbeitskopie
Arbeitskopien mit gemischten Revisionen
Zusammenfassung
2. Grundlegende Benutzung
Hilfe!
Wie Sie Daten in Ihr Projektarchiv bekommen
Importieren von Dateien und Verzeichnissen
Empfohlene Aufteilung des Projektarchivs
Was steckt in einem Namen?
Erstellen einer Arbeitskopie
Der grundlegende Arbeitszyklus
Aktualisieren Sie Ihre Arbeitskopie
Nehmen Sie Ihre Änderungen vor
Überprüfen Sie Ihre Änderungen
Verschaffen Sie sich einen Überblick über Ihre Änderungen
Untersuchen Sie die Details Ihrer lokalen Änderungen
Beheben Sie Ihre Fehler
Lösen Sie etwaige Konflikte auf
Interaktive Begutachtung der Konflikte
Interaktive Konfliktauflösung
Aufschieben der Konfliktauflösung
Manuelle Konfliktauflösung
Verwerfen Ihrer Änderungen zugunsten einer aktualisierten Revision aus dem Projektarchiv
Die Verwendung von svn revert
Übergeben Ihrer Änderungen
Geschichtsforschung
Detaillierte Untersuchung der Änderungsgeschichte
Untersuchen lokaler Änderungen
Vergleichen der Arbeitskopie mit dem Projektarchiv
Vergleichen von Projektarchiv-Revisionen
Erzeugung einer Liste der Änderungsgeschichte
Stöbern im Projektarchiv
Anzeige von Dateiinhalten
Anzeigen der zeilenweisen Zuordnung von Änderungen
Auflistung versionierter Verzeichnisse
Bereitstellung älterer Projektarchiv-Schnappschüsse
Manchmal müssen Sie einfach nur aufräumen
Entsorgen einer Arbeitskopie
Wiederherstellung nach einer Unterbrechung
Umgang mit Strukturkonflikten
Ein Beispiel für einen Baumkonflikt
Zusammenfassung
3. Fortgeschrittene Themen
Revisionsbezeichner
Revisions-Schlüsselworte
Revisionsdaten
Peg- und operative Revisionen
Eigenschaften
Warum Eigenschaften?
Ändern von Eigenschaften
Eigenschaften und der Arbeitsablauf von Subversion
Ererbte Eigenschaften
Automatisches Setzen von Eigenschaften
Reservierte Subversion-Eigenschaften
Versionierte Eigenschaften
Unversionierte Eigenschaften
Datei-Portabilität
Datei-Inhalts-Typ
Ausführbarkeit von Dateien
Zeichenfolgen zur Zeilenende-Kennzeichnung
Ignorieren unversionierter Objekte
Ersetzung von Schlüsselworten
Verzeichnis-Teilbäume
Sperren
Anlegen von Sperren
Entdecken von Sperren
Freigabeerzwingung und Stehlen von Sperren
Kommunikation über Sperren
Externals-Definitionen
Änderungslisten
Erstellen und Bearbeiten von Änderungslisten
Änderungslisten als Befehlsfilter
Einschränkungen von Änderungslisten
Das Netzwerkmodell
Anfragen und Antworten
Client-Zugangsdaten
Zwischenspeichern von Zugangsdaten
Unterbinden der Zwischenspeichrung von Passwörtern
Entfernen zwischengespeicherter Zugangsdaten
Anmeldung über die Kommandozeile
Schlusswort zur Anmeldung
Arbeit ohne Arbeitskopie
Operationen mit einem Kommandozeilen-Client aus der Ferne
Die Verwendung von svnmucc
Zusammenfassung
4. Verzweigen und Zusammenführen
Was ist ein Zweig?
Verwenden von Zweigen
Erzeugen eines Zweiges
Arbeiten mit Ihrem Zweig
Die Schlüsselkonzepte des Verzweigens
Grundlegendes Zusammenführen
Änderungsmengen
Einen Zweig synchron halten
Teilbaum-Merges und -Mergeinfo
Reintegration eines Zweigs
Mergeinfo und Vorschauen
Änderungen rückgängig machen
Zurückholen gelöschter Objekte
Fortgeschrittenes Zusammenführen
Rosinenpicken
Merge-Syntax: Die vollständige Offenlegung
Mergen ohne Mergeinfo
Mehr über Konflikte beim Zusammenführen
Änderungen blockieren
Protokolle und Anmerkungen, die Zusammenführungen anzeigen
Die Abstammung berücksichtigen oder ignorieren
Zusammenführen und Verschieben
Ahnungslose Clients vom Mergen abhalten
Das abschließende Wort zum Merge-Tracking
Zweige durchlaufen
Tags
Erzeugen eines einfachen Tags
Erzeugen eines komplexen Tags
Verwaltung von Zweigen
Aufbau des Projektarchivs
Lebensdauer von Daten
Verbreitete Verzweigungsmuster
Release-Zweige
Funktions-Zweige
Lieferanten-Zweige
Allgemeines Vorgehen für die Verwaltung von Lieferanten-Zweigen
Lieferanten-Zweige aus fremden Projektarchiven
Lieferanten-Zweige aus gespiegelten Quellen
Verzweigen oder nicht verzweigen?
Zusammenfassung
5. Verwaltung des Projektarchivs
Das Subversion Projektarchiv, Definition
Strategien für die Verwendung eines Projektarchivs
Planung der Organisation Ihres Projektarchivs
Entscheiden Sie, wo und wie Ihr Projektarchiv untergebracht werden soll
Controlling Access to Your Repository
Anlegen und konfigurieren Ihres Projektarchivs
Anlegen des Projektarchivs
Erstellen von Projektarchiv-Hooks
Konfiguration der Umgebung von Hook-Skripten
Häufige Anwendungen für Hook-Skripte
Finding hook scripts or rolling your own
FSFS Konfiguration
Projektarchiv-Wartung
Der Werkzeugkasten eines Administrators
svnadmin
svnlook
svndumpfilter
svnrdump
svnsync
fsfs-reshard.py
Berichtigung des Protokolleintrags
Plattenplatzverwaltung
Wie Subversion Plattenplatz spart
Entfernen unvollendeter Transaktionen
FSFS Filtersystem packen
Projektarchiv-Daten woanders hin verschieben
Repository data migration using svnadmin
Projektarchiv-Daten-Migration mit svnrdump
Filtern der Projektarchiv-Historie
Projektarchiv Replikation
Replizierung mit svnsync
Teilweise Replizierung mit svnsync
Ein schneller Trick zur Spiegel-Erstellung
Nachbereitung der Replizierung
Sicherung des Projektarchivs
Verwaltung von Projektarchiv UUIDs
Verschieben und Entfernen von Projektarchiven
Zusammenfassung
6. Konfiguration des Servers
Überblick
Auswahl einer Serverkonfiguration
Der svnserve-Server
svnserve über SSH
Der Apache HTTP Server
Empfehlungen
svnserve, ein maßgefertigter Server
Der Serverstart
svnserve als Unix-Dienst
svnserve über inetd starten
svnserve über xinetd
svnserve über einen Tunnel
svnserve als ein Dienst unter Windows
svnserve als ein launchd-Job
Integrierte Authentifikation und Autorisierung
Erstellen einer Passwortdatei und festlegen der Authentifikationsumgebung (Realm)
Setzen von Zugriffsbeschränkungen
svnserve mit SASL verwenden
Authentifikation mit SASL
SASL Verschlüsselung
Tunneln über SSH
SSH-Konfigurationstricks
Erstmalige Einrichtung
Steuerung des aufgerufenen Befehls
svnserve Konfigurations-Referenz
Allgemeine Konfiguration
Cyrus SASL Konfiguration
httpd, der Apache HTTP-Server
Voraussetzungen
Grundlegende Konfiguration von Apache
Authentifikationsoptionen
Einfache Authentifikation
Digest Authentifikation
Autorisierungs-Optionen
Pauschale Zugriffskontrolle
Verzeichnisweise Zugriffskontrolle
Unterbinden pfad-basierter Prüfungen
Im Projektarchiv versionierte Zugriffs-Dateien
Schutz des Netzwerkverkehrs durch SSL
Konfiguration von Subversion-Server SSL-Zertifikaten
Subversion-Client SSL-Zertifikat-Verwaltung
Auf Leistung abstimmen
KeepAlive
Massen-Aktualisierungen
Extra Schmankerl
Stöbern im Projektarchiv
Protokollierung von Apache
Proxy mit Weiterleitung beim Schreiben
Andere Funktionen von Apache
Subversion Apache HTTP-Server Konfigurations~Referenz
mod_dav_svn Konfigurations-Direktiven
mod_authz_svn Konfigurations-Direktiven
Pfad-basierte Autorisierung
Loslegen mit pfad-basierter Zugriffskontrolle
Zugriffskontroll-Gruppen
Anwendernamen-Aliase
Fortgeschrittene Zugriffskontroll-Funktionen
Einige Fallstricke bei der Zugriffskontrolle
Protokollierung auf hohem Niveau
Server-Optimierung
Datenpufferung
Datenkompression über das Netz
Unterstützung mehrerer Zugriffsmethoden auf das Projektarchiv
7. Subversion an Ihre Bedürfnisse anpassen
Laufzeit-Konfigurations-Bereich
Aufbau des Konfigurations-Bereichs
Konfiguration und die Windows-Registrierungsdatenbank
Laufzeit-Konfigurations-Optionen
Allgemeine Konfiguration
Serverspezifische Konfiguration
Lokalisierung
Locales verstehen
Wie Subversion Locales verwendet
Verwendung externer Editoren
Verwenden externer Werkzeuge zum Vergleichen und Zusammenführen
Externes diff
Externes diff3
Externes merge
Zusammenfassung
8. Subversion integrieren
Schichtenmodell der Bibliotheken
Projektarchiv-Schicht
Projektarchiv-Zugriffs-Schicht
Client-Schicht
Benutzung der APIs
Die Bibliothek Apache Portable Runtime
Funktionen und Batons
URL- und Pfadanforderungen
Verwendung anderer Sprachen als C und C++
Beispielcode
Zusammenfassung