SVN: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 146: | Zeile 146: | ||
Als Client verwende ich die Entwicklungsumgebung (IDE Netbeans 6.9). Netbeans unterstützt von Haus aus das SVN. | Als Client verwende ich die Entwicklungsumgebung (IDE Netbeans 6.9). Netbeans unterstützt von Haus aus das SVN. | ||
==Konfiguration== | |||
Wenn man Projekte mit vielen Dateien hat (z. B. Zend-Projekte) funktioniert das Einchecken möglicherweise nicht. Das liegt dann an einem HTTP-Timeout. Das Problem kann man lösen, indem man den HTTP-Timeout etwas höher setzt. Das kann man wie folgt machen: | |||
*ins '''<code>/home/</code>''' Verzeichnis des Users wechseln (z. B. '''<code>/home/user/</code>''') | |||
*im Unterordner '''<code>.subversion</code>''' die Datei '''<code>servers</code>''' mit Editor öffnen (z. B. '''<code>vi servers</code>''') | |||
*am Ende '''<code>http-timeout = 6000</code>''' anfügen und Datei speichern | |||
Nun sollte das Einchecken auch bei Zend-Projekten einwandfrei funktionieren. | |||
==bestehendes Projekt auschecken== | ==bestehendes Projekt auschecken== | ||
Zeile 176: | Zeile 186: | ||
*In Commit-Message muss die Änderung eingegeben werden | *In Commit-Message muss die Änderung eingegeben werden | ||
*Button Commit schiebt die Änderungen ins Repository | *Button Commit schiebt die Änderungen ins Repository | ||
==Projekt aus dem Repository entfernen== | |||
Unter Umständen möchte man ein angelegtes Projekt wieder aus dem Repository entfernen. Dies ist ziemlich einfach, wenn man es weiß. Man braucht dazu nur den SVN-Konsolen-Client und führt folgenden Befehl aus: | |||
svn delete http://example.com/svn/zuloeschendesprojekt | |||
Beim Ausführen wird ggf. der Nano-Editor geöffnet. Das ist nicht wichtig und kann mit "STRG+X" übersprungen werden. Anschließend wird man aufgefordert sich auf dem SVN-Server zu authentifizieren, sofern eine authentifizierte Anmeldung erforderlich ist. | |||
=Quellen= | =Quellen= | ||
http://wiki.ubuntuusers.de/Subversion?redirect=no | http://wiki.ubuntuusers.de/Subversion?redirect=no | ||
http://www.abbeyworkshop.com/howto/misc/svn01/ |
Aktuelle Version vom 15. Mai 2011, 15:35 Uhr
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
Als Client verwende ich die Entwicklungsumgebung (IDE Netbeans 6.9). Netbeans unterstützt von Haus aus das SVN.
Konfiguration
Wenn man Projekte mit vielen Dateien hat (z. B. Zend-Projekte) funktioniert das Einchecken möglicherweise nicht. Das liegt dann an einem HTTP-Timeout. Das Problem kann man lösen, indem man den HTTP-Timeout etwas höher setzt. Das kann man wie folgt machen:
- ins
/home/
Verzeichnis des Users wechseln (z. B./home/user/
) - im Unterordner
.subversion
die Dateiservers
mit Editor öffnen (z. B.vi servers
) - am Ende
http-timeout = 6000
anfügen und Datei speichern
Nun sollte das Einchecken auch bei Zend-Projekten einwandfrei funktionieren.
bestehendes Projekt auschecken
- Netbeans 6.9 ganz normal starten
- Team - Subversion - Checkout
- Repository URL eingeben (z. B. http://easycow.de/svn)
- Benutzername und Passwort eingeben und auf Weiter klicken
- Repository-Folder über Browse auswählen
- Local-Folder spezifzieren
- Ein Klick auf Finish kopiert die Quellcodedateien auf den lokalen PC
neues Projekt hinzufügen
- Netbeans 6.9 ganz normal starten
- Neues Projekt anlegen
- Dateien erzeugen, etc.
- Wenn man seine Arbeit abgeschlossen hat auf Team - Subversion - Import into Repository auswählen
- Repository URL eingeben (z. B. http://easycow.de/svn)
- Benutzername und Passwort eingeben
- Kommentareingabe ist zwingend. Andernfalls kann das Projekt nicht in das SVN hinzugefügt werden
Änderungen ins Repository übernehmen
Wenn man eine Datei aus dem Repository bearbeitet wird und diese speichert, wird der Dateiname "blau" dargestellt. Das heißt, dass die Datei nach dem Auschecken geändert wurde. Um die Änderungen ins Repository zu schieben, geht man wie folgt vor:
- Rechtsklick auf die Datei, die bearbeitet wurde
- Subversion - Commit auswählen
- In Commit-Message muss die Änderung eingegeben werden
- Button Commit schiebt die Änderungen ins Repository
Projekt aus dem Repository entfernen
Unter Umständen möchte man ein angelegtes Projekt wieder aus dem Repository entfernen. Dies ist ziemlich einfach, wenn man es weiß. Man braucht dazu nur den SVN-Konsolen-Client und führt folgenden Befehl aus:
svn delete http://example.com/svn/zuloeschendesprojekt
Beim Ausführen wird ggf. der Nano-Editor geöffnet. Das ist nicht wichtig und kann mit "STRG+X" übersprungen werden. Anschließend wird man aufgefordert sich auf dem SVN-Server zu authentifizieren, sofern eine authentifizierte Anmeldung erforderlich ist.