META TOPICPARENT |
name="Computing" |
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 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. |