Hello Charles,
I'm relatively new to the project, and I can't answer the question why SVNKit 
switched from JSch (hope my colleagues will give you the answer),
but I think I can answer the last 2 questions.

There's an interface that represents a tunnel for svn+ssh connection: 
ISVNConnector. In 0.9.x versions it looked like 

public interface ISVNConnector {
    public void open(SVNRepositoryImpl repository) throws SVNException;
    public void close() throws SVNException;
    public OutputStream getOutputStream() throws IOException;
    public InputStream getInputStream() throws IOException;
}

In the latest trunk it has more methods:

public interface ISVNConnector {
    public void open(SVNRepositoryImpl repository) throws SVNException;
    public void handleExceptionOnOpen(SVNRepositoryImpl repository, 
SVNException exception) throws SVNException;
    public boolean isConnected(SVNRepositoryImpl repository) throws 
SVNException;
    public void close(SVNRepositoryImpl repository) throws SVNException;
    public boolean isStale();
    public OutputStream getOutputStream() throws IOException;
    public InputStream getInputStream() throws IOException;
}

0.9.x versions contain SVNJSchConnector implementation of this interface. I 
think if you implement all methods of the new ISVNConnector version and 
use it in ISVNConnectorFactory.DEFAULT instead of current SVNSSHConnector 
implementation based on trilead and remove/modify other 
SVNSSHConnector-specific calls
(all SSH connections in trilead are library-global and are kept in static 
variables in order to avoid connection establishing for each request, so 
there's some code that implements this functionality);
then you'll be able to use JSch with the latest version of SVNKit.

And one final warning: current trunk contains experimental code and it is not 
recommended to be used (with high probability it will corrupt your working 
copy). Instead use 1.7.x branch or 1.7.9 tag to apply 
changes.

--
Dmitry Pavlenko,
TMate Software,
http://subgit.com/ - git-svn bridge

> Howdy --
> 
> I'm interested in adding SSH agent support to SVNKit to allow a
> (potentially remote/forwarded) agent to perform authentication on behalf of
> the library.
> 
> Upstream support for this is available as an easy-to-integrate 3rd-party
> library for JSch; however, it appears that SVNKit has transitioned away
> from using JSch as its SSH implementation.
> 
> What's the history behind this? How much has the interface changed since
> the JSch implementation was canned? Could I expect to be able to resurrect
> the old implementation with a reasonable level of effort?

Reply via email to