Return Diffusion diffs through Files, not directly over Conduit
Summary: Fixes T10423. Ref T11524. This changes `diffusion.rawdiffquery` to return a file PHID instead of a blob of data. This is better in general, but particularly better for huge diffs (as in T10423) and diffs with non-utf8 data (as in T10423). Test Plan: - Used `bin/differential extract` to extract a latin1 diff, got a clean diff. - Used `bin/repository reparse --herald` to rerun herald on a latin1 diff, got a clean result. - Pushed latin1 diffs to test commit hooks. - Triggered the the too large / too slow logic. - Viewed latin1 diffs in Diffusion. - Used "blame past this change" in Diffusion to hit the `before` logic. Reviewers: chad Reviewed By: chad Subscribers: eadler Maniphest Tasks: T10423, T11524 Differential Revision: https://secure.phabricator.com/D16460
This commit is contained in:
@@ -2,11 +2,7 @@
|
||||
|
||||
final class DiffusionMercurialRawDiffQuery extends DiffusionRawDiffQuery {
|
||||
|
||||
protected function executeQuery() {
|
||||
return $this->executeRawDiffCommand();
|
||||
}
|
||||
|
||||
protected function executeRawDiffCommand() {
|
||||
protected function newQueryFuture() {
|
||||
$drequest = $this->getRequest();
|
||||
$repository = $drequest->getRepository();
|
||||
|
||||
@@ -30,11 +26,7 @@ final class DiffusionMercurialRawDiffQuery extends DiffusionRawDiffQuery {
|
||||
$commit,
|
||||
$path);
|
||||
|
||||
$this->configureFuture($future);
|
||||
|
||||
list($raw_diff) = $future->resolvex();
|
||||
|
||||
return $raw_diff;
|
||||
return $future;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user