Install Subversion
$ sudo apt-get install subversion
Add subversion group
$ sudo groupadd subversion
Add your SSH users to the new subversion group
Edit /etc/group - something similar to,
subversion:x:1003:joe,sally,sue,bob,larry
Create the main svn directory
$ sudo mkdir /var/lib/svn
Create projects repository
$ svnadmin create /var/lib/svn/projects
Edit /var/lib/svn/projects/conf/svnserve.conf
sudo vi /var/lib/svn/projects/conf/svnserve.conf
Uncomment [general] if it isn't already as below it's not,
No white space at the front or end of lines in svnserve.conf
Uncomment the line starting with password-db as below,
and change passwd to password-db = /var/lib/svn/security/svn_passwd as below,
password-db = /var/lib/svn/security/svn_passwd
Edit the password file /var/lib/svn/security/svn_passwd
$ sudo mkdir /var/lib/svn/security/svn_passwd
$ sudo vi /var/lib/svn/security/svn_passwd
Add the following content for an anonymous login,
[users]
anonymous = anonymous
Again, no white space at the front or end of the password file too.
Fire up the server
$ svnserve -d -r /var/lib/svn/projects
Set permissions on the repository
$ sudo chown -R root:subversion /var/lib/svn
$ sudo chmod -R g+rws /var/lib/svn
Create a new project repository in the main projects repository
I'm going to do this from another host so you can see what that looks like using SSH. You will have to have a running SSH server and an account.
$ svn mkdir svn+ssh://www.example.com/var/lib/svn/projects/myprogram -m "created myprogram repository"
$ svn mkdir svn+ssh://192.168.1.2/var/lib/svn/projects/wsimage/tags -m "created tags"
$ svn import myprogram svn+ssh://www.example.com/var/lib/svn/projects/myprogram/trunk -m "first import"
On the local machine, you don't need the +ssh part.
The commands I ran
711 apt-get install subversion
712 mkdir /var/lib/svn
713 addgroup subversion
714 mkdir /var/lib/svn
715 svnadmin create /var/lib/svn/wsimage
716 ls /var/lib/svn
717 ls /var/lib/svnwsi
718 ls /var/lib/svn/wsimage/
719 chown -R www-data:subversion /var/lib/svn/
720 chmod -R g+rws /var/lib/svn
721 ll /var/lib/svn
722 ls -a /var/lib/svn
723 vi /var/lib/svn/wsimage/conf/svnserve.conf
724 svnadmin create /var/lib/svn/projects
725 vi /var/lib/svn/projects/conf/svnserve.conf
726 vi /var/lib/svn/projects/conf/svnserve.conf
727 vi /var/www/security/svn_passwd
728 ls
729 svnserve -d --foreground -r /home/svn
730 svnserve --help
731 svnserve -d --foreground -r /var/lib/svn/projects
606 svn list svn://192.168.1.2/
607 vi /var/www/security/svn_passwd
608 svn list svn://192.168.1.2/
609 ls /var/lib/svn
610 ls /var/lib/svn/projects/
611 svn mkdir svn://192.168.1.2/wsimage
612 vi /var/www/security/svn_passwd
613 svn mkdir svn://192.168.1.2/wsimage
614 vi /var/lib/svn/projects/conf/svnserve.conf
615 vi /var/www/security/svn_passwd
616 svn mkdir svn://192.168.1.2/wsimage
617 vi /var/www/security/svn_passwd
618 svn mkdir svn://192.168.1.2/wsimage
619 cd /var/www/svn/
620 ll
621 ls /var/lib/svn
622 ls /var/www/svn
623 ls
624 cd ..
625 rm -Rf svn
626 ls
627 ll security/
628 cd security/
629 ll
630 chmod 755 svn_passwd
631 ll
632 chmod 777 svn_passwd
633 ll
634 chown www-data:subversion svn_passwd
635 ll
636 ls
637 ls /var/lib/svn
638 mkdir /var/lib/svn/security
639 cp svn_passwd /var/lib/svn/security/
640 cd /var/lib/svn
641 ll
642 cd ..
643 chown -R root:subversion svn
644 chmod -R 775 svn
645 ll
646 cd svn
647 ll
648 vi projects/conf/svnserve.conf
649 ls
650 ls /var/lib/svn/projects/
On another computer I ran,
$ svn list svn+ssh://192.168.1.2/var/lib/svn/projects/
and I could see the wsimage directory.
Reference
Please prepend comments below including a date