56 lines
1.1 KiB
Markdown
56 lines
1.1 KiB
Markdown
|
Getting log history
|
||
|
===================
|
||
|
|
||
|
Crawling manually commits and parents to browse history is surely a good
|
||
|
solution. But when it comes to ordering them or aggregate them from
|
||
|
multiple branches, we tend to use `git log`.
|
||
|
|
||
|
To get a *Log* object from a repository:
|
||
|
|
||
|
```php
|
||
|
$log = $repository->getLog();
|
||
|
```
|
||
|
|
||
|
You can pass four arguments to *getLog* method:
|
||
|
|
||
|
```php
|
||
|
// Global log for repository
|
||
|
$log = $repository->getLog();
|
||
|
|
||
|
// Log for master branch
|
||
|
$log = $repository->getLog('master');
|
||
|
|
||
|
// Returns last 10 commits on README file
|
||
|
$log = $repository->getLog('master', 'README', 0, 10);
|
||
|
|
||
|
// Returns last 10 commits on README or UPGRADE files
|
||
|
$log = $repository->getLog('master', ['README', 'UPGRADE'], 0, 10);
|
||
|
```
|
||
|
|
||
|
Counting
|
||
|
--------
|
||
|
|
||
|
If you want to count overall commits, without offset or limit, use the
|
||
|
*countCommits* method:
|
||
|
|
||
|
```php
|
||
|
echo sprintf('This log contains %s commits%s', $log->countCommits(), PHP_EOL);
|
||
|
|
||
|
// Countable interface
|
||
|
echo sprintf('This log contains %s commits%s', count($log), PHP_EOL);
|
||
|
```
|
||
|
|
||
|
Offset and limit
|
||
|
----------------
|
||
|
|
||
|
Use those methods:
|
||
|
|
||
|
```php
|
||
|
$log->setOffset(32);
|
||
|
$log->setLimit(40);
|
||
|
|
||
|
// or read it:
|
||
|
$log->getOffset();
|
||
|
$log->getLimit();
|
||
|
```
|