Subversion (SVN) - Versionieren, Organisieren und Verwalten

1 | 7 Kommentare | 9047 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "Subversion (SVN) - Versionieren, Organisieren und Verwalten" mit Ihrem Wissen!

Anzeige Hier werben

Subversion (SVN) ist eine Software zur Versionsverwaltung und Organisation von Daten, Verzeichnissen und Dateien. Die Stärken von SVN kommen besonders bei Projekten zu Tage, an denen mehrere Personen arbeiten. Dann können mit Hilfe von Subversion die einzelnen Projektdateien synchronisiert oder auch zusammengefügt werden.

SVN Hoster

Um mit SVN arbeiten zu können benötigt man natürlich einen SVN-Server. Da meistens aber nur Webspace vorhanden ist und man auf diesem keine Software installieren kann muss man auf einen anderen Hoster zurückgreifen. Die Folgenden sind alle kostenlos:

Besonderheiten
DevjaVu
Trac, Wiki
BountySource
Task Tracker, CMS, File Hosting
Assembla
Trac, Wiki, File Hosting
Origo
Wiki, Forum, Blog, Bugtracker, File Hosting
Google Code
Für Open Source Projekte
SourceForge
Für Open Source Projekte
berliOS
Für Open Source Projekte
RB Media Group
Wiki, Forum, Blog, Bugtracker, File Hosting

SVN Server einrichten

Es wurde ein neuer Artikel erstellt in dem die Einrichtung eines SVN-Servers detailliert beschrieben werden kann. Dieser Artikel ist in der ersten Version noch nicht veröffentlicht worden kann aber bearbeitet werden. Sobald die ersten nennenswerten Änderungen vorgenommen wurden sollte dieser Artikel natürlich veröffentlicht werden und hier der To-Do-Block durch einen einfach Link ersetzt werden.

Hier gehts zum Artikel: --> Kann den Artikel nicht finden. Wo soll dieser sein? (Fabian)

SVN Clients

Der Markt für Subversion-Clients ist in den letzten Jahren immens gewachsen. Generell kann man zwischen drei verschiedenen Arten von Clients unterscheiden. Stand-Alone Clients sind eigene Programme die in keinerlei andere bestehende Software integriert werden. Desktop-Integrierte Clients sind Programme die sich im Betriebssystem integrieren um beispielsweise den Windows Explorer nutzen, um die SVN Dateien zu bearbeiten, synchronisieren und zu durchsuchen. Die dritte Möglichkeit besteht darin Subversion in einer IDE zu integrieren. Dadurch lässt sich Subversion direkt aus der Entwicklungsumgebung aus nutzen.

Stand-Alone Clients

Name
Plattform
Besonderheiten
eSvn Windows, Mac OS X und Unix ähnliche
Ein auf QT basierendes GUI
rapidSVN
Windows, Mac OS/X und Unix ähnliche
Ein auf wxWidgets basierendes GUI
Versions Mac OS X

ZigVersion Mac OS X

Desktop integriert

Name Plattform
Besonderheiten Screenshot
TortoiseSVN
Windows (2000 SP4, XP, Vista, 7 (x86/x64) oder neuer)
Windows Shell Erweiterung
TortoiseSVN
SCPlugin Mac OS X
KSvn Linux
Konqueror-integrated

IDE Plugins

Name IDE
Subclipse Eclipse
Subversive Eclipse
AnkhSVN Microsoft Visual Studio
VisualSVN Microsoft Visual Studio .NET 2003 & 2005
Aigenta Unified SCC MSSCCI-kompatible Programme wie z.B. Microsoft Visual Studio
WLW-SVN WebLogic Workshop (8.1.3/8.1.4)
CW Subversion Metrowerks CodeWarrior

Allgemein

Erklärung von Begriffen wie Arbeitskopie und Repository...

Tags und Branches

Arbeitsablauf

Einleitenden Text hinzufügen

Arbeitskopie aktualisieren

Mit dem update Befehl synchronisiert man die lokale Arbeitskopie mit dem Repository. So erhält man die Änderungen anderer Benutzer. Diesen Befehl sollte man ausführen bevor man etwas ändern möchte. Als Ausgabe erhält man eine Liste aller Änderungen.

 
Text
1
2
3
4
$ svn update
U  foo.php
A  bar.php
Updated to revision 12.

Die Art der Änderung wird mittels eines Zeichens vor der entsprechenden Datei gekennzeichnet.

Zeichen
Bedeutung
U
Eine Datei wurde aktualisiert.
A
Eine neue Datei oder ein neuer Ordner wurde der Arbeitskopie hinzugefügt.
D
Eine Datei oder ein Ordner wurde aus der Arbeitskopie entfernt.
R
Eine Datei oder ein Ordner wurde ersetzt.
G
Die Datei wurde lokal und serverseitig bearbeitet. Die beiden Dateien wurden zusammengefügt.
C
Die Datei wurde lokal und serverseitig bearbeitet. Konnte jedoch nicht zusammengefügt werden da Überschneidungen auftraten. In diesem Fall muss man das Zusammenfügen manuell machen.

Änderungen vornehmen

Nachdem man die Arbeitskopie mit update auf den neuesten Stand gebracht hat, kann man Änderungen vornehmen. Diese Änderungen werden zunächst nur lokal vorgenommen und wirken sich erst beim nächsten commit auf das Repository aus. Dazu später mehr.

Datei/Ordner hinzufügen

Um einen Ordner oder eine Datei hinzuzufügen führt man den add Befehl aus.

 
Text
1
2
$ svn add foo.bar
A         foo.bar
Datei/Ordner entfernen

Um einen Ordner oder eine Datei zu entfernen führt man den delete Befehl aus.

 
Text
1
2
$ svn delete foo.bar
D         foo.bar
Datei/Ordner verschieben

Datei/Ordner kopieren/exportieren

 
Text
1
svn export -r "Revision(z.B. HEAD)" "Repository/Datei" "Zielordner/Dateiname"

Arbeitskopie zurücksetzen

Möchte man eine lokale Arbeitskopie zurücksetzen benutzt man den revert Befehl. Dieser ersetzt die Datei mit der unveränderten Datei im Cache. Es wird dafür keine Verbindung zum Server benötigt.

Änderungen hinzufügen

Um Änderungen an der lokalen Arbeitskopie dem Repository hinzuzufügen benutzt man den commit Befehl.

Revisionen vergleichen (Standard-Diff)

Log-Datei einer Revision auslesen

 
Text
1
svn log "Pfad zum Repository/Dateiname" -q

Wikiseite bearbeiten

Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 6 Personen an der Seite "Subversion (SVN) - Versionieren, Organisieren und Verwalten" mitgewirkt.

Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "Subversion (SVN) - Versionieren, Organisieren und Verwalten" hier bearbeiten.


Kommentare: Subversion (SVN) - Versionieren, Organisieren und Verwalten

Neuen Kommentar schreiben
Artikel
Beantworten

Hallo, da ich von SVN kein Plan habe, wollte ich fragen, ob jemand diesen Artikel weiter bearbeiten kann. Einen Klienten habe ich schon, wollte auf Drupal ein Modul bereitstellen, steige durch deren Anleitung noch nicht durch und ein Konto wurde dort mal beantragt aber anscheinend noch nicht genehmigt. Vielen Dank.

Alexander Haack am 20.11.2010 um 22:39
Aufteilen
Beantworten

SVN-Server einrichten ist denke ich sehr umfangreich, das würde ich evtl. in eigene Artikel packen. Gerade auch wegen den unterschiedlichen Möglichkeiten einen SVN-Server aufzusetzen (Hinter einem Apache, Direkter Server, ...).

David Danier am 15.07.2008 um 18:43
Re: Aufteilen
Beantworten

Achja, die Funktionsweise kann natürlich auch etwas aufgeteilt werden. ;-)

David Danier am 15.07.2008 um 18:44
Re: Aufteilen
Beantworten

Also ich würde auch sagen dass das ein neuer Artikel sein sollte. Habe schon ein paar SVN-Server aufgesetzt mit verschiedenen Konfigurationen. Ich finde da sollte man detailiert die einzelnen Möglichkeiten beschreiben.

Wenn einer Mal so einen Artikel anfängt würde ich bestimmt mein Schäflein dazu beitragen. Aber nur Kleinigkeiten. Soviel Zeit habe ich leider nicht dafür.

Oliver Hoffmann am 17.07.2008 um 01:09
SVN-Server?
Beantworten

Eine Listung bzw. Beschriebung von Servern wäre nicht schlecht.
Denn manche haben ja einen Server und keinen Webspace ;)

Fabian "q-rios" Krause-Willenberg am 15.07.2008 um 18:08
Re: SVN-Server?
Beantworten

"Sie können diese Wikiseite bearbeiten. Helfen Sie mit und verbessern Sie diesen Inhalt mit Ihrem Wissen!" :P

christian am 15.07.2008 um 18:12
Re: SVN-Server?
Beantworten

Witzbold. Ich hab keine Ahnung von SVN :P

Fabian "q-rios" Krause-Willenberg am 15.07.2008 um 18:13