Example usage for org.eclipse.jgit.transport Transport setDryRun

List of usage examples for org.eclipse.jgit.transport Transport setDryRun

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport Transport setDryRun.

Prototype

public void setDryRun(boolean dryRun) 

Source Link

Document

Set dry run option for push operation.

Usage

From source file:org.eclipse.egit.core.op.PushOperation.java

License:Open Source License

/**
 * Execute operation and store result. Operation is executed independently
 * on each remote repository.//w w w. j a  va2  s.c om
 * <p>
 *
 * @param actMonitor
 *            the monitor to be used for reporting progress and responding
 *            to cancellation. The monitor is never <code>null</code>
 *
 * @throws InvocationTargetException
 *             Cause of this exceptions may include
 *             {@link TransportException}, {@link NotSupportedException} or
 *             some unexpected {@link RuntimeException}.
 */
public void run(IProgressMonitor actMonitor) throws InvocationTargetException {

    if (operationResult != null)
        throw new IllegalStateException(CoreText.OperationAlreadyExecuted);

    for (URIish uri : this.specification.getURIs()) {
        for (RemoteRefUpdate update : this.specification.getRefUpdates(uri))
            if (update.getStatus() != Status.NOT_ATTEMPTED)
                throw new IllegalStateException(CoreText.RemoteRefUpdateCantBeReused);
    }
    IProgressMonitor monitor;
    if (actMonitor == null)
        monitor = new NullProgressMonitor();
    else
        monitor = actMonitor;

    final int totalWork = specification.getURIsNumber() * WORK_UNITS_PER_TRANSPORT;
    if (dryRun)
        monitor.beginTask(CoreText.PushOperation_taskNameDryRun, totalWork);
    else
        monitor.beginTask(CoreText.PushOperation_taskNameNormalRun, totalWork);

    operationResult = new PushOperationResult();

    for (final URIish uri : specification.getURIs()) {
        final SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, WORK_UNITS_PER_TRANSPORT,
                SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
        Transport transport = null;
        try {
            if (monitor.isCanceled()) {
                operationResult.addOperationResult(uri, CoreText.PushOperation_resultCancelled);
                continue;
            }
            transport = Transport.open(localDb, uri);
            if (credentialsProvider != null)
                transport.setCredentialsProvider(credentialsProvider);
            transport.setTimeout(this.timeout);

            if (rc != null)
                transport.applyConfig(rc);
            transport.setDryRun(dryRun);
            final EclipseGitProgressTransformer gitSubMonitor = new EclipseGitProgressTransformer(subMonitor);
            final PushResult pr = transport.push(gitSubMonitor, specification.getRefUpdates(uri));
            operationResult.addOperationResult(uri, pr);
            monitor.worked(WORK_UNITS_PER_TRANSPORT);
        } catch (final NoRemoteRepositoryException e) {
            operationResult.addOperationResult(uri,
                    NLS.bind(CoreText.PushOperation_resultNoServiceError, e.getMessage()));
        } catch (final TransportException e) {
            operationResult.addOperationResult(uri,
                    NLS.bind(CoreText.PushOperation_resultTransportError, e.getMessage()));
        } catch (final NotSupportedException e) {
            operationResult.addOperationResult(uri,
                    NLS.bind(CoreText.PushOperation_resultNotSupported, e.getMessage()));
        } finally {
            if (transport != null) {
                transport.close();
            }
            // Dirty trick to get things always working.
            subMonitor.beginTask("", WORK_UNITS_PER_TRANSPORT); //$NON-NLS-1$
            subMonitor.done();
            subMonitor.done();
        }
    }
    monitor.done();
}

From source file:org.kuali.student.git.importer.JGitPushMain.java

License:Educational Community License

public static void push(Repository repo, String remoteName, List<RemoteRefUpdate> refsToUpdate,
        String remoteUserName, String remotePassword) throws IOException, URISyntaxException {

    ArrayList<PushResult> pushResults = new ArrayList<PushResult>(3);

    RemoteConfig config = new RemoteConfig(repo.getConfig(), remoteName);

    final List<Transport> transports;
    transports = Transport.openAll(repo, config, Transport.Operation.PUSH);

    for (final Transport transport : transports) {
        transport.setPushThin(false);//w ww. j  a  va2s. c  o  m
        transport.setOptionReceivePack(RemoteConfig.DEFAULT_RECEIVE_PACK);
        transport.setDryRun(false);

        configure(transport, remoteUserName, remotePassword);

        try {
            PushResult result = transport.push(new TextProgressMonitor(), refsToUpdate, System.out);
            pushResults.add(result);

        } catch (TransportException e) {
            throw new TransportException(e.getMessage(), e);
        } finally {
            transport.close();
        }
    }

}