SVN

Aus Cowwwiki
Version vom 11. November 2010, 17:40 Uhr von Benjaminfras (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Auf dieser Seite erkläre ich die Installation und Einrichtung des '''SVN-Repository'''. SVN wird zur Quellcodeverwaltung eingesetzt und wird von vielen Entwicklu…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Auf dieser Seite erkläre ich die Installation und Einrichtung des SVN-Repository. SVN wird zur Quellcodeverwaltung eingesetzt und wird von vielen Entwicklungsumgebungen nativ unterstützt. So lassen sich neue Projekte ohne Probleme in Netbeans auschecken bzw. einchecken.

Die Installation habe ich auf einem Ubuntu 10.04 LTS Server durchgeführt. Die Benutzer müssen sich authentifizieren, um auf das Repository zugreifen zu können. Der Zugriff erfolgt über HTTP Apache.

Server

Installation

Achtung: Diese Installationsvariante setzt einen Apache-Webserver voraus

Um den SVN zu installieren führt man am besten zuerst ein Systemupdate aus.


apt-get update && apt-get upgrade && apt-get dist-upgrade


Anschließend muss man folgende Module installieren:

  • subversion
  • libapache2-svn


apt-get install subversion libapache2-svn


Konfiguration

Als nächstes legt man ein Verzeichnis für das Repository fest. Oft wird dafür /var/local/svn verwendet.


mkdir -p /var/local/svn


Repository Datenbank erstellen


svnadmin create --fs-type fsfs /var/local/svn


und für den Apache Webserver schreibbar machen:


chown -R www-data: /var/local/svn


Nun muss auf dem Apache2 ein Modul aktiviert werden


a2enmod dav_svn


Anschließend öffnet man die erzeugte Datei /etc/apache2/mods-enabled/dav_svn.conf und aktiviert folgende Parameter


# dav_svn.conf - Example Subversion/Apache configuration
#
# For details and further options see the Apache user manual and
# the Subversion book.
#
# NOTE: for a setup with multiple vhosts, you will want to do this
# configuration in /etc/apache2/sites-available/*, not here.

# <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
# Note, a literal /svn should NOT exist in your document root.
<Location /svn>

  # Uncomment this to enable the repository
  DAV svn

  # Set this to the path to your repository
  SVNPath /var/local/svn
  # Alternatively, use SVNParentPath if you have multiple repositories under
  # under a single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...).
  # You need either SVNPath and SVNParentPath, but not both.
  #SVNParentPath /var/lib/svn

  # Access control is done at 3 levels: (1) Apache authentication, via
  # any of several methods.  A "Basic Auth" section is commented out
  # below.  (2) Apache <Limit> and <LimitExcept>, also commented out
  # below.  (3) mod_authz_svn is a svn-specific authorization module
  # which offers fine-grained read/write access control for paths
  # within a repository.  (The first two layers are coarse-grained; you
  # can only enable/disable access to an entire repository.)  Note that
  # mod_authz_svn is noticeably slower than the other two layers, so if
  # you don't need the fine-grained control, don't configure it.

  # Basic Authentication is repository-wide.  It is not secure unless
  # you are using https.  See the 'htpasswd' command to create and
  # manage the password file - and the documentation for the
  # 'auth_basic' and 'authn_file' modules, which you will need for this
  # (enable them with 'a2enmod').
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd

  # To enable authorization via mod_authz_svn
  #AuthzSVNAccessFile /etc/apache2/dav_svn.authz

  # The following three lines allow anonymous read, but make
  # committers authenticate themselves.  It requires the 'authz_user'
  # module (enable it with 'a2enmod').
  #<LimitExcept GET PROPFIND OPTIONS REPORT>
    #Require valid-user
  #</LimitExcept> 
  Require valid-user
</Location>


Nun fügen wir noch einen Benutzer hinzu


htpasswd -c /etc/apache2/dav_svn.passwd MaxMustermann


Hinweis: Wenn nur ein Benutzer hinzugefügt werden soll, dann den Befehl ohne -c ausführen. Sonst wird die Liste komplett verworfen.


Nun Apache neu starten und das Repository sollte unter http://localhost/svn/ verfügbar sein


service apache2 restart


Client

Quellen

http://wiki.ubuntuusers.de/Subversion?redirect=no