Creating a new Subversion repositoryEdit
Creating the repository
This is the procedure I use for creating a new repository on the remote (public, Internet) machine. Information about the procedure I use on my local machine, see Creating a new Subversion repository:Local machine.
sudo -u svn svnadmin create /var/lib/svn/repositories/project-name
Set up appropriate access permissions:
sudo nano /var/lib/svn/repositories/project-name/conf/svnserve.conf
For example:
anon-access = read
auth-access = write
password-db = passwd
realm = project-name repository
And configure username and password pairs:
# may be able to copy a passwd file from an existing repository as a starting point
sudo -u svn cp /var/lib/svn/repositories/other-project-name/conf/passwd \
/var/lib/svn/repositories/project-name/conf/passwd
# edit the passwd file by hand if necessary
sudo nano /var/lib/svn/repositories/project-name/conf/passwd
For example:
username = password
Finally, tighten the permissions on the passwd
file:
sudo chmod 600 /var/lib/svn/repositories/project-name/conf/passwd
Optionally install a post-commit hook script, using a hook script from another repository as a starting point:
sudo -u svn cp /var/lib/svn/repositories/other-project-name/hooks/post-commit \
/var/lib/svn/repositories/project-name/hooks/post-commit
sudo chmod 700 /var/lib/svn/repositories/project-name/hooks/post-commit
sudo nano /var/lib/svn/repositories/project-name/hooks/post-commit
Then create repository content as described below (create branches
, tags
and trunk
and perform initial import) or migrate repository content from existing repository as described in Repository migration.
Initial import
mkdir trunk tags branches
mv "project-files" trunk/
svn import svn+ssh://svn.example.com/project-name
Initial checkout of working copy
mkdir pre-import
mv branches tags trunk pre-import/
svn co svn+ssh://svn.example.com/project-name/trunk trunk
mkdir trunk tags branches
mv "project-files" trunk/
svn import svn+ssh://svn.example.com/project-name
mkdir pre-import
mv branches tags trunk pre-import/
svn co svn+ssh://svn.example.com/project-name/trunk trunk