Subversion (svn)
Subversion
is a version-control management system. It's useful when more than one person is making changes to a set of files, whether those files are part of a software project or a
LaTeX
document.
The Nevis svn server is
svn.nevis.columbia.edu
; as of Jun-2010, this is the same machine as our web server.
Setting up a subversion repository
Only a
systems administrator
can set up a repository on the svn server. These are the questions you'll be asked:
- What will be the name of repository (e.g.,
atlas
, k2k
, sciboone
, nusong
). The name does not have to be in lower case, but it will simplify typing if it is.
- What accounts will be allowed to access your repository?
- These accounts are completely separate from the regular Linux cluster accounts; they can have any names and passwords you choose.
- Each account can have different access rights to the repository. The typical case is to have a general account or "anonymous" account for read-only access, and give read-write access to those accounts that might changes to the files.
- What will the account passwords be? These passwords should not be the same as your Linux cluster password:
- they will be sent over the network in clear text;
- the systems administrator
will have to type it into a plain text file. This file is not public, but the sysadmin
will know what it is.
- Do you want the repository viewable via ViewVC
?
- Click on the ViewVC
link to get an idea of how this will look.
- Some of the repositories can be browsed without a password (e.g., fmwk); others require an account to access.
- Note that you can't hide the existence of a repository, whether or not it can be browsed.
- If you wish to restrict web access to your repository, you select which accounts can access the web page.
- Typically, we set up web access to be restricted to the same account name/password combination with read-only access to the repository via svn.
- There's no direct link between the svn and ViewVC access; different accounts and passwords can be created for each one.
- Unless you explicitly state otherwise, your repository will be created with the
tags
, branches
, and trunks
sub-directories as recommended by the Subversion documentation
.
Using a subversion repository
The complete (and nicely-written) Subversion documentation is available
on-line
.
Just to get you started: If your repository is called
magenta
, and you have a bunch of files in
~/magenta
that you want to use to initially populate the repository, the command would be:
cd ~/magenta
svn import . svn://svn.nevis.columbia.edu/magenta/trunk
You will be prompted for an account name and password with write access.
For someone else to get a copy of those files in their own area, they might use:
cd <where they want your stuff>
svn checkout svn://svn.nevis.columbia.edu/magenta/trunk
They would be prompted for an account and password that had read access.
After they made changes to the files, they could update the repository with:
svn commit -m "The reason for these changes"
You could then update your copy of the files with the changes they made:
svn update
For more information,
chapter 2
of the
manual
has everything you're likely to need.
Viewing a subversion repository
The URL of the web viewer is
http://svn.nevis.columbia.edu/viewvc
. Note that most of the repositories at Nevis are password-protected.