@Override
  public boolean performFinish() {
    // finish work in each page
    page.finish(new NullProgressMonitor());
    outgoingPage.finish(new NullProgressMonitor());

    String bundleFile = page.getBundleFile();

    // only use a target rev if checkbox was selected
    ChangeSet cs = outgoingPage.isRevisionSelected() ? outgoingPage.getRevision() : null;

    // base will be null if nothing was selected or checkbox is not selected
    ChangeSet base = page.getBaseRevision();

    // can be null or empty
    String repo = page.getUrlText();

    // create operation
    BundleOperation op = new BundleOperation(getContainer(), root, cs, base, bundleFile, repo);
    try {
      // and run it...
      getContainer().run(true, true, op);
    } catch (Exception e) {
      MercurialEclipsePlugin.logError(e);
      page.setErrorMessage(e.getLocalizedMessage());
      outgoingPage.setErrorMessage(e.getLocalizedMessage());
    }
    return super.performFinish();
  }