org.eclipse.jgit.transport

## Class TransportSftp

- java.lang.Object
- - org.eclipse.jgit.transport.Transport
  - - org.eclipse.jgit.transport.TcpTransport
    - - org.eclipse.jgit.transport.SshTransport
      - - 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

Methods
`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, 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.

If the transport has no local repository, the fetch connection can only be used for reading remote refs.

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