diff output parsing skips empty lines.

This commit is contained in:
Wim Rijnders
2013-04-21 08:37:01 +02:00
parent fc32fd68ba
commit 2febca6322

View File

@@ -52,11 +52,11 @@ class Repository extends BaseRepository
. "<body><![CDATA[%b]]></body>" . "<body><![CDATA[%b]]></body>"
. "</item>\" $commitHash" . "</item>\" $commitHash"
); );
$xmlEnd = strpos($logs, '</item>') + 7; $xmlEnd = strpos($logs, '</item>') + 7;
$commitInfo = substr($logs, 0, $xmlEnd); $commitInfo = substr($logs, 0, $xmlEnd);
$commitData = substr($logs, $xmlEnd); $commitData = substr($logs, $xmlEnd);
$logs = explode("\n", $commitData); $logs = explode("\n", $commitData);
array_shift($logs);
// Read commit metadata // Read commit metadata
$format = new PrettyFormat; $format = new PrettyFormat;
@@ -67,8 +67,6 @@ class Repository extends BaseRepository
if ($commit->getParentsHash()) { if ($commit->getParentsHash()) {
$command = 'diff ' . $commitHash . '~1..' . $commitHash; $command = 'diff ' . $commitHash . '~1..' . $commitHash;
$logs = explode("\n", $this->getClient()->run($this, $command)); $logs = explode("\n", $this->getClient()->run($this, $command));
} else {
$logs = array_slice($logs, 1);
} }
$commit->setDiffs($this->readDiffLogs($logs)); $commit->setDiffs($this->readDiffLogs($logs));
@@ -126,6 +124,11 @@ class Repository extends BaseRepository
$lineNumOld = 0; $lineNumOld = 0;
$lineNumNew = 0; $lineNumNew = 0;
foreach ($logs as $log) { foreach ($logs as $log) {
# Skip empty lines
if ($log == "") {
continue;
}
if ('diff' === substr($log, 0, 4)) { if ('diff' === substr($log, 0, 4)) {
if (isset($diff)) { if (isset($diff)) {
$diffs[] = $diff; $diffs[] = $diff;