@Override
  public Object execute(ExecutionEvent event) throws ExecutionException {
    final Repository repository = getRepository(true, event);
    // assert all resources map to the same repository
    if (repository == null) return null;
    final IResource[] resources = getSelectedResources(event);

    IWorkbenchPage workBenchPage =
        HandlerUtil.getActiveWorkbenchWindowChecked(event).getActivePage();
    try {
      CompareUtils.compare(
          resources, repository, Constants.HEAD, Constants.HEAD, true, workBenchPage);
    } catch (IOException e) {
      Activator.handleError(UIText.CompareWithRefAction_errorOnSynchronize, e, true);
    }

    return null;
  }