public ChangeType classifyChange()

in git-server/src/main/java/jetbrains/buildServer/buildTriggers/vcs/git/VcsChangeTreeWalk.java [148:194]


  public ChangeType classifyChange() {
    final FileMode mode0 = getFileMode(0);
    if (isExtraDebug())
      LOG.debug(getPathString() + " file mode: " + mode0);
    if (FileMode.MISSING.equals(mode0)) {
      for (int i = 1; i < getTreeCount(); i++) {
        if (FileMode.MISSING.equals(getFileMode(i))) {
          // the delete merge
          return ChangeType.UNCHANGED;
        }
      }
      return ChangeType.DELETED;
    }
    boolean fileAdded = true;
    for (int i = 1; i < getTreeCount(); i++) {
      if (!FileMode.MISSING.equals(getFileMode(i))) {
        fileAdded = false;
        break;
      }
    }
    if (fileAdded) {
      return ChangeType.ADDED;
    }
    boolean fileModified = true;
    for (int i = 1; i < getTreeCount(); i++) {
      if (idEqual(0, i)) {
        fileModified = false;
        break;
      }
    }
    if (fileModified) {
      return ChangeType.MODIFIED;
    }
    int modeBits0 = mode0.getBits();
    boolean fileModeModified = true;
    for (int i = 1; i < getTreeCount(); i++) {
      int modeBits = getFileMode(i).getBits();
      if (modeBits == modeBits0) {
        fileModeModified = false;
        break;
      }
    }
    if (fileModeModified) {
      return ChangeType.FILE_MODE_CHANGED;
    }
    return ChangeType.UNCHANGED;
  }