in agent/src/jetbrains/buildServer/swabra/snapshots/iteration/FilesTraversal.java [44:86]
public void traverseCompare(@NotNull FilesIterator snapshotIterator,
@NotNull FilesIterator currentIterator,
@NotNull ComparisonProcessor processor) throws Exception {
assert !snapshotIterator.isCurrent() && currentIterator.isCurrent();
try {
processor.comparisonStarted();
FileInfo snapshotInfo = snapshotIterator.getNext();
FileInfo currentInfo = currentIterator.getNext();
while (snapshotInfo != null && currentInfo != null) {
final int comparisonResult = FilesComparator.compare(snapshotInfo, currentInfo);
if (fileAdded(comparisonResult)) {
processAdded(currentInfo, processor, currentIterator);
currentInfo = currentIterator.getNext();
} else if (fileDeleted(comparisonResult)) {
processDeleted(snapshotInfo, processor, snapshotIterator);
snapshotInfo = snapshotIterator.getNext();
} else {
if (fileModified(snapshotInfo, currentInfo)) {
processModified(snapshotInfo, currentInfo, processor);
} else {
processUnchanged(snapshotInfo, processor);
}
snapshotInfo = snapshotIterator.getNext();
currentInfo = currentIterator.getNext();
}
}
while (snapshotInfo != null) {
processDeleted(snapshotInfo, processor, snapshotIterator);
snapshotInfo = snapshotIterator.getNext();
}
while (currentInfo != null) {
processAdded(currentInfo, processor, currentIterator);
currentInfo = currentIterator.getNext();
}
processor.comparisonFinished();
}
finally {
snapshotIterator.stopIterator();
currentIterator.stopIterator();
}
}