Difference between revisions of "Subversion Setup"

From PCGen
Jump to: navigation, search
(Added GNU/Linux details, reorganised the page a bit)
(SVN+SSH Access)
Line 19: Line 19:
  
 
It is possible to use SSH to get the repository simply with read only access. The command to get the trunk is:
 
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
+
  <nowiki>svn checkout svn://svn.code.sf.net/p/pcgen/code/Trunk pcgen-trunk</nowiki>
  
 
To get a read/write access, the command, where USERNAME has to be changed to your Sourceforge account id is:
 
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
+
  <nowiki>svn checkout --username=USERNAME svn+ssh://USERNAME@svn.code.sf.net/p/pcgen/code/Trunk pcgen-trunk</nowiki>
  
 
It will be asking your Sourceforge password.
 
It will be asking your Sourceforge password.
Line 101: Line 101:
 
  ssh-keygen
 
  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.
 
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):
 
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
 
  ssh-copy-id USERNAME@svn.code.sf.net
 +
  
 
Then you can use this command to grab the project:
 
Then you can use this command to grab the project:
Line 109: Line 111:
  
 
In my case, my password to the id key was asked then my Sourceforge account key was asked.
 
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.
 
To be Done: testing commits with this configuration.
Line 115: Line 118:
  
 
[http://developer.apple.com/library/mac/#documentation/MacOSXServer/Conceptual/XServer_ProgrammingGuide/Articles/SSH.html Apple Developer SSH Page]
 
[http://developer.apple.com/library/mac/#documentation/MacOSXServer/Conceptual/XServer_ProgrammingGuide/Articles/SSH.html Apple Developer SSH Page]
 
  
 
=Related Articles=
 
=Related Articles=

Revision as of 09:02, 12 December 2012

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

On Beta projects (versus Classic projects), Sourceforge seems to be encouraging the use of svn+ssh rather than https. It seems that using http is still possible with Beta projects, maybe limited to read only access.

The command to get the trunk and put it in the pcgen-trunk directory is:

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

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

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

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

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


Run the ageant

  • 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

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

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.