24
votes

I have two questions and some context.

I am installing Subclipse 1.4.x into Eclipse Ganymede and I'm thinking that I should use the SVNKit Adapter. I'm using Ubuntu 8.04 which comes with Subversion 1.4.x and since the JavaHL Adapter requires Subversion 1.5.x using a pure Java solution like SVNKit seems like a good solution.

Which pros and cons do you see with using the SVNKit Adapter?

I can't find any documentation on what the JNA Library, SVNKit Client Adapter and SVNKit Library actually provides. And I'm interested in knowing what I install. What do they provide?

alt text

2

2 Answers

26
votes

Feature-wise, both kits provide the same amount of functionality. SVNkit was specifically developed with Subclipse in mind, so no surprises there.

Speed-wide, they are also similar. This is no big surprise because Subversion is usually I/O bound (Waiting for the SVN server to deliever the data will always take longer than what the SVN client library does on your computer).

Subversion 1.5 has some drastic speed improvements but that doesn't apply in your case.

The main difference is that you don't need the correct version of javahl installed in your computer. For Linux, this is often a problem because it means you need to set up the env variable LIBRARY_PATH for Eclipse so the shared library can be loaded correctly plus you might need to compile the library yourself if you can't find a package which fits your needs. In your case, Ubuntu should come with a precompiled library but that library is for Subversion 1.5. It should fall back gracefully when you connect to a 1.4 server, though.

The Subclipse guys support SVNkit but I've had issues with it in the past (that was several years ago; I'm positive this has improved considerably since). They were fixed pretty fast, too.

All considered, I think you're better off with the SVNkit since it's way easier to setup.

[EDIT] As to "What should I download", I think you need everything below "SVNKit Adapter (optional)", that is all three components (see the SVNKit FAQ).

10
votes

I'd always recommend using JavaHL if possible. JavaHL uses the same native Subversion libraries as the command line client and so you get maximum compatibility. Of course, as you point out, using SVNKit is certainly easier. We do have an FAQ to help with getting JavaHL working though:

http://subclipse.tigris.org/wiki/JavaHL

As for the JNA library, I believe that SVNKit uses it for things that cannot easily be done from Java. For example, on Linux working with symlinks and setting permissions on files.