in cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsstatuses/CvsChangeProvider.java [335:383]
private void processStatus(final FilePath filePath,
final VirtualFile file,
final FileStatus status,
final VcsRevisionNumber number,
final ChangelistBuilder builder) throws VcsException {
if (LOG.isDebugEnabled()) {
LOG.debug("processStatus: filePath=" + filePath + " status=" + status);
}
if (status == FileStatus.NOT_CHANGED) {
if (file != null && FileDocumentManager.getInstance().isFileModified(file)) {
builder.processChange(
new Change(createCvsRevision(filePath, number), CurrentContentRevision.create(filePath), FileStatus.MODIFIED), CvsVcs2.getKey());
}
return;
}
if (status == FileStatus.MODIFIED || status == FileStatus.MERGE || status == FileStatus.MERGED_WITH_CONFLICTS) {
final CvsUpToDateRevision beforeRevision = createCvsRevision(filePath, number);
final ContentRevision afterRevision = CurrentContentRevision.create(filePath);
if (beforeRevision instanceof BinaryContentRevision) {
final byte[] binaryContent = ((BinaryContentRevision)beforeRevision).getBinaryContent();
if (binaryContent != null && Arrays.equals(binaryContent, ((BinaryContentRevision)afterRevision).getBinaryContent())) {
return;
}
}
else {
final String content = beforeRevision.getContent();
if (content != null && content.equals(afterRevision.getContent())) {
return;
}
}
builder.processChange(new Change(beforeRevision, afterRevision, status), CvsVcs2.getKey());
}
else if (status == FileStatus.ADDED) {
builder.processChange(new Change(null, CurrentContentRevision.create(filePath), status), CvsVcs2.getKey());
}
else if (status == FileStatus.DELETED) {
// not sure about deleted content
builder.processChange(new Change(createCvsRevision(filePath, number), null, status), CvsVcs2.getKey());
}
else if (status == FileStatus.DELETED_FROM_FS) {
builder.processLocallyDeletedFile(filePath);
}
else if (status == FileStatus.UNKNOWN) {
builder.processUnversionedFile(filePath.getVirtualFile());
}
else if (status == FileStatus.IGNORED) {
builder.processIgnoredFile(filePath.getVirtualFile());
}
}