Issue 112: take two

This commit is contained in:
Nathan Adams 2015-11-15 23:11:23 -06:00
parent 7f1ef7dc40
commit c23553c16a

View File

@ -778,27 +778,32 @@ class IDF_Scm_Git extends IDF_Scm
sprintf($cmd, $skip), $rawlog); sprintf($cmd, $skip), $rawlog);
while (count($rawlog) and count($blobs)) { while (count($rawlog) and count($blobs)) {
$rawlog = implode("\n", array_reverse($rawlog)); $rawlog = implode("\n", array_reverse($rawlog));
$newRawLog = substr($rawlog, 0, strrpos(rtrim($rawlog), "\n")); $tmpRes = [];
$rawLogArr = explode("\n", $rawlog); foreach(explode("\n", $rawlog) as $line) {
$lastLine = $rawLogArr[count($rawLogArr) - 1]; if ($line[0] != ":") { //This is the commit number line
$commit = explode(" ", $lastLine)[0]; $commit = explode(" ", $line)[0];
$fc = $this->getCommit($commit); $fc = $this->getCommit($commit);
foreach($tmpRes as $r) {
$res[$r["hash"]] = (object) [
foreach(explode("\n", $newRawLog) as $line) { "hash" => $r["hash"],
"date" => $fc->date,
"title" => $fc->title,
"author" => $fc->author
];
}
$tmpRes = [];
} else {
$sides = explode("\t", $line); $sides = explode("\t", $line);
$leftSide = trim($sides[0]); $leftSide = trim($sides[0]);
$rightSide = trim($sides[1]); $rightSide = trim($sides[1]);
$leftSideSplit = explode(" ", $leftSide); $leftSideSplit = explode(" ", $leftSide);
$newHash = sha1($leftSideSplit[3] . $rightSide); $newHash = sha1($leftSideSplit[3] . $rightSide);
$res[$newHash] = (object) [ $tmpRes[$newHash] = [
"hash" => $newHash, "hash" => $newHash
'date' => $fc->date,
'title' => $fc->title,
'author' => $fc->author
]; ];
unset($blobs[$newHash]); unset($blobs[$newHash]);
} }
}
$rawlog = array(); $rawlog = array();
$skip += 5000; $skip += 5000;
if ($skip > 20000) { if ($skip > 20000) {