forked from libgit2/php-git
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathblame.php
More file actions
25 lines (23 loc) · 680 Bytes
/
blame.php
File metadata and controls
25 lines (23 loc) · 680 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$repo = git_repository_open(".");
$options = git_blame_options_new();
$blame = git_blame_file($repo, "README.md", $options);
$obj = git_revparse_single($repo, "HEAD:README.md");
$id = git_object_id($obj);
$blob = git_blob_lookup($repo, $id);
$raw = git_blob_rawcontent($blob);
$i = 0;
$lines = explode("\n", $raw);
foreach ($lines as $data) {
$hunk = git_blame_get_hunk_byline($blame, $i+1);
if (!$hunk) {
continue;
}
$sig = sprintf("%s <%s>", $hunk['final_signature']['name'], $hunk['final_signature']['email']);
printf("%s ( %-30s, %4d) %s\n", substr($hunk['final_commit_id'], 10),
$sig,
$i+1,
$data
);
$i++;
}