SVN with SmartSVN, IDEA and Eclipse
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.
To define ignored patterns:
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.
Both SmartSVN and IDEA support repository browsing:
I have to admit that IDEA's approach is nicer, somewhat similar to 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.
And there is. As Jeff mentioned setting Subsclipe to use JavaSVN (under
Windows->Preferences->Team->SVN) does the trick.
As Mark pointed out there are ways to do most everything with Eclipse. I've updated the screenshots.
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.
Feb 2, 2006
Feb 2, 2006
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.
Feb 2, 2006
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://
Feb 3, 2006