public List queryHistory()

in src/org/jetbrains/tfsIntegration/core/tfs/VersionControlServer.java [760:813]


  public List<Changeset> queryHistory(final String workspaceName,
                                      final String workspaceOwner,
                                      final ItemSpec itemSpec,
                                      final String user,
                                      final VersionSpec itemVersion,
                                      final VersionSpec versionFrom,
                                      final VersionSpec versionTo,
                                      int maxCount,
                                      Object projectOrComponent, String progressTitle) throws TfsException {
    // TODO: slot mode
    // TODO: include allChangeSets

    List<Changeset> allChangeSets = new ArrayList<>();
    int total = maxCount > 0 ? maxCount : Integer.MAX_VALUE;
    final Ref<VersionSpec> versionToCurrent = new Ref<>(versionTo);

    while (total > 0) {
      final int batchMax = Math.min(256, total);

      Changeset[] currentChangeSets =
        TfsRequestManager.executeRequest(myServerUri, projectOrComponent, new TfsRequestManager.Request<Changeset[]>(progressTitle) {
          @Override
          public Changeset[] execute(Credentials credentials, URI serverUri, @Nullable ProgressIndicator pi) throws Exception {
            QueryHistory param = new QueryHistory();
            param.setWorkspaceName(workspaceName);
            param.setWorkspaceOwner(workspaceOwner);
            param.setItemSpec(itemSpec);
            param.setVersionItem(itemVersion);
            param.setUser(user);
            param.setVersionFrom(versionFrom);
            param.setVersionTo(versionToCurrent.get());
            param.setMaxCount(batchMax);
            param.setIncludeFiles(true);
            param.setGenerateDownloadUrls(false);
            param.setSlotMode(false);
            return myBeans.getRepositoryStub(credentials, pi).queryHistory(param).getQueryHistoryResult().getChangeset();
          }
        });

      if (currentChangeSets != null) {
        ContainerUtil.addAll(allChangeSets, currentChangeSets);
      }


      if (currentChangeSets == null || currentChangeSets.length < batchMax) {
        break;
      }

      total -= currentChangeSets.length;
      Changeset lastChangeSet = currentChangeSets[currentChangeSets.length - 1];
      versionToCurrent.set(new ChangesetVersionSpec(lastChangeSet.getCset()));
    }
    return allChangeSets;
  }