Search in sources :

Example 21 with RepositoryCommit

use of org.eclipse.egit.ui.internal.commit.RepositoryCommit in project egit by eclipse.

the class CommitEditorTest method openAllEditorPagesOnValidCommit.

@Test
public void openAllEditorPagesOnValidCommit() throws Exception {
    final AtomicReference<IEditorPart> editorRef = new AtomicReference<>();
    PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {

        @Override
        public void run() {
            RepositoryCommit repoCommit = new RepositoryCommit(repository, commit);
            editorRef.set(CommitEditor.openQuiet(repoCommit));
        }
    });
    assertNotNull(editorRef.get());
    IEditorPart editor = editorRef.get();
    assertTrue(editor instanceof CommitEditor);
    RepositoryCommit adaptedCommit = Utils.getAdapter(editor, RepositoryCommit.class);
    assertNotNull(adaptedCommit);
    assertEquals(commit, adaptedCommit.getRevCommit());
    assertEquals(repository.getDirectory(), adaptedCommit.getRepository().getDirectory());
    IEditorInput input = editor.getEditorInput();
    assertNotNull(input);
    SWTBotMultiPageEditor botEditor = bot.multipageEditorByTitle(input.getName());
    assertNotNull(botEditor);
    assertTrue(botEditor.getPageCount() > 1);
    for (String name : botEditor.getPagesTitles()) botEditor.activatePage(name);
    botEditor.close();
}
Also used : SWTBotMultiPageEditor(org.eclipse.swtbot.eclipse.finder.widgets.SWTBotMultiPageEditor) AtomicReference(java.util.concurrent.atomic.AtomicReference) IEditorPart(org.eclipse.ui.IEditorPart) CommitEditor(org.eclipse.egit.ui.internal.commit.CommitEditor) RepositoryCommit(org.eclipse.egit.ui.internal.commit.RepositoryCommit) IEditorInput(org.eclipse.ui.IEditorInput) Test(org.junit.Test)

Example 22 with RepositoryCommit

use of org.eclipse.egit.ui.internal.commit.RepositoryCommit in project egit by eclipse.

the class RepositoryCommitTest method testDiffs.

@Test
public void testDiffs() throws Exception {
    RepositoryCommit repoCommit = new RepositoryCommit(repository, commit);
    FileDiff[] diffs = repoCommit.getDiffs();
    assertNotNull(diffs);
    assertTrue(diffs.length > 0);
    for (FileDiff diff : diffs) assertNotNull(diff);
}
Also used : FileDiff(org.eclipse.egit.ui.internal.history.FileDiff) RepositoryCommit(org.eclipse.egit.ui.internal.commit.RepositoryCommit) Test(org.junit.Test)

Example 23 with RepositoryCommit

use of org.eclipse.egit.ui.internal.commit.RepositoryCommit in project egit by eclipse.

the class RepositoryCommitTest method testAdapters.

@Test
public void testAdapters() throws Exception {
    RepositoryCommit repoCommit = new RepositoryCommit(repository, commit);
    assertEquals(repository, repoCommit.getAdapter(Repository.class));
    assertEquals(commit, repoCommit.getAdapter(RevCommit.class));
}
Also used : Repository(org.eclipse.jgit.lib.Repository) RepositoryCommit(org.eclipse.egit.ui.internal.commit.RepositoryCommit) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Example 24 with RepositoryCommit

use of org.eclipse.egit.ui.internal.commit.RepositoryCommit in project egit by eclipse.

the class RepositoryCommitTest method testGetters.

@Test
public void testGetters() {
    RepositoryCommit repoCommit = new RepositoryCommit(repository, commit);
    assertEquals(repository, repoCommit.getRepository());
    assertEquals(commit, repoCommit.getRevCommit());
    assertNotNull(repoCommit.getRepositoryName());
    assertNotNull(repoCommit.abbreviate());
}
Also used : RepositoryCommit(org.eclipse.egit.ui.internal.commit.RepositoryCommit) Test(org.junit.Test)

Example 25 with RepositoryCommit

use of org.eclipse.egit.ui.internal.commit.RepositoryCommit in project egit by eclipse.

the class RevertHandler method execute.

@Override
public Object execute(final ExecutionEvent event) throws ExecutionException {
    List<RepositoryCommit> repoCommits = getCommits(event);
    Repository repo = repoCommits.get(0).getRepository();
    final Shell shell = getPart(event).getSite().getShell();
    final List<RevCommit> commits = new ArrayList<>();
    for (RepositoryCommit repoCommit : repoCommits) commits.add(repoCommit.getRevCommit());
    final RevertCommitOperation op = new RevertCommitOperation(repo, commits);
    Job job = new WorkspaceJob(MessageFormat.format(UIText.RevertHandler_JobName, Integer.valueOf(commits.size()))) {

        @Override
        public IStatus runInWorkspace(IProgressMonitor monitor) {
            try {
                op.execute(monitor);
                RevCommit newHead = op.getNewHead();
                List<Ref> revertedRefs = op.getRevertedRefs();
                if (newHead != null && revertedRefs.isEmpty())
                    showRevertedDialog(shell);
                if (newHead == null) {
                    RevCommit newestUnmergedCommit = null;
                    for (RevCommit commit : commits) {
                        if (!contains(revertedRefs, commit)) {
                            newestUnmergedCommit = commit;
                            break;
                        }
                    }
                    showFailureDialog(shell, newestUnmergedCommit, op.getFailingResult());
                }
            } catch (CoreException e) {
                Activator.handleError(UIText.RevertOperation_InternalError, e, true);
            }
            return Status.OK_STATUS;
        }

        @Override
        public boolean belongsTo(Object family) {
            if (JobFamilies.REVERT_COMMIT.equals(family))
                return true;
            return super.belongsTo(family);
        }
    };
    job.setUser(true);
    job.setRule(op.getSchedulingRule());
    job.schedule();
    return null;
}
Also used : ArrayList(java.util.ArrayList) WorkspaceJob(org.eclipse.core.resources.WorkspaceJob) RepositoryCommit(org.eclipse.egit.ui.internal.commit.RepositoryCommit) Repository(org.eclipse.jgit.lib.Repository) Shell(org.eclipse.swt.widgets.Shell) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) Ref(org.eclipse.jgit.lib.Ref) CoreException(org.eclipse.core.runtime.CoreException) Job(org.eclipse.core.runtime.jobs.Job) WorkspaceJob(org.eclipse.core.resources.WorkspaceJob) RevertCommitOperation(org.eclipse.egit.core.op.RevertCommitOperation) RevCommit(org.eclipse.jgit.revwalk.RevCommit)

Aggregations

RepositoryCommit (org.eclipse.egit.ui.internal.commit.RepositoryCommit)34 RevCommit (org.eclipse.jgit.revwalk.RevCommit)15 Repository (org.eclipse.jgit.lib.Repository)13 Test (org.junit.Test)10 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)7 IOException (java.io.IOException)6 ExecutionException (org.eclipse.core.commands.ExecutionException)6 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)6 ArrayList (java.util.ArrayList)5 ObjectId (org.eclipse.jgit.lib.ObjectId)5 UIText (org.eclipse.egit.ui.internal.UIText)4 RevWalk (org.eclipse.jgit.revwalk.RevWalk)4 IEditorPart (org.eclipse.ui.IEditorPart)4 CommitEditorInput (org.eclipse.egit.ui.internal.commit.CommitEditorInput)3 PartInitException (org.eclipse.ui.PartInitException)3 Map (java.util.Map)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2 IResource (org.eclipse.core.resources.IResource)2 CoreException (org.eclipse.core.runtime.CoreException)2 IAdaptable (org.eclipse.core.runtime.IAdaptable)2