private function getServersForProjectAndItsChildren(Project $project)
 {
     $remote_servers = $this->gerrit_server_factory->getServersForProject($project);
     $children = $this->project_manager->getChildProjects($project->getID());
     foreach ($children as $child) {
         $child_remote_servers = $this->gerrit_server_factory->getServersForProject($child);
         $remote_servers = array_unique(array_merge($remote_servers, $child_remote_servers));
     }
     return $remote_servers;
 }
 /**
  * @return Git_RemoteServer_GerritServer[]
  */
 public function getServersForProject(Project $project)
 {
     $servers = array();
     foreach ($this->dao->searchAllByProjectId($project->getID()) as $row) {
         $servers[$row['id']] = $this->instantiateFromRow($row);
     }
     foreach ($this->project_manager->getChildProjects($project->getID()) as $child) {
         // don't use array_merge, it will nuke the keys
         $servers = $servers + $this->getServersForProject($child);
     }
     return $servers;
 }