1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-10 08:52:39 +01:00

Fix a HunkQuery issue where no hunks load at all

Summary:
If you create a diff with no hunks (e.g., it adds a single empty file), we never attachHunks() so we throw on getHunks().

Instead, make sure changesets get hunks attached if they expect it.

Test Plan: Created a new diff with a single empty file in it.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: zeeg, epriestley

Differential Revision: https://secure.phabricator.com/D8842
This commit is contained in:
epriestley 2014-04-23 14:22:10 -07:00
parent 4bbd2d5203
commit 5f033d580c

View file

@ -17,6 +17,19 @@ final class DifferentialHunkQuery
return $this; return $this;
} }
public function willExecute() {
// If we fail to load any hunks at all (for example, because all of
// the requested changesets are directories or empty files and have no
// hunks) we'll never call didFilterPage(), and thus never have an
// opportunity to attach hunks. Attach empty hunk lists now so that we
// end up with the right result.
if ($this->shouldAttachToChangesets) {
foreach ($this->changesets as $changeset) {
$changeset->attachHunks(array());
}
}
}
public function loadPage() { public function loadPage() {
$table = new DifferentialHunk(); $table = new DifferentialHunk();
$conn_r = $table->establishConnection('r'); $conn_r = $table->establishConnection('r');