PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Subversion: Grundlagen, Einrichten und Benutzen



pitu
02.07.05, 11:45
Dieses Howto ist "In Arbeit", bitte erst lesen, wenn dieser Hinweis nicht mehr vorhanden ist.

1. Grundlagen
1.1 CM und SCM
1.2 Subversion

2. Einrichten
2.1 Webserver
2.2 Repository
2.3 Zugangsberechtigung

3. Benutzung
3.1 Initial
3.2 Auschecken
3.3 Einchecken
3.4 Löschen
3.5 Hinzufügen
3.6 Properties
3.7 Branches
3.8 Merging
3.9 Undo
3.10 History

4. Administration
4.1 Reparatur
4.2 Backup

pitu
04.07.05, 22:10
1.1 CM und SCM

Configuration Management (CM) wurde für die Entwicklung von Hardware entwickelt. Mit Hardware ist in diesem Sinne eigentlich nicht Computerhardware gemeint, sondern solch lebenswichtigen Dinge wie Mondfahrzeuge und so etwas. Bei der Entwicklung solcher Hardware wurden oft Millionen von USD verbraucht, was eine enge Kontrolle benötigte, wozu dieses Geld benutzt wurde. Ganz zu Schweigen davon, dass davon auch Menschenleben abhingen.

Heute ist CM folgendermaßen definiert: Configuration Management ist ein Verwaltungsprozess um die Güte eines Produktes, seine funktionalen und physikalischen Atribute, zusammen mit den Anforderungen, Design und Informationen über die Betriebsdaten wärend der gansamten Lebensdauer.

Diese Definition, bzw. so ähnlich, ist die offizielle Definition der ANSI und der EIA und ist weithin allgemein anerkannt.

Configuration Management ist also die Kontrolle über Änderungen, welche an Hardware, Software, Firmware, Dokumentation und den Tests Produktes während der Entwicklung und danach durchgeführt werden.

Oder kurz ausgedrückt: Wer hat Was, Wann und Warum geändert
Damit ist Configuartion Management der aus den 60er Jahren stammende Vorläufer von ISO 9001.

Software Configuration Managemen ist damit der Teil von Configuration Management, der sich mit Software beschäftigt .. Wer es am Namen nicht selbst schon gemerkt hat.


1.2 Subversion

Subversion ist ein sogenanntes revision control system. Solche Systeme sind der Kern eines SCM Systems, vereinigen sie doch ca. 90% des gesamte SCMs in sich. Daher werden solche Systeme weithin selbst auch als SCM Systeme bezeichnet.

Subversion ist eine neuere Entwicklung eines SCM-Systems im Open Source Bereich, der mit vielen Nachteilen der vorhandenen Systeme, in der Hauptsache CVS, aufräumt. Damit hat Subversion in seiner Weiterentwicklung Chancen, an Systeme wie Clearcase oder Synergy anzuknüpfen.

Im Einzelnen: Subversion verwaltet auch Directories und Binaries. Subversion versioniert nicht einzelne Datei sondern das ganze Repository. Subversion unterstützt Metadaten, die ebenfalls versioniert werden.

pitu
14.07.05, 13:32
2.1 Webserver Apache

Subversion hat den riesigen Vorteil, dass es über das http-Protokoll angesprochen werden kann. Natürlich auch über ssh und andere Varianten, aber über den Webserver hat den Vorteil, dass man vorhandene Sicherheitsmassnahmen etc benutzen kann und keine zusätzlich Ports in einer Firewll nutzen kann. So ist über https eine verschlüsselte Verbindung genauso Möglich wie über ssh, aber zusätzlich mit dem Vorteil, dass keine eigenen Benutzer im System eingerichtet werden müssen.

Um Subversion im Webserver zu benutzen müssen die Module mod_dav und mod_dav_svn in Apache eingebunden sein. Weitere Module sind nicht erforderlich, sinnvoll ist aber, je nach Konfigurationswunsch noch mod_authz_svn.

Letzendlich wird nun das Repository ansprechbar über dieses Stückchen Konfiguration:


<Location /mein_repository>
DAV svn
SVNPath /srv/svn/mein_repository
</Location>


2.2 Repository

Als Repository bezeichnet man bei einem SCM-System die "Datenbank" in der Die Dateien, die Änderungen die Meldungen und alles weiter abgelegt sind. ein Repository einzurichten ist sehr einfach:

svnadmin create /srv/svn/mein_repository
Dabei ist zu beachten, das natürlich der Pfad /srv/svn xistieren muss und für den user beschreibbar sein muss.

Um ein Repository einzurichten, dass über http ansprechbar ist, sollte dies als root geschehen und die Rechte zum Schreiben in das Repository müssen dem User des Webservers übergeben. Anders ausgedrückt, das Repository muss dem User des Webservers gehören:


chown -R wwwrun /srv/svn/mein_repository

Das Repository ist nun ansprechbar.


2.3 Authentifizierung

Durch den Einsatz eines Webservers können natürlich nun die Authentifizierungsmechanismen des Webservers verwendet werde. Hier gibt es 2 Möglichkeiten, einmal die Basic-Authentifizierung:


<Location /svn>
DAV svn
SVNParentPath /usr/local/svn
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>

Zum Anderen die erweiterte Authentifizierung über Subversion:


<Location /svn/project>
DAV svn
SVNPath /usr/local/svn/project

# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /path/to/users/file

# only authenticated users may access the repository
Require valid-user

# our access control policy
AuthzSVNAccessFile /path/to/access/file

</Location>

Hierbei sei die Dokumentation über Apache bzw über Subversion für die Erstellung der Zugangsberechtigungen empfohlen.