in src/main/java/com/googlesource/gerrit/plugins/renameproject/conditions/RenamePreconditions.java [109:127]
private void assertIsNotSubscribed(Project.NameKey key) throws CannotRenameProjectException {
try (Repository repo = repoManager.openRepository(key);
MergeOpRepoManager orm = ormProvider.get()) {
Set<BranchNameKey> branches =
repo.getRefDatabase().getRefsByPrefix(REFS_HEADS).stream()
.map(ref -> BranchNameKey.create(key, ref.getName()))
.collect(toSet());
SubscriptionGraph sub = subscriptionGraphFactory.compute(branches, orm);
for (BranchNameKey b : branches) {
if (sub.hasSuperproject(b)) {
String message = "Cannot rename a project subscribed to by the other projects";
log.error(message);
throw new CannotRenameProjectException(message);
}
}
} catch (IOException | SubmoduleConflictException e) {
throw new CannotRenameProjectException(e);
}
}