SVN

From MozillaWiki
Revision as of 19:43, 25 October 2006 by Clouserw (talk | contribs) (→‎Notes)
Jump to navigation Jump to search

Mozilla has a SVN server set up to evaluate it's suitability to use to replace CVS (IIRC).

Get preed's take on it

How to get an account

File an IT ticket with your username on the CVS server and which project you're working on.

If you don't have a CVS account, you need to get a form filled out and attach your public key to the bug.

How to connect

Windows

Get PuTTY and TortoiseSVN.

  • Don't just download the PuTTY exe, use the installer package - it contains Pageant which you need and PuTTYgen which you may need to convert your SSH key.

Fire up Pageant. Right click on the icon in your system tray and click "add key." browse too your private key and select it.

Right click on the icon in your system tray and select "new session."

  • Host name = svn.mozilla.org
  • Port = 22
  • Protocol = SSH

Connection -> Data

  • Auto-login username = your email address

Connection -> Data -> Auth

  • Browse to your private key for authentication

Go back to session, enter a name for your session (mozillasvn is good) and click save.

Click Open to test the connection. You should get something like:

Using username "yourname@youremail.tld".
Authenticating with public key "name-of-your-key" from agent
Last login: last login date

If you get that far, things are good, type exit and terminate the connection.

TortoiseSVN -> settings -> Network. Make it an empty box where it asks you to specify the SSH client. I'm not sure why I did this, but it works for me.

SVN checkout from svn+ssh://nameofyourputtysession/addons/

If this doesn't work, hop on IRC and we'll see what we can do for you. If you work out more solutions, please add them to this page.

Linux

Install a package that works for you. If you're on debian or ubuntu `apt-get install subversion` will handle all this for you.


How to Use SVN

Subversion is designed so that a conversion from CVS is as painless as possible. This is a short introduction to some basic commands - please read the "Notes" section below for more useful links.

checkout (co)

(documentation)

Usage: svn co <source> <dest>

SVN bases it's repositories on URLs, so to check out code, you'll need a URL. For example, to checkout the code for mozilla.com anonymously you could type:

svn co http://svn.mozilla.org/projects/mozilla.com/trunk/ mozilla.com/

or if you have an account:

svn co svn+ssh://svn.mozilla.org/projects/mozilla.com/trunk/ mozilla.com/

By checking out over ssh, you'll be able to commit your changes.

commit (ci)

(documentation)

Usage: svn commit [file [file...]]

Once your code is checked out, you can commit your changes back to the repository. This command takes an optional list of files or directories to commit, if you only want to commit some changes. An example:

svn commit

If you'd like to add a comment and commit all in one line, you can try this command:

svn commit -m "Commit message here"

status

(documentation)

Usage: svn status [file [file...]]

Regarding commands, this is one of the largest differences from CVS. Instead of having to update your tree to check the status of files, SVN has this command which will list the differences without affecting your files. See the status documentation page for what the letters mean.

svn status

update

(documentation)

Usage: svn update [file [file...]]

This will pull any new changes from the repository and merge them into your local files.

svn update

Notes

This is a really brief overview, and if you'd like further reading, please check out the following: