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 each receive an URL of form svn://noresg.norstore.no/<repository name>
Prerequisites
To create and manage a repository, you need a user account at NorStore which is member of the ns2345k project.
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 (consisting of a user-name with corresponding password) which 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.
Start/stop server
Log on to noresg.norstore.no
via ssh.
To take all svn repositories online, do
svnserve -d -r /projects/NS2345K/svn --log-file /projects/NS2345K/svn/svnserve.log --pid-file /projects/NS2345K/svn/svnserve.pid
An svnserve demon has now been started as a background process on noresg.norstore.no. The process id is logged in /projects/NS2345K/svn/svnserve.pid
.
To take all repositories offline again, do
kill `cat /projects/NS2345K/svn/svnserve.pid`
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 the repository name.
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
The user customisation is activated in svnserve.conf
by uncommenting
# password-db = passwd
to
password-db = passwd
Further fine tuning of access rights can be done in testrepo/conf/authz
. E.g.,
[/] harry = rw guestuser = r
gives harry
read/write access but limits the access of guestuser
to read-only. The authz
customisation is activated in svnserve.conf
by uncommenting
# authz-db = authz
to
authz-db = authz
Remote access
After taking the repository online, the URL of the repository testrepo
is svn://noresg.norstore.no/testrepo
To checkout the repository, do
svn co svn://noresg.norstore.no/testrepo
Change directory to testrepo
cd testrepo
Create a dummy file and mark it for adding
echo test > README svn add README
Commit the repository
svn commit -m "my commit message"