private void processStatus()

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