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