private static void jumpToRevisionUnderProgress(@NotNull Project project,
                                                  @NotNull VcsLogUiEx logUi,
                                                  @NotNull Hash hash) {
    Future<Boolean> future = VcsLogNavigationUtil.jumpToHash(logUi, hash.asString(), false, true);
    if (!future.isDone()) {
      ProgressManager.getInstance().run(new Task.Backgroundable(project,
                                                                VcsLogBundle.message("vcs.log.show.commit.in.log.process", hash.toShortString()),
                                                                false/*can not cancel*/,
                                                                PerformInBackgroundOption.ALWAYS_BACKGROUND) {
        @Override
        public void run(@NotNull ProgressIndicator indicator) {
          try {
            future.get();
          }
          catch (CancellationException | InterruptedException ignored) {
          }
          catch (ExecutionException e) {
            LOG.error(e);
          }
        }
      });
    }
  }
private static void jumpToRevisionUnderProgress(@NotNull Project project,
                                                  @NotNull VcsLogUiEx logUi,
                                                  @NotNull Hash hash)