Policy.bind("HistoryView.showDifferences"), SVNUIPlugin.getPlugin().getImageDescriptor(ISVNUIConstants.IMG_DIFF)) {
Policy.bind("HistoryView.showDifferences"), SVNUIPlugin.getPlugin().getImageDescriptor(ISVNUIConstants.IMG_MENU_DIFF)) {
  private IAction getShowDifferencesAsUnifiedDiffAction() {    if(showDifferencesAsUnifiedDiffAction == null) {      showDifferencesAsUnifiedDiffAction = new Action(          Policy.bind("HistoryView.showDifferences"), SVNUIPlugin.getPlugin().getImageDescriptor(ISVNUIConstants.IMG_DIFF)) { //$NON-NLS-1$        public void run() {          ISelection selection = getSelection();          if( !(selection instanceof IStructuredSelection))            return;          ILogEntry currentSelection = getLogEntry((IStructuredSelection) selection);          FileDialog dialog = new FileDialog(getSite().getShell(), SWT.SAVE);          dialog.setText("Select Unified Diff Output File");          dialog.setFileName("revision" + currentSelection.getRevision().getNumber() + ".diff"); //$NON-NLS-1$          String outFile = dialog.open();          if(outFile != null) {            final SVNUrl url = currentSelection.getResource().getUrl();            final SVNRevision oldUrlRevision = new SVNRevision.Number(currentSelection.getRevision().getNumber() - 1);            final SVNRevision newUrlRevision = currentSelection.getRevision();            final File file = new File(outFile);            if(file.exists()) {              if( !MessageDialog.openQuestion(getSite().getShell(), Policy.bind("HistoryView.showDifferences"), Policy                  .bind("HistoryView.overwriteOutfile", file.getName())))                return;            }            BusyIndicator.showWhile(Display.getCurrent(), new Runnable() {              public void run() {                try {                  ISVNClientAdapter client = SVNProviderPlugin.getPlugin().getSVNClientManager().createSVNClient();                  client.diff(url, oldUrlRevision, newUrlRevision, file, true);                } catch(Exception e) {                  MessageDialog.openError(getSite().getShell(), Policy.bind("HistoryView.showDifferences"), e                      .getMessage());                }              }            });          }        }      };    }    return showDifferencesAsUnifiedDiffAction;  }