in clearcase-server/src/jetbrains/buildServer/buildTriggers/vcs/clearcase/configSpec/ConfigSpecImpl.java [89:117]
private boolean doIsVersionIsInsideView(final ClearCaseConnection connection, final String fullFileName, final Version version, final boolean isFile) throws VcsException {
final String normalizedFullFileName = CCPathElement.normalizeFileName(fullFileName);
if (!isUnderLoadRules(connection.getClearCaseViewPath(), normalizedFullFileName)) return false;
final Version version_copy = new Version(version);
boolean versionTreeHasBeenChanged;
do {
versionTreeHasBeenChanged = false;
for (ConfigSpecStandardRule rule : myStandardRules) {
if (!rule.matchesPath(normalizedFullFileName, isFile)) continue;
final ConfigSpecStandardRule.ResultType result = rule.isVersionIsInsideView(version_copy);
if (ConfigSpecStandardRule.ResultType.DOES_NOT_MATCH.equals(result)) {
if (rightVersionExists(rule, getRootBranch(version_copy))) {
return false;
}
}
else if (ConfigSpecStandardRule.ResultType.BRANCH_HAS_BEEN_MADE.equals(result)) {
versionTreeHasBeenChanged = true;
break;
}
else if (ConfigSpecStandardRule.ResultType.MATCHES.equals(result)) {
return true;
}
}
} while (versionTreeHasBeenChanged);
return false;
}