Subversion Setup (deprecated)

From PCGen Wiki
Revision as of 15:41, 17 December 2012 by LegacyKing (talk | contribs) (Remove the HTTPS as it doesn't meet the needs of our team)
Jump to: navigation, search

Introduction

Subversion is used as the version control system for the sources of the project — it holds all of the program source code and data that make up PCGen. It allows us to track changes in the various files, share our work with each other and to coordinate our activity in a single location.

Developers use a subversion client to download the sources (called checkout) and update the sources with changes (called commit). The official site propose binaries or links to them for many operating systems. Most GNU/Linux distributions propose it as a package; in Debian it is the <a href="apt:subversion>subversion package</a>. One commonly used Windows subversion client, TortoiseSVN, is described below. Most integrated development environments (IDEs) include Subversion support. In the case of Eclipse, it is by using the the subclipse plugin.

NEW Update with SF Upgrade

We've upgrade our Project to the Beta. In order to continue using the same tools and functionality we need everyone to switch to the SVN+SSH method.

SVN+SSH Access

It is possible to use SSH to get the repository simply with read only access. The command to get the trunk is:

svn checkout svn://svn.code.sf.net/p/pcgen/code/Trunk pcgen-trunk

Or for people that use a GUI interface the URL for that is:

svn://svn.code.sf.net/p/pcgen/code/Trunk

To get a read/write access, the command, where USERNAME has to be changed to your Sourceforge account id is:

svn checkout --username=USERNAME svn+ssh://USERNAME@svn.code.sf.net/p/pcgen/code/Trunk pcgen-trunk

or for the people thatuse a GUI client, the URL for checkout is:

svn+ssh://USERNAME@svn.code.sf.net/p/pcgen/code/Trunk

It will be asking your Sourceforge password.

It is also possible to use a SSH key to avoid sending your encrypted password over the network. It is more secure, because to access PCGen repository, they need a file on your computer, not just your password. If the SSH key file is protected by a password, the protection is more improved. The following paragraphs describe the procedure needed in order to use the key file.

On Windows

Install PuttyGen

puttygen.exe - http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe


Generate a SSH Key (file ends with .ppk)

  • run puttygen
  • Generate a New Key - SSH2
  • IN the comment section add 'sourceforgeUserId@shell.sourceforge.net'
  • OPTIONAL - You may set a passphrase, SF recommends it.
  • click the Save private key button
  • enter a filename for your new .ppk file when prompted
  • press Save
  • Copy the Public Key Information
  • Go to your SF Developer Account Services
  • Edit Keys
  • Paste your Public Key here


Install Pageant This is optional (See Alternative below)

pageant.exe - http://the.earth.li/~sgtatham/putty/latest/x86/pageant.exe


Run the ageant This is optional (See Alternative below)

  • double-click on pageant.exe
  • you should now see a computer with a black hat in the tray
  • Add your .ppk to the ageant
  • right-click on the computer with the black hat in your taskbar
  • select Add Key from the context menu
  • browse to your recently-created .ppk file and select it
  • click Open
  • enter your password when prompted (If you set the Passphrase earlier in this set up for your key, this is what it is asking for)
  • verify that your key has been added by double-clicking on the computer with the black hat

If you don't want to repeat this procedure after every reboot of your client, you should place Pageant in the auto-start group of your Windows installation. You can append the keys with complete paths as command line arguments to Pageant.exe.

Install Plink this is optional (See Alternative below)

plink.exe - http://the.earth.li/~sgtatham/putty/latest/x86/plink.exe


Install TortoiseSVN

TortoiseSVN download page


Configure TortoiseSVN

You need to tell TortoiseSVN to use TortoisePlink to handle SSH traffic. To do this see the following steps:

  • right-click on an explorer window somewhere
  • hover over TortoiseSVN in the context menu
  • select Settings from the sub-menu
  • select Network from the list on the left
  • under the SSH box in the right side, click the Browse... button
  • browse to and select TortoisePlink.exe (mine is in c:\Program Files\TortoiseSVN\bin\TortoisePlink.exe)
  • click Open
  • click Apply

ALTERNATIVE METHOD that does not require PLINK.exe or PAGEANT and works without fancy set up:

I prefer tortoisePlink as it doesn't pop up a command window and is so much easier to deal with. This ALSO works with any IDE you have set up, such as Eclipse.

  • Step 1: Install TortoiseSVN
  • Step 2: Open the TortoiseSVN Settings
  • Step 3: Under General Tab in the window is a 'Subversion Configuration File' with an 'Edit' button next to it. CLICK the EDIT Button
  • Step 4: Scroll down to 'TUNNELS'
  • Step 5: Enter This:
  ssh = $SVN_SSH "drive/path/to/TortoisePlink.exe" -i "drive/path/to/yourprivatekey.ppk"

On mine it looks like:

  ssh = $SVN_SSH "d:/Program Files/TortoiseSVN/bin/TortoisePlink.exe" -i "D:/My Documents/prvtKey.ppk"

Do NOT place any entry in your TortoiseSVN for SSH Client under NETWORK or it will bypass the configuration file.

If you have already created the key and placed a copy on Sourceforge you should be able to connect without entering any passwords.

On GNU/Linux

On top of subversion client, an ssh client is needed. OpenSSH is included in most distributions, on Debian, the package is openssh-client.

If you don’t have a key yet, create one with:

ssh-keygen

It will ask you where to store it (default is fine), and an eventual password. The public and private key will then be generated.


This command is used to copy the public key to an SSH server (in the case of the default location to store the key):

ssh-copy-id USERNAME@svn.code.sf.net


Then you can use this command to grab the project:

svn checkout --username=USERNAME svn+ssh://USERNAME@svn.code.sf.net/p/pcgen/code/Trunk pcgen-trunk

In my case, my password to the id key was asked then my Sourceforge account key was asked.


To be Done: testing commits with this configuration.

On Mac OS X

Apple Developer SSH Page

Related Articles

Using SVN

The Subversion command line client is not terribly hard to use either, especially if you are familiar with CVS. You can download binaries for various platforms, including Windows.

Note the section on that page that says that the Subversion development team does *not* directly support these binaries. They mean it. However, questions about these posted to the Subversion users mailing list are usually answered pretty quickly.


TortoiseSVN

TSVN is a GUI client for Subversion repositories. Before installing TSVN, please note that it is a Windows Explorer Shell extension, and as such, will not work on any other operating system.

Make sure you have version 3.0 or later of the Windows Installer. This should be included in Windows Update for both Windows XP and Windows 2000. If for some reason you are still stuck on Windows 2000 (or earlier!), and can't update to the latest Service Pack, you are out of luck. I don't know if TSVN will work on Windows NT or Windows 98.

  1. Close down all applications that might be running.
  2. Download the TortoiseSVN Program and the manual.
  3. Run the MSI.
  4. Restart your computer.
  5. Make sure you actually restarted your machine, not just logged off. TSVN is a shell extension, which means that you *must* restart your machine after installing.

After you've installed TSVN, your Windows Explorer right-click context menus will all have a new entry called "Tortoise SVN". Click this new entry to see the options available. Exactly how you will connect to a repository depends on how SourceForge has Subversion set up. I'll update this entry with more information when it becomes available.

TSVN uses it's own SSH client, based on PuTTY, so you don't have to have it installed separately. The first time you attempt to browse a repository or do a check out, it will ask you for your credentials. You have the option of saving those credentials for future sessions as well.

See the TSVN user's mailing list information page to subscribe to the mailing list. There are bunches of knowledgeable people there to help with virtually any problem you might have. Please make sure you follow proper nettiquette on this list, and research any questions you might have before posting something as a bug.

RapidSVN

If you are using an operating system other than Windows, and you want a GUI client, there is a cross platform GUI client called RapidSVN, but I have no experience, good or bad, with that program.

Subclipse

There is also an Eclipse plug-in that is highly thought of, see Basic Developer Setup for details.