public static void show(Project project, @NotNull IdeaGateway gw, @NotNull LocalHistoryFacade vcs) {
    List<RecentChange> cc = ProgressManager.getInstance().run(new Task.WithResult<>(project,
                                                                                    LocalHistoryBundle.message("recent.changes.loading"),
                                                                                    true) {
      @Override
      protected List<RecentChange> compute(@NotNull ProgressIndicator indicator) {
        return LocalHistoryCounter.INSTANCE.logLoadItems(project, LocalHistoryCounter.Kind.Recent, () -> {
          return RecentChangeKt.getRecentChanges(vcs, ReadAction.compute(() -> {
            return gw.createTransientRootEntry();
          }));
        });
      }
    });
    String title = LocalHistoryBundle.message("recent.changes.popup.title");
    if (cc.isEmpty()) {
      Messages.showInfoMessage(project, LocalHistoryBundle.message("recent.changes.to.changes"), title);
      return;
    }

    JBPopupFactory.getInstance().createPopupChooserBuilder(cc)
      .setSelectionMode(ListSelectionModel.SINGLE_SELECTION)
      .setRenderer(new RecentChangesListCellRenderer())
      .setTitle(title)
      .setItemChosenCallback(change -> new RecentChangeDialog(project, gw, change).show())
      .createPopup()
      .showCenteredInCurrentWindow(project);
  }
public static void show(Project project, @NotNull IdeaGateway gw, @NotNull LocalHistoryFacade vcs)