How to Setup a Subversion Repository
This howto describes how to create a new repository at CSE
Server Options
There are a few options that need to be known before a new repository is created.
- Repository name (aka the project short name) : This must not contain spaces or special characters.
- SVN Authentication type : The SVN server supports either CSE account or Campus Kerberos account authentication not both.
- TRAC Authentication type : The TRAC server supports either CSE account or Campus Kerberos account authentication not both.
- Trac Admins : A list of usernames that have full access to TRAC including deleting wiki pages, etc.
Note: If using TRAC the source code will be visible directly on the internet.
Configure the mod_cas module
LoadModule cas_module /usr/lib/apache2/modules/mod_cas.so
<IfModule mod_cas.c>
CASHost cas.ucdavis.edu
CASPort 8443
CASLoginURL https://cas.ucdavis.edu:8443/cas/login
CASTrustedCerts /etc/ssl/certs/IPS-IPSCABUNDLE.CRT
CASMethod GET
CASValidate /cas/validate
</IfModule>
Create a Subversion Repository
Once you have the repository name (for example myproject) you are ready to create a repository. Use the following steps to create a new repo.
- Log in to the subversion server
ssh root@svn.cse.ucdavis.edu - Create a new repository under /svn:
# svnadmin create /svn/myproject
- Change ownership to the web server user:
# chown -R www-data /svn/myproject
- Edit the apache conf (/etc/apache/sites-enabled/svn.cse.ucdavis.edu) and add the following:
<Location /repo/myproject>
AuthType Kerberos
AuthName "My Project Repo"
KrbAuthRealm UCDAVIS.EDU
KrbServiceName HTTP
Krb5Keytab /etc/krb5.keytab
KrbMethodNegotiate on
KrbMethodK5Passwd on
KrbSaveCredentials off
require valid-user
</Location> - Check the config for syntax errors and restart apache:
# apache2ctl configtest
# apache2ctl restart - Test login, create the default directories, and import the trunk:
user@host $ svn co https://svn.cse.ucdavis.edu/repo/myproject .
user@host $ svn mkdir trunk
user@host $ svn mkdir tags
user@host $ svn mkdir branches
user@host $ svn commit -m "added base directories"
user@host $ cd ../myprojectsourcedir
user@host $ svn import -m "New import" . https://svn.cse.ucdavis.edu/repo/myproject/trunk
Create a new TRAC database (optional)
Trac is useful for browsing source code and project management. Here is how you create a trac database.
- Log in to the subversion server
ssh root@svn.cse.ucdavis.edu - Create a new trac db under /svn:
# trac-admin /trac/myproject initenv myproject sqlite:db/trac.db svn /svn/myproject /usr/share/trac/templates
- Correct the permissions to make anonymous users read-only and give admin privs to others:
# trac-admin /trac/myproject permission remove anonymous TICKET_CREATE WIKI_CREATE WIKI_MODIFY TICKET_MODIFY
# trac-admin /trac/myproject permission add adminusername WIKI_CREATE WIKI_MODIFY TICKET_CREATE TICKET_MODIFY TICKET_CHGPROP TICKET_APPEND - Change ownership to the web server user:
# chown -R www-data /trac/myproject
- Edit the apache conf (/etc/apache/sites-enabled/svn.cse.ucdavis.edu) and add the following:
<Location "/trac/myproject">
SetEnv TRAC_ENV "/trac/myproject"
</Location>
<Location "/trac/myproject/login">
AuthType CAS
AuthName "My Project Trac"
require valid-user
</Location> - Check the config for syntax errors and restart apache:
# apache2ctl configtest
# apache2ctl restart - Test the trac configuration by going to the URL: https://svn.cse.ucdavis.edu/trac/myproject. You should be able to see the source code after you click on "Browse Source".