in clearcase-server/src/jetbrains/buildServer/buildTriggers/vcs/clearcase/ClearCaseSupport.java [689:734]
private List<ModificationData> collectChangesWithConnection(VcsRoot root, Revision fromVersion, Revision currentVersion, ClearCaseConnection connection) throws VcsException {
try {
final ArrayList<ModificationData> list = new ArrayList<ModificationData>();
final MultiMap<CCModificationKey, VcsChange> key2changes = new MultiMap<CCModificationKey, VcsChange>();
final Set<String> addFileActivities = new HashSet<String>();
final Set<VcsChange> zeroToOneChangedFiles = new HashSet<VcsChange>();
final ChangedFilesProcessor fileProcessor = createCollectingChangesFileProcessor(key2changes, addFileActivities, zeroToOneChangedFiles, connection);
try {
LOG.debug("Collecting changes...");
CCParseUtil.processChangedFiles(connection, fromVersion, currentVersion, fileProcessor);
for (CCModificationKey key : key2changes.keySet()) {
final List<VcsChange> changes = key2changes.get(key);
if (addFileActivities.contains(key.getActivity())) {
FilterUtil.filterCollection(changes, new Filter<VcsChange>() {
public boolean accept(@NotNull final VcsChange data) {
return !zeroToOneChangedFiles.contains(data);
}
});
}
if (changes.isEmpty()) continue;
final DateRevision version = key.getVersion();
list.add(new ModificationData(
version.getDate(), changes, key.getCommentHolder().toString(), key.getUser(), root, version.asString(), version.asDisplayString()
));
}
} catch (final Exception e) {
throw new VcsException(e);
}
Collections.sort(list, new Comparator<ModificationData>() {
public int compare(final ModificationData o1, final ModificationData o2) {
return o1.getVcsDate().compareTo(o2.getVcsDate());
}
});
return list;
}
finally {
LOG.debug("Collecting changes was finished.");
}
}