import org.eclipse.jgit.errors.TransportException;
import org.eclipse.jgit.internal.JGitText;
import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.util.FS;
/**
* The base class for transports that use SSH protocol. This class allows
sch = SshSessionFactory.getInstance();
}
+ /**
+ * Create a new transport instance without a local repository.
+ *
+ * @param uri the URI used to access the remote repository. This must be the
+ * URI passed to {@link #open(URIish)}.
+ * @since 3.5
+ */
+ protected SshTransport(URIish uri) {
+ super(uri);
+ sch = SshSessionFactory.getInstance();
+ }
+
/**
* Set SSH session factory instead of the default one for this instance of
* the transport.
final int tms = getTimeout() > 0 ? getTimeout() * 1000 : 0;
+ final FS fs = local == null ? FS.detect() : local.getFS();
+
sock = sch
- .getSession(uri, getCredentialsProvider(), local.getFS(), tms);
+ .getSession(uri, getCredentialsProvider(), fs, tms);
return sock;
}
protected TcpTransport(Repository local, URIish uri) {
super(local, uri);
}
+
+ /**
+ * Create a new transport instance without a local repository.
+ *
+ * @param uri the URI used to access the remote repository. This must be the
+ * URI passed to {@link #open(URIish)}.
+ * @since 3.5
+ */
+ protected TcpTransport(URIish uri) {
+ super(uri);
+ }
}
throws NotSupportedException {
return new TransportGitAnon(local, uri);
}
+
+ @Override
+ public Transport open(URIish uri) throws NotSupportedException, TransportException {
+ return new TransportGitAnon(uri);
+ }
};
TransportGitAnon(final Repository local, final URIish uri) {
super(local, uri);
}
+ TransportGitAnon(final URIish uri) {
+ super(uri);
+ }
+
@Override
public FetchConnection openFetch() throws TransportException {
return new TcpFetchConnection();
throws NotSupportedException {
return new TransportGitSsh(local, uri);
}
+
+ @Override
+ public Transport open(URIish uri) throws NotSupportedException, TransportException {
+ return new TransportGitSsh(uri);
+ }
};
TransportGitSsh(final Repository local, final URIish uri) {
super(local, uri);
+ initSshSessionFactory();
+ }
+
+ TransportGitSsh(final URIish uri) {
+ super(uri);
+ initSshSessionFactory();
+ }
+
+ private void initSshSessionFactory() {
if (useExtSession()) {
setSshSessionFactory(new SshSessionFactory() {
@Override