org.eclipse.jgit.transport
Class TransportSftp

java.lang.Object
  extended by org.eclipse.jgit.transport.Transport
      extended by org.eclipse.jgit.transport.TcpTransport
          extended by org.eclipse.jgit.transport.SshTransport
              extended by org.eclipse.jgit.transport.TransportSftp
All Implemented Interfaces:
WalkTransport

public class TransportSftp
extends SshTransport
implements WalkTransport

Transport over the non-Git aware SFTP (SSH based FTP) protocol.

The SFTP transport does not require any specialized Git support on the remote (server side) repository. Object files are retrieved directly through secure shell's FTP protocol, making it possible to copy objects from a remote repository that is available over SSH, but whose remote host does not have Git installed.

Unlike the HTTP variant (see TransportHttp) we rely upon being able to list files in directories, as the SFTP protocol supports this function. By listing files through SFTP we can avoid needing to have current objects/info/packs or info/refs files on the remote repository and access the data directly, much as Git itself would.

Concurrent pushing over this transport is not supported. Multiple concurrent push operations may cause confusion in the repository state.

See Also:
WalkFetchConnection

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.jgit.transport.Transport
Transport.Operation
 
Field Summary
 
Fields inherited from class org.eclipse.jgit.transport.Transport
DEFAULT_FETCH_THIN, DEFAULT_PUSH_THIN, local, REFSPEC_PUSH_ALL, REFSPEC_TAGS, uri
 
Method Summary
 FetchConnection openFetch()
          Begins a new connection for fetching from the remote repository.
 PushConnection openPush()
          Begins a new connection for pushing into the remote repository.
 
Methods inherited from class org.eclipse.jgit.transport.SshTransport
close, getSession, getSshSessionFactory, setSshSessionFactory
 
Methods inherited from class org.eclipse.jgit.transport.Transport
applyConfig, fetch, findRemoteRefUpdatesFor, findRemoteRefUpdatesFor, getCredentialsProvider, getOptionReceivePack, getOptionUploadPack, getPackConfig, getTagOpt, getTimeout, getTransportProtocols, getURI, isCheckFetchedObjects, isDryRun, isFetchThin, isPushThin, isRemoveDeletedRefs, open, open, open, open, open, open, open, openAll, openAll, openAll, openAll, push, register, setCheckFetchedObjects, setCredentialsProvider, setDryRun, setFetchThin, setOptionReceivePack, setOptionUploadPack, setPackConfig, setPushThin, setRemoveDeletedRefs, setTagOpt, setTimeout, unregister
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

openFetch

public FetchConnection openFetch()
                          throws TransportException
Description copied from class: Transport
Begins a new connection for fetching from the remote repository.

Specified by:
openFetch in class Transport
Returns:
a fresh connection to fetch from the remote repository.
Throws:
TransportException - the remote connection could not be established.

openPush

public PushConnection openPush()
                        throws TransportException
Description copied from class: Transport
Begins a new connection for pushing into the remote repository.

Specified by:
openPush in class Transport
Returns:
a fresh connection to push into the remote repository.
Throws:
TransportException - the remote connection could not be established


Copyright © 2013. All Rights Reserved.