Class PushProcess

    • Field Detail

      • PROGRESS_OPENING_CONNECTION

        static final java.lang.String PROGRESS_OPENING_CONNECTION
        Task name for ProgressMonitor used during opening connection.
      • transport

        private final Transport transport
        Transport used to perform this operation.
      • connection

        private PushConnection connection
        Push operation connection created to perform this operation
      • toPush

        private final java.util.Map<java.lang.String,​RemoteRefUpdate> toPush
        Refs to update on remote side.
      • walker

        private final RevWalk walker
        Revision walker for checking some updates properties.
      • out

        private final java.io.OutputStream out
        an outputstream to write messages to
      • pushOptions

        private java.util.List<java.lang.String> pushOptions
        A list of option strings associated with this push
    • Constructor Detail

      • PushProcess

        PushProcess​(Transport transport,
                    java.util.Collection<RemoteRefUpdate> toPush,
                    PrePushHook prePush)
             throws TransportException
        Create process for specified transport and refs updates specification.
        Parameters:
        transport - transport between remote and local repository, used to create connection.
        toPush - specification of refs updates (and local tracking branches).
        prePush - PrePushHook to run after the remote advertisement has been gotten
        Throws:
        TransportException
      • PushProcess

        PushProcess​(Transport transport,
                    java.util.Collection<RemoteRefUpdate> toPush,
                    PrePushHook prePush,
                    java.io.OutputStream out)
             throws TransportException
        Create process for specified transport and refs updates specification.
        Parameters:
        transport - transport between remote and local repository, used to create connection.
        toPush - specification of refs updates (and local tracking branches).
        prePush - PrePushHook to run after the remote advertisement has been gotten
        out - OutputStream to write messages to
        Throws:
        TransportException
    • Method Detail

      • execute

        PushResult execute​(ProgressMonitor monitor)
                    throws NotSupportedException,
                           TransportException
        Perform push operation between local and remote repository - set remote refs appropriately, send needed objects and update local tracking refs.

        When Transport.isDryRun() is true, result of this operation is just estimation of real operation result, no real action is performed.

        Parameters:
        monitor - progress monitor used for feedback about operation.
        Returns:
        result of push operation with complete status description.
        Throws:
        NotSupportedException - when push operation is not supported by provided transport.
        TransportException - when some error occurred during operation, like I/O, protocol error, or local database consistency error.
      • isFastForward

        private boolean isFastForward​(ObjectId oldOid,
                                      ObjectId newOid)
                               throws TransportException
        Determines whether an update from oldOid to newOid is a fast-forward update:
        • both old and new must be commits, AND
        • both of them must be known to us and exist in the repository, AND
        • the old commit must be an ancestor of the new commit.
        Parameters:
        oldOid - ObjectId of the old commit
        newOid - ObjectId of the new commit
        Returns:
        true if the update fast-forwards, false otherwise
        Throws:
        TransportException
      • rejectAll

        private java.util.Map<java.lang.String,​RemoteRefUpdate> rejectAll()
      • modifyUpdatesForDryRun

        private void modifyUpdatesForDryRun()
      • updateTrackingRefs

        private void updateTrackingRefs()
      • getPushOptions

        public java.util.List<java.lang.String> getPushOptions()
        Gets the list of option strings associated with this push.
        Returns:
        pushOptions
        Since:
        4.5