@NotNull
  public Map<VirtualFile, RepositoryLocation> getRoots() {
    LOG.debug("Collecting roots for " + myVcs);
    // TODO: It is not quite clear why using just ProjectLevelVcsManager.getRootsUnderVcs() is not sufficient
    List<VirtualFile> roots = getRootsFromMappings();
    ContainerUtil.addAll(roots, myPlManager.getRootsUnderVcs(myVcs));

    logRoots("Candidates", roots);

    roots.removeIf(file -> getLocation(file) == null);

    logRoots("Candidates with repository location", roots);

    Map<VirtualFile, RepositoryLocation> result = StreamEx.of(myVcs.filterUniqueRoots(roots, identity()))
      .distinct()
      .mapToEntry(this::getLocation)
      .nonNullValues()
      .toMap();
    logRoots("Unique roots", result.keySet());
    return result;
  }
@NotNull
  public Map<VirtualFile, RepositoryLocation> getRoots()