@NotNull
  public static CommittedChangeList getRemoteList(@NotNull CommittedChangesProvider provider,
                                                  @NotNull VcsRevisionNumber revision,
                                                  @NotNull VirtualFile nonLocal) throws VcsException {
    final RepositoryLocation location = provider.getForNonLocal(nonLocal);
    if (location == null) {
      throw new VcsException(VcsBundle.message("error.cant.get.local.file.for.non.local", nonLocal));
    }

    final String number = revision.asString();
    final ChangeBrowserSettings settings = provider.createDefaultSettings();
    //noinspection unchecked
    final List<CommittedChangeList> changes = provider.getCommittedChanges(settings, location, provider.getUnlimitedCountValue());
    for (CommittedChangeList change : changes) {
      if (number.equals(String.valueOf(change.getNumber()))) {
        return change;
      }
    }
    LOG.warn(String.format("Cannot load affected files for location '%s' in revision '%s' with limit %s (found %s)",
                           location, revision.asString(), provider.getUnlimitedCountValue(), changes.size()), new Throwable());
    throw new VcsException(VcsBundle.message("error.cant.load.affected.files", nonLocal.getPath(), revision.asString()));
  }
@NotNull
  public static CommittedChangeList getRemoteList(@NotNull CommittedChangesProvider provider,
                                                  @NotNull VcsRevisionNumber revision,
                                                  @NotNull VirtualFile nonLocal)