====== Subversion Versionskontrolle ======
===== Informationen =====
* http://subversion.tigris.org/
* Dokumentation http://svnbook.org/
* FAQ http://subclipse.tigris.org/faq.html
* subversion für Eclipse http://subclipse.tigris.org/
* [[http://www.baccoubonneville.com/blogs/index.php/eclipse/2005/12/04/p121|Subclipse Apache]]
* Subversion Webinterface http://websvn.tigris.org/
* WEBDAV http://subversion.tigris.org/webdav-usage.html
* Eine lesenswerte Einstiegshilfe. [[http://kb.gnuher.de/zzz_old_articles/various/HOWTO%20-%20SVN%20Kurzanleitung.txt|HOWTO - Eine Subversion Kurzanleitung]] von Sven Geggus.
* Subversion als [[http://mythago.net/svn_for_backup.html|Backup]]
===== subversion für localhost =====
Beispiel für Verwendung von [[http://subversion.tigris.org/|subversion Versionskontrolle]] für lokale Konfigurationsdateien, z.B. in etc.
* Repository anlegen, z.B. [hostname]
svnadmin create /val/lib/svn/[repos_name]
* Verzeichnis im Repository anlegen ( = Projekt), z.B. etc
svn mkdir file:///var/lib/svn/[repos_name]/[dir_name]
* in das lokale Verzeichnis gehen cd [dir_name]
* Initialer checkout des leeren Repository, danach ist das Verzeichnis unter Versionskontrolle.
svn checkout file:///var/lib/svn/[repos_name]/[dir_name] .
* Verzeichnisse und Dateien nach Bedarf hinzufügen und übertragen.
svn add [file] [dir] ...
svn commit
Es ist nicht zu empfehlen das ganze Verzeichnis etc hinzuzufügen, da es unter Umständen dynamische Daten enthält wie z.B. adjtime oder DNS Datenbanken von bind. Alternativ können solche Dateitypen auf auf die Ignoreliste gesetzt werden (siehe unten)
==== Nützliche Kommandos bei der täglichen Arbeit ====
* Verlauf einer Datei anzeigen svn log [file]
* Unterschiede zum Repository anzeigen svn diff [file]
* Unterschiede zwischenden Revisionen anzeigen svn diff -r[n1]:[n2] [file]
* Dateien und Unterverzeichnisse angeben, welche nicht in die Versionskontrolle aufgenommen werden sollen: svn propedit svn:ignore .
Subversion Informationen aus einem Verzeichnis Löschen (nicht aus dem Repository), z.B. nach dem entpacken an einem anderen Ort.
find ./ -name .svn -exec rm -fr '{}' ';'
=== Änderung der Lokation ===
* zum Beispiel wenn von ''http://'' zu ''svn+ssh://'' umgestellt wird
* im Arbeitsverzeichnis folgenden Befehlt ausführen:
svn switch --relocate http://[alte Lokation] svn+ssh://[neue Lokation]/[Pfad]/
===== Troubleshooting =====
* Andern der DB-Version http://wiki.phys.ethz.ch/readme/subversion_bdb_maintenance
{{tag>linux development}}