1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-29 18:22:41 +01:00

Construct diffs with attached changesets, even if empty

Summary: See discussion in IRC. Not 100% sure what's going on here because of email ghost theives, but conceivably a commit with no changes will end up with `null` changesets instead of `array()` changesets, which throws. Such diffs are certianly possible (`git commit --allow-empty`) even if they aren't the issue in this specific case. See T3416. Initialize changesets to `array()` to avoid throwing.

Test Plan:
Viewed some commits?

iiam

Reviewers: btrahan, chad

Reviewed By: chad

CC: aran

Differential Revision: https://secure.phabricator.com/D6339
This commit is contained in:
epriestley 2013-07-01 09:02:55 -07:00
parent fde37a18cf
commit eb49d8a52b

View file

@ -115,6 +115,10 @@ final class DifferentialDiff extends DifferentialDAO {
assert_instances_of($changes, 'ArcanistDiffChange'); assert_instances_of($changes, 'ArcanistDiffChange');
$diff = new DifferentialDiff(); $diff = new DifferentialDiff();
// There may not be any changes; initialize the changesets list so that
// we don't throw later when accessing it.
$diff->attachChangesets(array());
$lines = 0; $lines = 0;
foreach ($changes as $change) { foreach ($changes as $change) {
if ($change->getType() == ArcanistDiffChangeType::TYPE_MESSAGE) { if ($change->getType() == ArcanistDiffChangeType::TYPE_MESSAGE) {