These notes are my target to get into an "accessing svn from MyEclipse" page for official support. Much of this is cribbed from the SAIS technical-services wiki at

https://wikis-mit-edu.ezproxy.canberra.edu.au/confluence/display/CommonServices/MIT+Subversion+Repository+Environment+Setup#MITSubversionRepositoryEnvironmentSetup-Eclipse

  1. Install MyEclipse (we need a distribution method for this, and for the MIT license numbers).  For now it can be downloaded with a 30-day trial license from www.myeclipseide.com.
  2. The Subversive SVN client for Eclipse does not come with MyEclipse. This will be one non-MyEclipse-Standard plugin that we will need to support.
    1. In MyEclipse > Help > Software Updates > Find and Install, add two new "remote sites" for subversive plugin and subversive SVN connectors
    2. Polarion's most recent instructions for this are here: http://www.polarion.org/index.php?page=download&project=subversive
    3. Do not install everything on those remote sites.  Install only the "Subversive SVN Team Provider Plugin" and, under Subversive SVN Connectors, the "Subversive SVN Connectors" and "SVNKit 1.1.4 Implementation" features.
  3. In MyEclipse, open Window > Perspective > SVN Repository Browsing (or Window > Perspective > Other and select SVN Repository Exploring).
    1. In the "SVN Repositories" pane, context-click and select "new > repository location
    2. URL should be "svn+ssh://svn.mit.edu/[reposname]/ or svn+ssh://svn.mit.edu/[reposname]/[projectname] if you are loading one repos with separate projects
    3. "User" is your Kerberos username.  Do not fill in a password.
  4. When you open the new entry, you will be asked for a password.  Use your Kerberos password for now.  Do not tell the client to save the password.  It will be remembered for the lifetime of the Eclipse session, which should be convenient enough.

If you are using Ubuntu or another Linux distribution, you have the option of using actual Kerberos authentication, which is more secure.  To do this:

  1. Instead of SVNKit, install the "Native JavaHL 1.4.5 implementation" feature.  If you have already installed SVNKit, you can install the JavaHL connector and then change the connector type by opening Window->Preferences, opening the Team tree item, clicking on SVN, clicking on the SVN Connector tab, and changing the connector.
  2. You will need an installation Subversion 1.4.x with the JavaHL libraries.  On Ubuntu, you can make this happen with "sudo apt-get install libsvn-java".
  3. You may need to point the JVM at the JavaHL library.  On Ubuntu, edit eclipse.ini in your Eclipse installation directory and add a line "-Djava.library.path=/usr/lib/jni".  Alternatively, you can set the environment variable LD_LIBRARY_PATH to include the JavaHL library directory before starting Eclipse.
  4. Make sure to get Kerberos credentials with kinit before using Subversion inside Eclipse.

If you want to use real Kerberos authentication under Windows, it can be made to work, but (with the best option we currently know of) you will see annoying DOS windows pop up each time a connection is made to the server.  To make this work:

  1. When installing Subversive plugins, instead of SVNKit, install the "Native JavaHL 1.4.5 implementation" and "JavaHL 1.4.5 Win32 Binaries" features.  If you have already installed SVNKit, you can install those features and then change the connector to JavaHL by opening Window->Preferences, opening the Team tree item, clicking on SVN, clicking on the SVN Connector tab, and changing the connector.
  2. Install Kerberos for Windows and SecureCRT distributions from http://web.mit.edu.ezproxy.canberra.edu.au/software
  3. You must create a way for MyEclipse to start ssh.
    1. File based method: You must create a Subversion configuration file in C:\Documents and Settings[user]\Application Data\Subversion\config if one does not already exist.  Here is one way of doing this:
      1. Starting from My Computer, navigate to C:\Documents and Settings and navigate into the directory corresponding to your username.
      2. Select Tools > Folder Options, select the View tab, and click "Show hidden files and folders".
      3. Navigate into Application Data.
      4. If it does not already exist, create a new folder named Subversion. Navigate into it.
      5. If a file named config exists, edit it using Notepad. If it does not exist, create a new text document named config and edit it. If there is existing file contents, search for the "ssh =" line and edit it per below; otherwise write the following (note the forward slashes):

        [tunnels]
        ssh = C:/Program Files/SecureCRT/vsh.exe -x -l [your Kerberos ID] -auth gssapi

      6. If you created the file above, you must rename it from config.txt to config. Select Tools > Folder Options, select the View tab, and unselect "Hide extensions for known file types". Then rename the file from config.txt to config.
    2. Environment variable method:
      1. Open the control panel
      2. Select "System"
      3. Select "Advanced"
      4. Click on "Environment Variables"
      5. Click on "New" for your environment variables, not the system.
      6. Enter "SVN_SSH" as the variable name.
      7. For the variable value enter the following (note the forward slashes):

        C:/Program Files/SecureCRT/vsh.exe -x -l [your Kerberos ID] -auth gssapi

      8. Click OK as necessary and close the control panel.
  4. Make sure you have credentials (via the network identity manager) before using Subversion inside MyEclipse.
  • No labels

4 Comments

  1. Windows:

    The TortoisePlink.exe ssh that comes with ToirtiseSVN does not start a loca command shell. However it does not currently support gssapi authentication. However some people have been working on adding it. The source code is available.

    Plink.exe which is part of the putty distribution behaves the same way that vsh.exe does in terms of starting a command shell. There are versions of plink.exe that do support gssapi.

  2. There is a Windows version of PuTTY that includes GSSAPI support (via SSPI), and it includes plinkw.exe which is a non-console version of plink that does not open up a command window each time a connection is made.

    Since this uses SSPI, which is Microsoft's library that supports GSSAPI, this is really only applicable for developers that have their machines in the WIN.MIT.EDU domain.

    Download and install the PuTTY distribution available at http://rc.quest.com/topics/putty/.

    Set SVN_SSH=C:\Program Files\Quest Software\PuTTY\plinkw.exe -x -l pbh -k host/drugstore.mit.edu@ATHENA.MIT.EDU

    The "-k" option indicates the ticket that should be requested. Since svn.mit.edu is an alias, and SSPI is being used, if the full name of the ticket is not specified on the command line, the system will instead request HOST/DRUGSTORE.MIT.EDU@ATHENA.MIT.EDU, and Kerberos is case sensitive so you will end up with a "principal not found error".

    This set up is working well for me. Of course, someday svn.mit.edu will probably migrate to another hostname and I won't remember what I did to make this work.

  3. Subversive moved to eclipse.org in November 2007, the main site is http://www.eclipse.org/subversive/index.php
    and downloads from http://www.eclipse.org/subversive/downloads.php
    The version is 0.7, but it's newer than 1.1
    SvnKit 1.1.6 is working for me, but SvnKit 1.2.0 did not.

  4. On Mac OS X, change the connector type by opening MyEclipse->Preferences (the application menu on the far left), opening the Team tree item, clicking on SVN, clicking on the SVN Connector tab, and changing the connector.

    JavaHL is available through macports
    sudo port install subversion-javahlbindings
    but I haven't been able to get subversive to use it.