private static @NotNull TextCompletionProvider getCompletionProvider(@NotNull Project project,
                                                                       @NotNull List<GitRepository> repositories,
                                                                       @NotNull Disposable disposable) {
    VcsLogManager logManager = VcsProjectLog.getInstance(project).getLogManager();
    if (logManager != null) {
      List<VirtualFile> roots = ContainerUtil.map(repositories, Repository::getRoot);
      DataPack dataPack = logManager.getDataManager().getDataPack();
      if (dataPack != DataPack.EMPTY) {
        VcsGoToRefComparator comparator = new VcsGoToRefComparator(dataPack.getLogProviders());
        return new MyVcsRefCompletionProvider(dataPack.getRefsModel(), roots, comparator);
      }
    }
    List<GitBranch> branches = ContainerUtil.concat(GitBranchUtil.getCommonLocalBranches(repositories),
                                                    GitBranchUtil.getCommonRemoteBranches(repositories));
    Future<Collection<GitTag>> tagsFuture = scheduleCollectCommonTags(repositories, disposable);
    return new MySimpleCompletionListProvider(branches, tagsFuture);
  }
private static @NotNull TextCompletionProvider getCompletionProvider(@NotNull Project project,
                                                                       @NotNull List<GitRepository> repositories,
                                                                       @NotNull Disposable disposable)