private function buildRepositoryMap(DrydockRepositoryOperation $operation)
 {
     $repository = $operation->getRepository();
     $target = $operation->getRepositoryTarget();
     list($type, $name) = explode(':', $target, 2);
     switch ($type) {
         case 'branch':
             $spec = array('branch' => $name);
             break;
         case 'none':
             $spec = array();
             break;
         default:
             throw new Exception(pht('Unknown repository operation target type "%s" (in target "%s").', $type, $target));
     }
     $spec['merges'] = $operation->getWorkingCopyMerges();
     $map = array();
     $map[$repository->getCloneName()] = array('phid' => $repository->getPHID(), 'default' => true) + $spec;
     return $map;
 }