SebastianBergmann\Git\Git::getRevisions PHP Метод

getRevisions() публичный Метод

public getRevisions ( ) : array
Результат array
    public function getRevisions()
    {
        $output = $this->execute('log --no-merges --date-order --reverse --format=medium');
        $numLines = count($output);
        $revisions = array();
        for ($i = 0; $i < $numLines; $i++) {
            $tmp = explode(' ', $output[$i]);
            if ($tmp[0] == 'commit') {
                $sha1 = $tmp[1];
            } elseif ($tmp[0] == 'Author:') {
                $author = implode(' ', array_slice($tmp, 1));
            } elseif ($tmp[0] == 'Date:' && isset($author) && isset($sha1)) {
                $revisions[] = array('author' => $author, 'date' => DateTime::createFromFormat('D M j H:i:s Y O', implode(' ', array_slice($tmp, 3))), 'sha1' => $sha1, 'message' => isset($output[$i + 2]) ? trim($output[$i + 2]) : '');
                unset($author);
                unset($sha1);
            }
        }
        return $revisions;
    }

Usage Example

Пример #1
0
 /**
  * @param InputInterface  $input  An InputInterface instance
  * @param OutputInterface $output An OutputInterface instance
  *
  * @return null|int null or 0 if everything went fine, or an error code
  */
 private function executeHistory(InputInterface $input, OutputInterface $output)
 {
     $git = new Git($input->getOption('git-repository'));
     $currentBranch = $git->getCurrentBranch();
     $revisions = $git->getRevisions();
     $count = [];
     $progressBar = null;
     if ($input->getOption('progress')) {
         $progressBar = new ProgressBar($output, count($revisions));
         $progressBar->start();
     }
     foreach ($revisions as $revision) {
         $git->checkout($revision['sha1']);
         $directories = [];
         foreach ($input->getArgument('values') as $value) {
             $directory = realpath($value);
             if ($directory) {
                 $directories[] = $directory;
             }
         }
         $_count = $this->count($directories, $input->getOption('exclude'), $this->handleCSVOption($input, 'names'), $this->handleCSVOption($input, 'names-exclude'), $input->getOption('count-tests'));
         if ($_count) {
             $_count['commit'] = $revision['sha1'];
             $count[$revision['date']->format(\DateTime::W3C)] = $_count;
         }
         if ($progressBar !== null) {
             $progressBar->advance();
         }
     }
     $git->checkout($currentBranch);
     if ($progressBar !== null) {
         $progressBar->finish();
         $output->writeln('');
     }
     if ($input->getOption('log-csv')) {
         $printer = new History();
         $printer->printResult($input->getOption('log-csv'), $count);
     }
 }
All Usage Examples Of SebastianBergmann\Git\Git::getRevisions