====== RAD Lab SVN Repository ======
RAD Lab uses SVN along with SSH public keys to manage source code development and other documents that undergo revision.
===== Basics =====
Access to existing repositories are authenticated via SSH keys.
Currently, access to existing SVN repositories is provided by scm.millennium.berkeley.edu.
To access an existing repository:
$ svn command [options] svn+ssh://radsvn@scm.millennium.berkeley.edu/repo/
We currently only support access via svn+ssh.
=====Granting Access=====
Access to the repositories is controlled via SSH keys installed in the account.
If you //have// access to scm.millennium.berkeley.edu, you can give yourself or someone else access to the SVN repository by following these steps:
* Login as yourself into scm.millennium.berkeley.edu via ssh.
* Use the sudo command to edit ''~radsvn/.ssh/authorized_keys'' and add your or someone else's SSH **public** key to grant yourself or someone else access.
* sudo -u radsvn vi ~radsvn/.ssh/authorized_keys
* Note the format of already existing entries. A shell script may be written to automate some of this soon
* For local (EECS users, possibly ICSI as well), use their login for the argument to ''-tunnel-user=''.
* For non-local (Intel, MS, nVidia, others), use something descriptive like "billgates@microsoft".
* When I get creative, I may find a way to put all this under SVN as well
* Now test to make sure that you can do the following command from your workstation/laptop/etc
$ svn list [options] svn+ssh://radsvn@scm.millennium.berkeley.edu/repo/
If you //do not have// access to scm.millennium.berkeley.edu, ask someone in your research group who does to do this for you. You can also mail your SSH **public** key to [[radlab-support@cs.berkeley.edu]] asking for SVN access.
Note: By default, svn will look in ~/.ssh/id_rsa or ~/.ssh/id_dsa for your private ssh key. If you want to use a different key, you can use ssh-agent, but that is beyond the scope of this note.
=====Repository Organization=====
If you run svn list svn+ssh://radsvn@scm.millennium.berkeley.edu/repo
you will see the following:
$ svn list svn+ssh://radsvn@scm.millennium.berkeley.edu/repo
courses/
docs/
papers/
projects/
users/
vendor/
This is a proposed hierarchy, stolen borrowed from ICSI ParLab, to help keep things organized. Feel free to add to or modify it.
* /courses - for courses taught related to RAD Lab
* a separate directory for every class-semester combo
* name in form -- cs399-2007-fall
* /docs - Internal documents
* /papers - research papers/technical reports for submission/publication
* one directory for every paper
* name in form ---
* example: multicore-techrep-1998-finaldraft
* /projects
* local developed code (software, HW design layouts, etc)
* a separate directory for each project
* /templates
* templates for various types of documents, scripts, etc
* separate directory for each template, even if just a single file
* /vendor
* for code from 3rd parties that we might modify locally for our own usage
* separate directories for the current version and other versions in parallel: ''foobar-cc-current'' and ''foobar-cc-2.2'' for example