@NotNull
  @Override
  public Pair<List<RepositoryLocationGroup>, List<RepositoryLocation>> groupLocations(@NotNull List<? extends RepositoryLocation> in) {
    final List<RepositoryLocationGroup> groups = new ArrayList<>();
    final List<RepositoryLocation> singles = new ArrayList<>();

    final MultiMap<Url, RepositoryLocation> map = new MultiMap<>();

    for (RepositoryLocation location : in) {
      SvnRepositoryLocation svnLocation = (SvnRepositoryLocation)location;
      Url root = svnLocation.getRepositoryUrl();
      if (root == null) {
        root = SvnUtil.getRepositoryRoot(myVcs, svnLocation.getURL());
      }
      if (root == null) {
        // should not occur
        LOG.info("repository root not found for location:" + location.toPresentableString());
        singles.add(location);
      } else {
        map.putValue(root, svnLocation);
      }
    }

    final Set<Url> keys = map.keySet();
    for (Url key : keys) {
      final Collection<RepositoryLocation> repositoryLocations = map.get(key);
      if (repositoryLocations.size() == 1) {
        singles.add(repositoryLocations.iterator().next());
      } else {
        final SvnRepositoryLocationGroup group = new SvnRepositoryLocationGroup(key, repositoryLocations);
        groups.add(group);
      }
    }
    return Pair.create(groups, singles);
  }
@NotNull
  @Override
  public Pair<List<RepositoryLocationGroup>, List<RepositoryLocation>> groupLocations(@NotNull List<? extends RepositoryLocation> in)