Source:
public Object execute(ExecutionEvent event) throws ExecutionException { final Repository repo = getRepository(true, event); IResource[] resources = getSelectedResources(event); if (repo == null) return null; CommitSelectionDialog dlg = new CommitSelectionDialog(getShell(event), repo, resources); if (dlg.open() != Window.OK) return null; if (resources.length == 1 && resources[0] instanceof IFile) { final IFile baseFile = (IFile) resources[0]; final ITypedElement base = SaveableCompareEditorInput .createFileElement(baseFile); final ITypedElement next; ITypedElement ancestor = null; RevCommit commonAncestor = null; try { RepositoryMapping mapping = RepositoryMapping .getMapping(resources[0]); next = getElementForCommit(mapping.getRepository(), mapping .getRepoRelativePath(baseFile), dlg.getCommitId()); commonAncestor = RevUtils.getCommonAncestor(repo, repo.resolve(Constants.HEAD), dlg.getCommitId()); if (commonAncestor != null) ancestor = CompareUtils.getFileRevisionTypedElement( mapping .getRepoRelativePath(baseFile), commonAncestor, mapping.getRepository()); } catch (IOException e) { Activator.handleError( UIText.CompareWithIndexAction_errorOnAddToIndex, e, true); return null; } final GitCompareFileRevisionEditorInput in = new GitCompareFileRevisionEditorInput( base, next, ancestor, null); in.getCompareConfiguration() .setRightLabel(dlg.getCommitId().name()); if (commonAncestor != null) in.getCompareConfiguration() .setAncestorLabel(commonAncestor.name()); CompareUI.openCompareEditor(in); } else { CompareTreeView view; try { view = (CompareTreeView) PlatformUI.getWorkbench() .getActiveWorkbenchWindow().getActivePage().showView( CompareTreeView.ID); view.setInput(resources, dlg.getCommitId().name()); } catch (PartInitException e) { Activator.handleError(e.getMessage(), e, true); } } return null; }

Target:
public Object execute(ExecutionEvent event) throws ExecutionException { final Repository repo = getRepository(true, event); IResource[] resources = getSelectedResources(event); if (repo == null) return null; CommitSelectionDialog dlg = new CommitSelectionDialog(getShell(event), repo, resources); if (dlg.open() != Window.OK) return null; if (resources.length == 1 && resources[0] instanceof IFile) { final IFile baseFile = (IFile) resources[0]; final ITypedElement base = SaveableCompareEditorInput .createFileElement(baseFile); final ITypedElement next; final ITypedElement ancestor; try { RepositoryMapping mapping = RepositoryMapping .getMapping(resources[0]); next = getElementForCommit(mapping.getRepository(), mapping .getRepoRelativePath(baseFile), dlg.getCommitId()); ancestor = CompareUtils.getFileRevisionTypedElementForCommonAncestor(mapping .getRepoRelativePath(baseFile), repo.resolve(Constants.HEAD), dlg.getCommitId(), repo); } catch (IOException e) { Activator.handleError( UIText.CompareWithIndexAction_errorOnAddToIndex, e, true); return null; } final GitCompareFileRevisionEditorInput in = new GitCompareFileRevisionEditorInput( base, next, ancestor, null); in.getCompareConfiguration() .setRightLabel(dlg.getCommitId().name()); CompareUI.openCompareEditor(in); } else { CompareTreeView view; try { view = (CompareTreeView) PlatformUI.getWorkbench() .getActiveWorkbenchWindow().getActivePage().showView( CompareTreeView.ID); view.setInput(resources, dlg.getCommitId().name()); } catch (PartInitException e) { Activator.handleError(e.getMessage(), e, true); } } return null; }