SVN with SmartSVN, IDEA and Eclipse

2 min read

In the last few days, I've been slowly converting from CVS to SVN as my primary repository.

Creating the repository was easy. Importing my existing projects, no so much. As far as I can tell there is no way to import projects using IntelliJ IDEA.

I've been using SmartCVS for years, so I figured it'd give SmartSVN a try. Importing existing projects was a breeze.

Next, I needed to figure out how to ignore certain directories (build, dist, etc.) in some of my projects. I also needed a way to do keyword substitutions, like CVS does.

I found a great resource here. I should have looked in SmartSVN for those options, they were pretty obvious. Unfortunately by then I was already back to using IDEA.

Once I understood what needed to be done, it was pretty straight forward.

Ignored Patterns

To define ignored patterns:

Keywords Substitution

To setup keywords substitution:

Smooth sailing from then on. I did find and reported a a problem with IDEA and private SSH keys. No answers yet.

Browsing

Both SmartSVN and IDEA support repository browsing:

I have to admit that IDEA's approach is nicer, somewhat similar to Eclipse.

Eclipse

So what about Eclipse? Well, as far as I can tell there is no way to set the properties. But that's the least of my problems. Using Subclipse with SSH is nightmarish.

Unless you are willing to setup a SSH private key with no passphrase, you'll have to deal with re-entering your passphrase every 3 seconds or so.

I use SecureCRT for my SSH needs. The latest version (5.1) includes an activator SSH agent to save passphrases between sessions. Now I just have to deal with new cmd windows popping up 2 or 3 times per command. Apparently the Subclipse folks haven't figure out how to access the SVN server in a single session.

There's gotta be a better way.

[@688]
And there is. As Jeff mentioned setting Subsclipe to use JavaSVN (under Windows->Preferences->Team->SVN) does the trick.
[@755]
As Mark pointed out there are ways to do most everything with Eclipse. I've updated the screenshots.

JavaSVN

The interesting part of all of this, is that SmartSVN, IDEA and Subclipse are all using JavaSVN underneath.

So far, apart from SmartSVN, they all have what I'd consider to be major startup issues.

Comments

4 (Closed)

Jeff

Feb 2, 2006

If you are using Subclipse I think you can have password protected keys and not have to re-enter your password every 3 seconds if you enable JavaSVN instead of JavaHL.
Mark Phippard

Feb 2, 2006

In Subclipse, if you use the JavaSVN adapter, you are prompted to supply your SSH credentials, including passphrase and key.

These are cached for the life of the session, or you can have them cached permanently in the Eclipse keyring.

Subclipse has a Team -> Set Property option and a Team -> Show Properties view.

There is also a built-in option for selecting an item and adding it to the svn:ignore property of the parent as well as a built-in option for setting the svn:keywords property.

These options are right on the Team menu and have always existed.
Mark Phippard

Feb 2, 2006

This is in reference to the comment about Subclipse not figuring out how to access the server in a single session.

None of the tools you reference talk directly to your Subversion server.

We all use a library.

All 3 use JavaSVN, but Subclipse also can use JavaHL which is the official library that is part of Subversion itself.

All communications happens inside these libraries.

JavaSVN maintains and reuses a single SSH session.

When you are using that in Subclipse you will only be prompted for your password one time per session.

This is probably what you see in SmartSVN and IntelliJ since they are also using JavaSVN.

JavaHL, and the Subversion library itself, uses whatever 3rd party SSH client you have configured.

This comes from the command line and Unix heritage of Subversion.

You could avoid the command windows by using a native Win32 SSH client, such as TortoisePlink which is installed with the TortoiseSVN Windows client.

It still does not maintain a session though.

This is really only an issue with svn+ssh://
Ignacio Coloma

Feb 3, 2006

Why don't you use SVN with SSL instead of SVN with SSH? It's how it was intended to be used :)