Skip redundant pieces
 

About EECS Subversion

Subversion is a popular open source client/server version control system (VCS). It was designed to be a drop-in replacement for an older system named CVS. CVS, and by extension Subversion, is one of the more widely used version control systems in the industry. It is because of this that we chose to host a subversion system at EECS.

The EECS Subversion system uses apache for hosting repositories. The repositories are located at https://svn.eecs.ku.edu. In your home directory you will find a folder named Repository. This is where the apache server will look for your Subversion files. You can access your repository using a web browser by going to https://svn.eecs.ku.edu/<your_username>/. Please note the absence of a tilde (~) in the url. Access to Subversion via http (non-SSL) is currently not supported.

You will first need to initialize the subversion repository before you can use it. You can do this by running the following commands from any of the EECS Linux terminals:

svnadmin create Repository
chmod -R 770 Repository

This will build the control files in $HOME/Repository that Subversion requires to host your projects and enable the apache webserver to access it.

The svnadmin command has quite a few options. You can explore them yourself by running the following command:

svadmin help

The next step to prepare for Subversion is to create an access control file for your repository. This allows you to fine tune access to your code. It can also allow you to grant other EECS users different levels of access to part of your repository if you are working in groups.

Access control for your repository is achieved by creating a text file in your Repository directory called “authorized_users”. A template of the most basic control file is below.

[<your_username>:/]
<your_username> = rw

If <your_username> is bob, then your template would look like this:

[bob:/]
bob = rw

This access control file gives bob complete read/write permissions to his entire repository. You can test that you have made your file correctly by attempting to browse your subversion repository using a web browser. If you can access your repository URL without any errors, then you have successfully initialized your repository.

Here is an example of bob giving read-only access to janet to a chess game he is making:

[bob:/]
bob = rw

[bob:/chess_game]
bob = rw
janet = r

You can learn more about subversion at the following link:

http://svnbook.red-bean.com/en/1.5/index.html

Advanced EECS subversion

When adding large source trees to the subversion server, or in the event of network connectivity issues, https may become unstable. In that case, you can directly upload to the servers over the network, rather than through the internet. When defining the transfer protocol, you can swap the 'https' protocol out for the 'file' protocol. This is a direct path to the repository, and is only available on the EECS network, however, it will be faster, and more reliable. When determining the path, keep in mind that

https://svn.eecs.ku.edu/<your_username>/<your_project>/

is the same as:

file:///path/to/your/home/directory/<your_username>/Repository/<your_project>

Take note of the third forward slash after file. This simply denotes the root directory of the Unix file system. To get the path to your home directory, run:

echo $HOME

So, If my username is “jhawk”, the output of echo $HOME is ”/users/000/j/jhawk/”, and I'm uploading to “example” then I substitute:

https://svn.eecs.ku.edu/jhawk/example

with

file:///users/000/j/jhawk/Repository/example
Miscellaneous Notes
  • The command line client on the linux workstations don't seem to recognize the certificate authority for the SSL certificate. Just select the option to permanently accept the certificate.
 
subversion.txt · Last modified: 2009/07/30 11:13 (external edit)