public function getIncludingBranches($local = true, $remote = true)
    {
        $arguments = array('--contains', $this->revision);

        if ($local && $remote) {
            $arguments[] = '-a';
        } elseif (!$local && $remote) {
            $arguments[] = '-r';
        } elseif (!$local && !$remote) {
            throw new InvalidArgumentException('You should a least set one argument to true');
        }

        try {
            $result = $this->repository->run('branch', $arguments);
        } catch (ProcessException $e) {
            return array();
        }

        if (!$result) {
            return array();
        }

        $branchesName = explode("\n", trim(str_replace('*', '', $result)));
        $branchesName = array_filter($branchesName, function ($v) {
            return false === StringHelper::strpos($v, '->');
        });
        $branchesName = array_map('trim', $branchesName);

        $references = $this->repository->getReferences();

        $branches = array();
        foreach ($branchesName as $branchName) {
            if (false === $local) {
                $branches[] = $references->getRemoteBranch($branchName);
            } elseif (0 === StringHelper::strrpos($branchName, 'remotes/')) {
                $branches[] = $references->getRemoteBranch(str_replace('remotes/', '', $branchName));
            } else {
                $branches[] = $references->getBranch($branchName);
            }
        }

        return $branches;
    }
public function getIncludingBranches($local = true, $remote = true)
    {
        $arguments = array('--contains', $this->revision);

        if ($local && $remote) {
            $arguments[] = '-a';
        } elseif (!$local && $remote) {
            $arguments[] = '-r';
        } elseif (!$local && !$remote) {
            throw new InvalidArgumentException('You should a least set one argument to true');
        }

        try {
            $result = $this->repository->run('branch', $arguments);
        } catch (ProcessException $e) {
            return array();
        }

        if (!$result) {
            return array();
        }

        $branchesName = explode("\n", trim(str_replace('*', '', $result)));
        $branchesName = array_filter($branchesName, function ($v) {
            return false === StringHelper::strpos($v, '->');
        });
        $branchesName = array_map('trim', $branchesName);

        $references = $this->repository->getReferences();

        $branches = array();
        foreach ($branchesName as $branchName) {
            if (false === $local) {
                $branches[] = $references->getRemoteBranch($branchName);
            } elseif (0 === StringHelper::strrpos($branchName, 'remotes/')) {
                $branches[] = $references->getRemoteBranch(str_replace('remotes/', '', $branchName));
            } else {
                $branches[] = $references->getBranch($branchName);
            }
        }

        return $branches;
    }
public function getIncludingBranches ( $ local = true , $ remote = true ) { $ arguments = array ( '--contains' , $ this -> revision ) ; if ( $ local && $ remote ) { $ arguments [ ] = '-a' ; } elseif ( ! $ local && $ remote ) { $ arguments [ ] = '-r' ; } elseif ( ! $ local && ! $ remote ) { throw new InvalidArgumentException ( 'You should a least set one argument to true' ) ; } try { $ result = $ this -> repository -> run ( 'branch' , $ arguments ) ; } catch ( ProcessException $ e ) { return array ( ) ; } if ( ! $ result ) { return array ( ) ; } $ branchesName = explode ( "\n" , trim ( str_replace ( '*' , '' , $ result ) ) ) ; $ branchesName = array_filter ( $ branchesName , function ( $ v ) { return false === StringHelper :: strpos ( $ v , '->' ) ; } ) ; $ branchesName = array_map ( 'trim' , $ branchesName ) ; $ references = $ this -> repository -> getReferences ( ) ; $ branches = array ( ) ; foreach ( $ branchesName as $ branchName ) { if ( false === $ local ) { $ branches [ ] = $ references -> getRemoteBranch ( $ branchName ) ; } elseif ( 0 === StringHelper :: strrpos ( $ branchName , 'remotes/' ) ) { $ branches [ ] = $ references -> getRemoteBranch ( str_replace ( 'remotes/' , '' , $ branchName ) ) ; } else { $ branches [ ] = $ references -> getBranch ( $ branchName ) ; } } return $ branches ; }
Find branch containing the commit.

@param bool $local  set true to try to locate a commit on local repository
@param bool $remote set true to try to locate a commit on remote repository

@return array An array of Reference\Branch
Find branch containing the commit .