Top Description Methods
org.eclipse.jgit.transport

public Interface PushConnection

extends Connection
Known Direct Implementers
org.eclipse.jgit.transport.WalkPushConnection, org.eclipse.jgit.transport.BasePackPushConnection
Imports
java.io.OutputStream, java.util.Map, org.eclipse.jgit.errors.TransportException, org.eclipse.jgit.lib.ProgressMonitor

Lists known refs from the remote and sends objects to the remote.

A push connection typically connects to the git-receive-pack service running where the remote repository is stored. This provides a one-way object transfer service to copy objects from the local repository into the remote repository, as well as a way to modify the refs stored by the remote repository.

Instances of a PushConnection must be created by a org.eclipse.jgit.transport.Transport that implements a specific object transfer protocol that both sides of the connection understand.

PushConnection instances are not thread safe and may be accessed by only one thread at a time.

See Also
Transport

Method Summary

Modifier and TypeMethod and Description
public void
push(final ProgressMonitor
progress monitor to update the end-user about the amount of work completed, or to indicate cancellation. Implementors should poll the monitor at regular intervals to look for cancellation requests from the user.
monitor
,
final Map<String, RemoteRefUpdate>
map of remote refnames to remote refs update specifications/statuses. Can't be empty. This indicate what refs caller want to update on remote side. Only refs updates with org.eclipse.jgit.transport.RemoteRefUpdate.Status#NOT_ATTEMPTED should passed. Implementation must ensure that and appropriate status with optional message should be set during call. No refUpdate with org.eclipse.jgit.transport.RemoteRefUpdate.Status#AWAITING_REPORT or org.eclipse.jgit.transport.RemoteRefUpdate.Status#NOT_ATTEMPTED can be leaved by implementation after return from this call.
refUpdates
)

Pushes to the remote repository basing on provided specification.

public void
push(final ProgressMonitor
progress monitor to update the end-user about the amount of work completed, or to indicate cancellation. Implementors should poll the monitor at regular intervals to look for cancellation requests from the user.
monitor
,
final Map<String, RemoteRefUpdate>
map of remote refnames to remote refs update specifications/statuses. Can't be empty. This indicate what refs caller want to update on remote side. Only refs updates with org.eclipse.jgit.transport.RemoteRefUpdate.Status#NOT_ATTEMPTED should passed. Implementation must ensure that and appropriate status with optional message should be set during call. No refUpdate with org.eclipse.jgit.transport.RemoteRefUpdate.Status#AWAITING_REPORT or org.eclipse.jgit.transport.RemoteRefUpdate.Status#NOT_ATTEMPTED can be leaved by implementation after return from this call.
refUpdates
,
OutputStream
output stream to write sideband messages to
out
)

Pushes to the remote repository basing on provided specification.

Inherited from org.eclipse.jgit.transport.Connection:
closegetMessagesgetPeerUserAgentgetRefgetRefsgetRefsMap

Method Detail

pushback to summary
public void push(final ProgressMonitor monitor, final Map<String, RemoteRefUpdate> refUpdates) throws TransportException

Pushes to the remote repository basing on provided specification. This possibly result in update/creation/deletion of refs on remote repository and sending objects that remote repository need to have a consistent objects graph from new refs.

Only one call per connection is allowed. Subsequent calls will result in org.eclipse.jgit.errors.TransportException.

Implementation may use local repository to send a minimum set of objects needed by remote repository in efficient way. org.eclipse.jgit.transport.Transport#isPushThin() should be honored if applicable. refUpdates should be filled with information about status of each update.

Parameters
monitor:ProgressMonitor

progress monitor to update the end-user about the amount of work completed, or to indicate cancellation. Implementors should poll the monitor at regular intervals to look for cancellation requests from the user.

refUpdates:Map<String, RemoteRefUpdate>

map of remote refnames to remote refs update specifications/statuses. Can't be empty. This indicate what refs caller want to update on remote side. Only refs updates with org.eclipse.jgit.transport.RemoteRefUpdate.Status#NOT_ATTEMPTED should passed. Implementation must ensure that and appropriate status with optional message should be set during call. No refUpdate with org.eclipse.jgit.transport.RemoteRefUpdate.Status#AWAITING_REPORT or org.eclipse.jgit.transport.RemoteRefUpdate.Status#NOT_ATTEMPTED can be leaved by implementation after return from this call.

Exceptions
TransportException:
objects could not be copied due to a network failure, critical protocol error, or error on remote side, or connection was already used for push - new connection must be created. Non-critical errors concerning only isolated refs should be placed in refUpdates.
pushback to summary
public void push(final ProgressMonitor monitor, final Map<String, RemoteRefUpdate> refUpdates, OutputStream out) throws TransportException

Pushes to the remote repository basing on provided specification. This possibly result in update/creation/deletion of refs on remote repository and sending objects that remote repository need to have a consistent objects graph from new refs.

Only one call per connection is allowed. Subsequent calls will result in org.eclipse.jgit.errors.TransportException.

Implementation may use local repository to send a minimum set of objects needed by remote repository in efficient way. org.eclipse.jgit.transport.Transport#isPushThin() should be honored if applicable. refUpdates should be filled with information about status of each update.

Parameters
monitor:ProgressMonitor

progress monitor to update the end-user about the amount of work completed, or to indicate cancellation. Implementors should poll the monitor at regular intervals to look for cancellation requests from the user.

refUpdates:Map<String, RemoteRefUpdate>

map of remote refnames to remote refs update specifications/statuses. Can't be empty. This indicate what refs caller want to update on remote side. Only refs updates with org.eclipse.jgit.transport.RemoteRefUpdate.Status#NOT_ATTEMPTED should passed. Implementation must ensure that and appropriate status with optional message should be set during call. No refUpdate with org.eclipse.jgit.transport.RemoteRefUpdate.Status#AWAITING_REPORT or org.eclipse.jgit.transport.RemoteRefUpdate.Status#NOT_ATTEMPTED can be leaved by implementation after return from this call.

out:OutputStream

output stream to write sideband messages to

Exceptions
TransportException:
objects could not be copied due to a network failure, critical protocol error, or error on remote side, or connection was already used for push - new connection must be created. Non-critical errors concerning only isolated refs should be placed in refUpdates.
Since
3.0