protected function getGitResult(ConduitAPIRequest $request)
 {
     $drequest = $this->getDiffusionRequest();
     $repository = $drequest->getRepository();
     $contains = $request->getValue('contains');
     if (strlen($contains)) {
         // NOTE: We can't use DiffusionLowLevelGitRefQuery here because
         // `git for-each-ref` does not support `--contains`.
         if ($repository->isWorkingCopyBare()) {
             list($stdout) = $repository->execxLocalCommand('branch --verbose --no-abbrev --contains %s --', $contains);
             $ref_map = DiffusionGitBranch::parseLocalBranchOutput($stdout);
         } else {
             list($stdout) = $repository->execxLocalCommand('branch -r --verbose --no-abbrev --contains %s --', $contains);
             $ref_map = DiffusionGitBranch::parseRemoteBranchOutput($stdout, DiffusionGitBranch::DEFAULT_GIT_REMOTE);
         }
         $refs = array();
         foreach ($ref_map as $ref => $commit) {
             $refs[] = id(new DiffusionRepositoryRef())->setShortName($ref)->setCommitIdentifier($commit);
         }
     } else {
         $refs = id(new DiffusionLowLevelGitRefQuery())->setRepository($repository)->withIsOriginBranch(true)->execute();
     }
     return $this->processBranchRefs($request, $refs);
 }