use of org.eclipse.egit.core.op.PushOperationSpecification in project egit by eclipse.
the class PushOperationTest method createInvalidPushOperation.
private PushOperation createInvalidPushOperation() throws Exception {
// set up push with invalid URI to provoke an exception
PushOperationSpecification spec = new PushOperationSpecification();
// the remote is invalid
URIish remote = new URIish(INVALID_URI);
// update master upon master
Repository local = repository1.getRepository();
RemoteRefUpdate update = new RemoteRefUpdate(local, "HEAD", "refs/heads/test", false, null, null);
spec.addURIRefUpdates(remote, Collections.singletonList(update));
// now we can construct the push operation
PushOperation pop = new PushOperation(local, spec, false, 0);
return pop;
}
use of org.eclipse.egit.core.op.PushOperationSpecification in project egit by eclipse.
the class PushOperationTest method createPushOperation.
private PushOperation createPushOperation() throws Exception {
// set up push from repository1 to repository2
// we cannot re-use the RemoteRefUpdate!!!
PushOperationSpecification spec = new PushOperationSpecification();
// the remote is repo2
URIish remote = new URIish("file:///" + repository2.getRepository().getDirectory().toString());
// update master upon master
List<RemoteRefUpdate> refUpdates = new ArrayList<RemoteRefUpdate>();
RemoteRefUpdate update = new RemoteRefUpdate(repository1.getRepository(), "HEAD", "refs/heads/test", false, null, null);
refUpdates.add(update);
spec.addURIRefUpdates(remote, refUpdates);
// now we can construct the push operation
PushOperation pop = new PushOperation(repository1.getRepository(), spec, false, 0);
return pop;
}
use of org.eclipse.egit.core.op.PushOperationSpecification in project egit by eclipse.
the class PushTagsWizard method startPush.
private void startPush() throws IOException {
PushOperationResult result = confirmationPage.getConfirmedResult();
PushOperationSpecification pushSpec = result.deriveSpecification(confirmationPage.isRequireUnchangedSelected());
PushOperationUI pushOperationUI = new PushOperationUI(repository, pushSpec, false);
pushOperationUI.setCredentialsProvider(new EGitCredentialsProvider());
pushOperationUI.setShowConfigureButton(false);
if (confirmationPage.isShowOnlyIfChangedSelected())
pushOperationUI.setExpectedResult(confirmationPage.getConfirmedResult());
pushOperationUI.start();
}
use of org.eclipse.egit.core.op.PushOperationSpecification in project egit by eclipse.
the class PushWizard method createPushOperation.
private PushOperation createPushOperation(boolean calledFromRepoPage) {
try {
final PushOperationSpecification spec;
final RemoteConfig config = repoPage.getSelection().getConfig();
if (calledFromRepoPage) {
// obtain the push ref specs from the configuration
// use our own list here, as the config returns a non-modifiable
// list
final Collection<RefSpec> pushSpecs = new ArrayList<>();
pushSpecs.addAll(config.getPushRefSpecs());
final Collection<RemoteRefUpdate> updates = Transport.findRemoteRefUpdatesFor(localDb, pushSpecs, config.getFetchRefSpecs());
spec = new PushOperationSpecification();
for (final URIish uri : repoPage.getSelection().getPushURIs()) spec.addURIRefUpdates(uri, ConfirmationPage.copyUpdates(updates));
} else if (confirmPage.isConfirmed()) {
final PushOperationResult confirmedResult = confirmPage.getConfirmedResult();
spec = confirmedResult.deriveSpecification(confirmPage.isRequireUnchangedSelected());
} else {
final Collection<RefSpec> fetchSpecs;
if (config != null)
fetchSpecs = config.getFetchRefSpecs();
else
fetchSpecs = null;
final Collection<RemoteRefUpdate> updates = Transport.findRemoteRefUpdatesFor(localDb, refSpecPage.getRefSpecs(), fetchSpecs);
if (updates.isEmpty()) {
ErrorDialog.openError(getShell(), UIText.PushWizard_missingRefsTitle, null, new Status(IStatus.ERROR, Activator.getPluginId(), UIText.PushWizard_missingRefsMessage));
return null;
}
spec = new PushOperationSpecification();
for (final URIish uri : repoPage.getSelection().getPushURIs()) spec.addURIRefUpdates(uri, ConfirmationPage.copyUpdates(updates));
}
int timeout = Activator.getDefault().getPreferenceStore().getInt(UIPreferences.REMOTE_CONNECTION_TIMEOUT);
return new PushOperation(localDb, spec, false, timeout);
} catch (final IOException e) {
ErrorDialog.openError(getShell(), UIText.PushWizard_cantPrepareUpdatesTitle, UIText.PushWizard_cantPrepareUpdatesMessage, new Status(IStatus.ERROR, Activator.getPluginId(), e.getMessage(), e));
return null;
}
}
use of org.eclipse.egit.core.op.PushOperationSpecification in project egit by eclipse.
the class PushBranchWizard method startPush.
private void startPush() throws IOException {
PushOperationResult result = confirmationPage.getConfirmedResult();
PushOperationSpecification pushSpec = result.deriveSpecification(confirmationPage.isRequireUnchangedSelected());
PushOperationUI pushOperationUI = new PushOperationUI(repository, pushSpec, false);
pushOperationUI.setCredentialsProvider(new EGitCredentialsProvider());
pushOperationUI.setShowConfigureButton(false);
if (confirmationPage.isShowOnlyIfChangedSelected())
pushOperationUI.setExpectedResult(result);
pushOperationUI.start();
}
Aggregations