From CSEE Documentation
Revision as of 14:43, 8 January 2009 by Willm1 (talk) (Create description of how to do this)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

CS systems have the Subversion versioning system (similar to CVS) installed on them in /usr/bin/svn. Private SVN repositories are creatable by means described in the SVN book, but a method is also provided to create repositories that are publicly accessible over HTTP.

To share a repository in this way, first create it in a directory of your choosing.

willm1@linuxserver1:~$ mkdir svn
willm1@linuxserver1:~$ cd svn
willm1@linuxserver1:~/svn$ svnadmin create myrepo

This will create a directory myrepo/, and contents in that directory. This is a fully functional SVN repository:

willm1@linuxserver1:~/svn$ svn checkout file:///home/csee1/willm1/svn/myrepo ~/myrepo
Checked out revision 0.
willm1@linuxserver1:~/svn$ cd ~/myrepo
willm1@linuxserver1:~/myrepo$ echo 'Hello, World!' > greeting
willm1@linuxserver1:~/myrepo$ svn add greeting
A         greeting
willm1@linuxserver1:~/myrepo$ svn commit --message "Add a friendly greeting"
Adding         greeting
Transmitting file data .
Committed revision 1.

However, this is not yet accessible over the web; even if you put the repository in your web directory, browsing to this directory over HTTP will show the file contents of the SVN repository (README.txt, conf/, etc.), rather than the SVN contents. To make this happen, the web server needs to be informed that the myrepo directory contains SVN information, and SVN should be used to determine what is actually shown over the web. There is a web interface at that can be used to accomplish this. Go there, and log in using your UMBC username and password as normal. Under "CSEE Account", click on "Subversion". You should see a menu like this: File:Svn-repo.png In the box on the left, fill in the name that will be visible over HTTP. For example, myrepo would be a good choice for this repository, but if something more descriptive applies to your code you may choose whatever you like. In the box on the right, fill in the path to your repository, excluding the part which is your home directory. For example, the full path to the repository I created is /home/csee1/willm1/svn/myrepo, and my home directory is /home/csee1/willm1, so I would enter svn/myrepo in the box. Finally, click "Add" to make the changes take effect. Your repository will be exposed immediately, and the interface will look like this: File:Svn-repo-created.png You can click on the link under "URL" to take you directly to the repository. Congratulations, your repository is completely set up!


You may need to make sure that this directory is readable by the webserver. The web server currently runs with group id 48 (apache), so if you don't wish to give "o+rx" permissions on this directory you may use

chgrp -R apache ~/svn
chmod -R g+rx ~/svn

Otherwise, a simpler set of permissions can be given:

chmod -R o+rx ~/svn

Depending on your configuration, this step may not be necessary. If you run into a problem with this and are unable to make your repository visible, please submit a ticket detailing the problem via the interface.