Subversion how-to for NorStore

How it works

NorStore uses the svnserve server solution to take local svn repositories online.

On the NorStore node noresg.norstore.no, a svnmerge demon is running as a background process. The demon serves repositories that are stored in NorStore's project work space in /projects/NS2345K/svn. The svn repositories receive each a URL svn://noresg.norstore.no/<repository name>.

Prerequisites for creating and managing repositories

To create and manage a repository, you must

have a user account at NorStore

be member in the ns2345k group

The creator of a repository has the full flexibility to grant remote read/write access to external users. Once the repository is create, the use of the repository does not require a NorStore account. The repository creator can define svn users (an svn user consists of a user-name with corresponding password) that in general have no relation to NorStore user accounts.

To start and stop the svn server, your NorStore user must in addition have access to noresg.norstore.no. Currently, this group contains following people: Alf Grini, Ingo Bethke, Thierry Toutain and Martin King.

Creating a new repository

Log on to norstore.uio.no via ssh.

Change directory to /projects/NS2345K/svn.

Create a new svn repository with

svnadmin create testrepo

where testrepo is to be replaced with a name of your choice.

The new repository is now set up in /projects/NS2345K/svn/testrepo.

Customizing access rights

Edit testrepo/conf/svnserve.conf for general customisation of access rights. IMPORTANT: Make sure to remove all leading blanks when activating an option.

The default is read/write access for authenticated users and no access for anonymous.

To limited access to read for authenticated users, change

# auth-access = write

to

auth-access = read

To grant anonymous read, change

# anon-access = none

to

anon-access = read

The users of the repository are defined in testrepo/conf/passwd with user name and password, e.g.

[users]
harry = harryssecret
sally = sallyssecret
guestuser = friendly

To activate the customisation, edit svnserve.conf and uncomment the line

# password-db = passwd

to

password-db = passwd

Further fine tuning of access rights can be done in testrepo/conf/authz. E.g.,

[/projects/NS2345K/svn/testrepo]
guestuser = r

limits the access of the user guest-user to read-only access. The authz customisation is activated in svnserve.conf by uncommenting

# authz-db = authz

to

authz-db = authz

Taking a repository online/offline

Log on to noresg.norstore.uio.no via ssh.

To take a repository with name testrepo online, do

svnserve -d -r /projects/NS2345K/svn/testrepo --log-file /projects/NS2345K/svn/testrepo/svnserve.log --pid-file /projects/NS2345K/svn/testrepo/svnserve.pid

An svnserve demon has now been started as a background process on noresg.norstore.uio.no. The process id is logged in /projects/NS2345K/svn/testrepo/svnserve.pid.

To take the repository offline again, do

kill `cat /projects/NS2345K/svn/testrepo/svnserve.pid`

Remote access to repository

After taking the repository online, the URL of the repository testrepo is svn://noresg.norstore.uio.no/testrepo

To checkout the repository, do

svn co svn://noresg.norstore.uio.no/testrepo

Change directory to testrepo with

cd testrepo

Create a dummy file with

echo test > README

Commit the repository with

svn commit -m "my commit message"