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();
}
}