|
|
Line 1: |
Line 1: |
| Mozilla has a SVN server set up to evaluate it's suitability to use to replace CVS (IIRC).
| |
|
| |
|
| [http://weblogs.mozillazine.org/preed/2006/08/subversive_subversion_conversi.html 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 [http://www.mozilla.org/hacking/form.html form] filled out and attach your public key to the bug.
| |
|
| |
| =How to connect=
| |
| ==Windows==
| |
| Get [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] and [http://tortoisesvn.net/ 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==
| |
| [http://subversion.tigris.org/project_packages.html 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)===
| |
| ([http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.checkout.html 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)===
| |
| ([http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.commit.html 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===
| |
|
| |
| ([http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.status.html 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
| |
| [http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.status.html status documentation]
| |
| page for what the letters mean.
| |
|
| |
| ''svn status''
| |
|
| |
| ===update===
| |
|
| |
| ([http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.update.html 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:
| |
|
| |
| * [http://svnbook.red-bean.com/en/1.2/index.html The complete free O'reilly book] (filled with great examples)
| |
| * [http://svnbook.red-bean.com/en/1.2/svn.forcvs.html A short appendix] from the book specifically for CVS users
| |
| * [http://svn.collab.net/repos/svn/trunk/doc/user/cvs-crossover-guide.html | Another great reference for CVS users]
| |
| * [http://www.onlamp.com/pub/a/onlamp/2004/08/19/subversiontips.html ONLamp.com's top tips] for CVS users
| |