1 package com.proalpha.pds.gitutils.cherrypick;
3 import java.io.IOException;
4 import java.lang.reflect.InvocationTargetException;
5 import java.util.Arrays;
8 import org.eclipse.core.runtime.jobs.ISchedulingRule;
9 import org.eclipse.core.runtime.jobs.Job;
10 import org.eclipse.egit.core.internal.job.RuleUtil;
11 import org.eclipse.jface.dialogs.MessageDialog;
12 import org.eclipse.jface.wizard.Wizard;
13 import org.eclipse.jgit.api.Git;
14 import org.eclipse.jgit.api.errors.GitAPIException;
15 import org.eclipse.jgit.lib.Repository;
16 import org.eclipse.jgit.revwalk.RevCommit;
17 import org.eclipse.swt.custom.BusyIndicator;
18 import org.eclipse.swt.widgets.Display;
20 import com.proalpha.git.PaGit;
26 @SuppressWarnings(
"restriction")
31 private Repository targetRepository;
32 private List<RevCommit> sourceCommits;
46 return cherryPickSettings;
54 cherryPickSettings.setTargetRepository(repository.getDirectory().toString());
56 this.targetRepository = repository;
59 cherryPickSettings.setTargetRepository(repository.getDirectory().toString());
60 PaGit.init(
new Git(targetRepository));
69 public boolean performFinish() {
72 CherryPick.getInstance().createCherryPickCommand(cherryPickSettings);
73 }
catch (IOException | GitAPIException e) {
74 MessageDialog.openError(getShell(), e.getCause().getMessage(),
75 Arrays.toString(e.getCause().getStackTrace()));
78 Job cherryPickJob =
new CherryPickJob(this.sourceCommits.size());
79 cherryPickJob.setUser(
true);
80 cherryPickJob.setRule(RuleUtil.getRule(CherryPick.getInstance().getCherryPickCommand().getRepository()));
81 cherryPickJob.schedule();
92 public void addPages() {
103 cherryPickSettings.getSourceBranch(), cherryPickSettings.getSourceIssue());
106 ISchedulingRule rule = op.getSchedulingRule();
108 Job.getJobManager().beginRule(rule,
null);
110 }
catch (InvocationTargetException e) {
111 MessageDialog.openError(getShell(), e.getCause().getMessage(),
112 Arrays.toString(e.getCause().getStackTrace()));
114 Job.getJobManager().endRule(rule);
117 BusyIndicator.showWhile(Display.getCurrent(), r);
118 this.sourceCommits = op.getOperationResult();
119 comPage.setCommitsfound(this.sourceCommits);
120 return !this.sourceCommits.isEmpty();
List< RevCommit > getSourceCommits()
CherryPickSettings getSettings()
CherryPickWizard(Repository repository)