We are in the process of retiring the SVN service at the beginning of 2015. Please use GitHub instead.
The Academic Computing Subversion hosting service is a tool that provides SEAS users, groups, and labs secure, manageable, and centralized access to Subversion repositories. These repositories can be public or private, and control can be managed as needed by their owners.
A "repository group" is a collection of Subversion repositories managed by a particular person or group.
Anyone with an active SEAS account may request a Subversion repository group by sending email to email@example.com. In your email, please specify the name you would like for the repository group. This may be your username, or it may be the name of a project or research group.
Once your repository group has been created, we will send you an email with the command necessary to check out the administrative repository. For a repository group named "bigproject", the command would look like this:
svn co https://source.seas.harvard.edu/svn/bigproject/admin/
This would create a directory called
admin in your current directory with the contents of the administrative repository.
The admin repository is a meta-repository that allows you to control your Subversion repository group. The admin repository contains the following files and directories:
You add new repositories to your repository group by adding new stanzas to the
authz file and committing the changes. For example, to add a repository called "niftycode" to your "bigproject" repository group, you would add the following to your
[niftycode:/] lars = rw
This grants read/write (
rw) access to all of the
niftycode repository to user
lars. When you commit this change to the server, the server will create the
niftycode repository if it does not already exist.
Note that there is no way to delete repositories. This is safety measure to prevent accidental typos from causing loss of data. If you remove a repository from your
authz file, you can always put it back at a later date to restore access to the data.
You control access to repositories by editing the
authz file in your administrative repository.
To grant a user "alice" read access to your
documents repository, you might modify the corresponding entry in your
authz file from this:
[documents:/] lars = rw
To look like this:
[documents:/] lars = rw alice = r
alice the ability to view all of the
documents repository. If instead you wanted
alice to have access to only the
unclassified directory of the repository, you would instead modify your
authz file to look like this:
[documents:/] lars = rw [documents:/unclassified/] alice = r
If you will be collaborating with someone from outside of SEAS, you may to create a local account for them in your repository group. The
htpasswd file is where you control local users and groups. The file is a list of lines of the form:
Where password is a password hash. You will typically manage entries in this file using the
htpasswd program, which is part of a standard Apache install. If you do not have access to this program on your local computer, you can connect to
login.seas.harvard.edu and generate entries there:
-noption, like this:
htpasswd -n -m firstname.lastname@example.org
htpasswdwill emit a line similar to the following:
htpasswdfile and commit the changes.
When selecting usernames, we encourage you to always use a person's email address.
Once you have created the user account, granting access is the same as described in the previous section. For example, you might modify your
authz file to look like this:
[documents:/] lars = rw email@example.com = r
If you want to receive an email message when someone commits changes to a repository, you may set the
seas:review property on the repository root directory to a list of email addresses. For example:
$ cd myproject $ svn propedit seas:review . ...make your changes... $ svn ci -m 'added reviewers'