Page MenuHomePhabricator

D14977.id.diff
No OneTemporary

D14977.id.diff

diff --git a/src/applications/differential/conduit/DifferentialCreateRawDiffConduitAPIMethod.php b/src/applications/differential/conduit/DifferentialCreateRawDiffConduitAPIMethod.php
--- a/src/applications/differential/conduit/DifferentialCreateRawDiffConduitAPIMethod.php
+++ b/src/applications/differential/conduit/DifferentialCreateRawDiffConduitAPIMethod.php
@@ -43,6 +43,26 @@
$changes = $parser->parseDiff($raw_diff);
$diff = DifferentialDiff::newFromRawChanges($viewer, $changes);
+ // We're bounded by doing INSERTs for all the hunks and changesets, so
+ // estimate the number of inserts we'll require.
+ $size = 0;
+ foreach ($diff->getChangesets() as $changeset) {
+ $hunks = $changeset->getHunks();
+ $size += 1 + count($hunks);
+ }
+
+ $raw_limit = 10000;
+ if ($size > $raw_limit) {
+ throw new Exception(
+ pht(
+ 'The raw diff you have submitted is too large to parse (it affects '.
+ 'more than %s paths and hunks). Differential should only be used '.
+ 'for changes which are small enough to receive detailed human '.
+ 'review. See "Differential User Guide: Large Changes" in the '.
+ 'documentation for more information.',
+ new PhutilNumber($raw_limit)));
+ }
+
$diff_data_dict = array(
'creationMethod' => 'web',
'authorPHID' => $viewer->getPHID(),
diff --git a/src/applications/files/exception/PhabricatorFileUploadException.php b/src/applications/files/exception/PhabricatorFileUploadException.php
--- a/src/applications/files/exception/PhabricatorFileUploadException.php
+++ b/src/applications/files/exception/PhabricatorFileUploadException.php
@@ -4,26 +4,29 @@
public function __construct($code) {
$map = array(
- 'UPLOAD_ERR_INI_SIZE' => pht(
+ UPLOAD_ERR_INI_SIZE => pht(
"Uploaded file is too large: current limit is %s. To adjust ".
"this limit change '%s' in php.ini.",
ini_get('upload_max_filesize'),
'upload_max_filesize'),
- 'UPLOAD_ERR_FORM_SIZE' => pht(
+ UPLOAD_ERR_FORM_SIZE => pht(
'File is too large.'),
- 'UPLOAD_ERR_PARTIAL' => pht(
+ UPLOAD_ERR_PARTIAL => pht(
'File was only partially transferred, upload did not complete.'),
- 'UPLOAD_ERR_NO_FILE' => pht(
+ UPLOAD_ERR_NO_FILE => pht(
'No file was uploaded.'),
- 'UPLOAD_ERR_NO_TMP_DIR' => pht(
+ UPLOAD_ERR_NO_TMP_DIR => pht(
'Unable to write file: temporary directory does not exist.'),
- 'UPLOAD_ERR_CANT_WRITE' => pht(
+ UPLOAD_ERR_CANT_WRITE => pht(
'Unable to write file: failed to write to temporary directory.'),
- 'UPLOAD_ERR_EXTENSION' => pht(
+ UPLOAD_ERR_EXTENSION => pht(
'Unable to upload: a PHP extension stopped the upload.'),
);
- $message = idx($map, $code, pht('Upload failed: unknown error.'));
+ $message = idx(
+ $map,
+ $code,
+ pht('Upload failed: unknown error (%s).', $code));
parent::__construct($message, $code);
}
}

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 25, 2:34 AM (1 w, 8 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7687974
Default Alt Text
D14977.id.diff (3 KB)

Event Timeline