public void loadCommittedChanges()

in src/org/jetbrains/tfsIntegration/core/TFSCommittedChangesProvider.java [106:178]


  public void loadCommittedChanges(@NotNull ChangeBrowserSettings settings,
                                   @NotNull RepositoryLocation location,
                                   int maxCount,
                                   @NotNull AsynchConsumer<? super CommittedChangeList> consumer) throws VcsException {
    // TODO: deletion id
    // TODO: if revision and date filters are both set, which one should have priority?
    VersionSpec versionFrom = new ChangesetVersionSpec(1);
    if (settings.getChangeAfterFilter() != null) {
      versionFrom = new ChangesetVersionSpec((int)settings.getChangeAfterFilter().longValue());
    }
    if (settings.getDateAfterFilter() != null) {
      versionFrom = new DateVersionSpec(settings.getDateAfterFilter());
    }

    VersionSpec versionTo = LatestVersionSpec.INSTANCE;
    if (settings.getChangeBeforeFilter() != null) {
      versionTo = new ChangesetVersionSpec((int)settings.getChangeBeforeFilter().longValue());
    }
    if (settings.getDateBeforeFilter() != null) {
      versionTo = new DateVersionSpec(settings.getDateBeforeFilter());
    }

    TFSRepositoryLocation tfsRepositoryLocation = (TFSRepositoryLocation)location;

    try {
      for (Map.Entry<WorkspaceInfo, List<FilePath>> entry : tfsRepositoryLocation.getPathsByWorkspaces().entrySet()) {
        WorkspaceInfo workspace = entry.getKey();
        final Map<FilePath, ExtendedItem> extendedItems =
          workspace.getExtendedItems(entry.getValue(), myProject, TFSBundle.message("loading.items"));
        for (Map.Entry<FilePath, ExtendedItem> localPath2ExtendedItem : extendedItems.entrySet()) {
          ExtendedItem extendedItem = localPath2ExtendedItem.getValue();
          if (extendedItem == null) {
            continue;
          }
          int itemLatestVersion = getLatestChangesetId(workspace, settings.getUserFilter(), extendedItem);

          if (versionFrom instanceof ChangesetVersionSpec) {
            ChangesetVersionSpec changesetVersionFrom = (ChangesetVersionSpec)versionFrom;
            if (changesetVersionFrom.getChangeSetId() > itemLatestVersion) {
              continue;
            }
          }

          if (versionTo instanceof ChangesetVersionSpec) {
            ChangesetVersionSpec changesetVersionTo = (ChangesetVersionSpec)versionTo;
            if (changesetVersionTo.getChangeSetId() > itemLatestVersion) {
              versionTo = new ChangesetVersionSpec(itemLatestVersion);
            }
          }

          final VersionSpec itemVersion = LatestVersionSpec.INSTANCE;
          final RecursionType recursionType = localPath2ExtendedItem.getKey().isDirectory() ? RecursionType.Full : null;
          ItemSpec itemSpec = VersionControlServer.createItemSpec(extendedItem.getSitem(), recursionType);

          List<Changeset> changeSets = workspace.getServer().getVCS()
            .queryHistory(workspace.getName(), workspace.getOwnerName(), itemSpec, settings.getUserFilter(), itemVersion, versionFrom,
                          versionTo, maxCount, myProject, TFSBundle.message("loading.history"));
          for (Changeset changeset : changeSets) {
            final TFSChangeList newList = new TFSChangeList(workspace, changeset.getCset(), changeset.getOwner(),
                                                            changeset.getDate().getTime(), changeset.getComment(), myVcs);
            consumer.consume(newList);
          }

        }
      }
    }
    catch (TfsException e) {
      throw new VcsException(e);
    }
    finally {
      consumer.finished();
    }
  }