Falls noch kein SVN-Packet installiert ist, muss dies im Vorfeld geschehen. Bei Ubuntu sollte sich das Packet mit sudo apt-get install subversion installieren lassen.
http://tortoisesvn.tigris.org/
http://lotterfriends.net/index.php/2010/06/14/zugriff-auf-den-google-code-via-subversion-svn/
Es geht auch von der Kommandozeile in Linux.
svn checkout URL... [PATH]
http://csd.informatik.uni-oldenburg.de/~hoenicke/svnadmin/
http://sourceforge.net/projects/svndashboard/
Wenn Dateien mit svn copy
kopiert werden, dann behalten sie ihre Geschichte. Wenn man auf diese Weise ein Unterprojekt startet ist das praktisch dasselbe wie ein Branch.
Wenn das Repository mit git-svn exportiert wird, dann ist die Geschichte aber weg. Grund ist dass git-svn einfach in allen SVN-revisions nach dem Pfad sucht. – Damit kann problemlos der Trunk verfolgt werden, aber bei Branches/Kopien fehlen dann eben alle vorherigen Versionen mit anderem Dateinamen.
Install devel/subversion. The defaults are fine.
# cd /usr/ports/devel/subversion # make install clean
Decide where the files will be stored. /var/svn is used here.
# setenv SVN_ROOT /var/svn
Create a user svn.
# pw groupadd svn # pw adduser svn -g svn -s /usr/sbin/nologin
Add any users that will use the repositories to the svn group:
# pw groupmod svn -m username
Create a general repository format.
# mkdir -p $SVN_ROOT/repos # mkdir -p $SVN_ROOT/defaults/trunk # mkdir $SVN_ROOT/defaults/branches # mkdir $SVN_ROOT/defaults/tags
User svn must own everything.
# chown -R svn:svn $SVN_ROOT
Add this to /etc/rc.conf
svnserve_enable="YES" svnserve_flags="-d --listen-port=3690 --listen-host 127.0.0.1" svnserve_data="/var/svn/repos" svnserve_user="svn" svnserve_group="svn"
To create a new project called example:
# svnadmin create $SVN_ROOT/repos/example # svn import $SVN_ROOT/defaults file://$SVN_ROOT/repos/example -m "Initial import"
Change the permissions on the newly created files.
# chown -R svn:svn $SVN_ROOT/repos/example # chmod -R g+w $SVN_ROOT/repos/example
Use a dump-file to export/load the content of a repository:
# svnadmin dump $SVN_ROOT/repos/example > svndump.file # svnadmin load $SVN_ROOT/repos/example < svndump.file
Set permissions. Edit $SVN_ROOT/repos/example/conf/svnserve.conf
:
[general] password-db = userfile realm = example realm
Create a new file $SVN_ROOT/repos/example/conf/userfile
:
[users] user1 = user1_password user2 = user2_password
Change permissions on the configuration files.
chown -R root:wheel $SVN_ROOT/repos/example/conf
The authentication and network acces protocol should be changed to SSH Private Key (http://jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html)