in clearcase-server/src/jetbrains/buildServer/buildTriggers/vcs/clearcase/versionTree/VersionTree.java [93:126]
private Branch addBranchToLevel(final Branch currentBranch, final String branchName) throws VcsException {
if (currentBranch == null) {
for (Branch branch : myTopBranches) {
if (branch.getName().equals(branchName)) {
return branch;
}
}
final Branch result = new Branch(null, branchName);
myTopBranches.add(result);
return result;
} else {
Version version = currentBranch.getFirstVersion();
Version last = null;
while (version != null) {
last = version;
final List<Branch> inhBranches = version.getInheritedBranches();
for (Branch branch : inhBranches) {
if (branch.getName().equals(branchName)) {
return branch;
}
}
version = version.getNextVersion();
}
if (last != null) {
final Branch result = new Branch(last, branchName);
last.addInheritedBranch(result);
return result;
} else {
throw new VcsException("Cannot add branch " + branchName + " to level " + currentBranch);
}
}
}