@RequiresEdt
  public static boolean collectFromCache(@NotNull AbstractVcs vcs,
                                         @NotNull FilePath filePath,
                                         @NotNull VcsHistorySessionConsumer partner) {
    VcsCachingHistory history = new VcsCachingHistory(vcs, Objects.requireNonNull(vcs.getVcsHistoryProvider()), vcs.getDiffProvider());

    VcsCacheableHistorySessionFactory<Serializable, VcsAbstractHistorySession> cacheableFactory = history.getCacheableFactory();
    if (cacheableFactory != null) {
      VcsAbstractHistorySession session = history.getHistoryCache().getSession(filePath, vcs.getKeyInstanceMethod(), cacheableFactory, false);
      if (session != null) {
        ProgressManager.getInstance().run(new Task.Backgroundable(vcs.getProject(),
                                                                  VcsBundle.message("loading.file.history.progress"),
                                                                  true) {
          @Override
          public void run(@NotNull ProgressIndicator indicator) {
            partner.reportCreatedEmptySession(session);
            partner.finished();
          }
        });
        return true;
      }
    }
    return false;
  }
@RequiresEdt
  public static boolean collectFromCache(@NotNull AbstractVcs vcs,
                                         @NotNull FilePath filePath,
                                         @NotNull VcsHistorySessionConsumer partner)