Page MenuHomePhabricator

D20185.diff
No OneTemporary

D20185.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -12,7 +12,7 @@
'core.pkg.css' => '261ee8cf',
'core.pkg.js' => '5ace8a1e',
'differential.pkg.css' => 'c3f15714',
- 'differential.pkg.js' => '67c9ea4c',
+ 'differential.pkg.js' => 'be031567',
'diffusion.pkg.css' => '42c75c37',
'diffusion.pkg.js' => '91192d85',
'maniphest.pkg.css' => '35995d6d',
@@ -374,7 +374,7 @@
'rsrc/js/application/dashboard/behavior-dashboard-move-panels.js' => '076bd092',
'rsrc/js/application/dashboard/behavior-dashboard-query-panel-select.js' => '1e413dc9',
'rsrc/js/application/dashboard/behavior-dashboard-tab-panel.js' => '9b1cbd76',
- 'rsrc/js/application/diff/DiffChangeset.js' => 'e7cf10d6',
+ 'rsrc/js/application/diff/DiffChangeset.js' => 'd0a85a85',
'rsrc/js/application/diff/DiffChangesetList.js' => 'b91204e9',
'rsrc/js/application/diff/DiffInline.js' => 'a4a14a94',
'rsrc/js/application/diff/behavior-preview-link.js' => 'f51e9c17',
@@ -753,7 +753,7 @@
'phabricator-darklog' => '3b869402',
'phabricator-darkmessage' => '26cd4b73',
'phabricator-dashboard-css' => '4267d6c6',
- 'phabricator-diff-changeset' => 'e7cf10d6',
+ 'phabricator-diff-changeset' => 'd0a85a85',
'phabricator-diff-changeset-list' => 'b91204e9',
'phabricator-diff-inline' => 'a4a14a94',
'phabricator-drag-and-drop-file-upload' => '4370900d',
@@ -1973,6 +1973,17 @@
'javelin-stratcom',
'javelin-util',
),
+ 'd0a85a85' => array(
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-stratcom',
+ 'javelin-install',
+ 'javelin-workflow',
+ 'javelin-router',
+ 'javelin-behavior-device',
+ 'javelin-vector',
+ 'phabricator-diff-inline',
+ ),
'd12d214f' => array(
'javelin-install',
'javelin-dom',
@@ -2038,17 +2049,6 @@
'javelin-dom',
'phabricator-draggable-list',
),
- 'e7cf10d6' => array(
- 'javelin-dom',
- 'javelin-util',
- 'javelin-stratcom',
- 'javelin-install',
- 'javelin-workflow',
- 'javelin-router',
- 'javelin-behavior-device',
- 'javelin-vector',
- 'phabricator-diff-inline',
- ),
'e8240b50' => array(
'javelin-behavior',
'javelin-stratcom',
diff --git a/src/applications/config/check/PhabricatorExtraConfigSetupCheck.php b/src/applications/config/check/PhabricatorExtraConfigSetupCheck.php
--- a/src/applications/config/check/PhabricatorExtraConfigSetupCheck.php
+++ b/src/applications/config/check/PhabricatorExtraConfigSetupCheck.php
@@ -533,6 +533,8 @@
'This ancient extension point has been replaced with other '.
'mechanisms, including "AphrontSite".'),
+ 'differential.whitespace-matters' => pht(
+ 'Whitespace rendering is now handled automatically.'),
);
return $ancient_config;
diff --git a/src/applications/differential/__tests__/DifferentialParseRenderTestCase.php b/src/applications/differential/__tests__/DifferentialParseRenderTestCase.php
--- a/src/applications/differential/__tests__/DifferentialParseRenderTestCase.php
+++ b/src/applications/differential/__tests__/DifferentialParseRenderTestCase.php
@@ -31,7 +31,6 @@
foreach (array('one', 'two') as $type) {
$this->runParser($type, $data, $file, 'expect');
$this->runParser($type, $data, $file, 'unshielded');
- $this->runParser($type, $data, $file, 'whitespace');
}
}
}
@@ -44,25 +43,20 @@
}
$unshielded = false;
- $whitespace = false;
switch ($extension) {
case 'unshielded':
$unshielded = true;
break;
- case 'whitespace';
- $unshielded = true;
- $whitespace = true;
- break;
}
$parsers = $this->buildChangesetParsers($type, $data, $file);
- $actual = $this->renderParsers($parsers, $unshielded, $whitespace);
+ $actual = $this->renderParsers($parsers, $unshielded);
$expect = Filesystem::readFile($test_file);
$this->assertEqual($expect, $actual, basename($test_file));
}
- private function renderParsers(array $parsers, $unshield, $whitespace) {
+ private function renderParsers(array $parsers, $unshield) {
$result = array();
foreach ($parsers as $parser) {
if ($unshield) {
@@ -73,11 +67,6 @@
$e_range = null;
}
- if ($whitespace) {
- $parser->setWhitespaceMode(
- DifferentialChangesetParser::WHITESPACE_SHOW_ALL);
- }
-
$result[] = $parser->render($s_range, $e_range, array());
}
return implode(str_repeat('~', 80)."\n", $result);
diff --git a/src/applications/differential/__tests__/data/generated.diff.one.unshielded b/src/applications/differential/__tests__/data/generated.diff.one.unshielded
--- a/src/applications/differential/__tests__/data/generated.diff.one.unshielded
+++ b/src/applications/differential/__tests__/data/generated.diff.one.unshielded
@@ -1,6 +1,5 @@
N 1 . @generated\n~
-O 2 - \n~
+N 2 . \n~
O 3 - This is a generated file.\n~
-N 2 + \n~
N 3 + This is a generated file{(, full of generated code)}.\n~
N 4 . \n~
diff --git a/src/applications/differential/__tests__/data/generated.diff.two.unshielded b/src/applications/differential/__tests__/data/generated.diff.two.unshielded
--- a/src/applications/differential/__tests__/data/generated.diff.two.unshielded
+++ b/src/applications/differential/__tests__/data/generated.diff.two.unshielded
@@ -1,7 +1,7 @@
O 1 . @generated\n~
N 1 . @generated\n~
-O 2 - \n~
-N 2 + \n~
+O 2 . \n~
+N 2 . \n~
O 3 - This is a generated file.\n~
N 3 + This is a generated file{(, full of generated code)}.\n~
O 4 . \n~
diff --git a/src/applications/differential/__tests__/data/whitespace.diff.one.expect b/src/applications/differential/__tests__/data/whitespace.diff.one.expect
--- a/src/applications/differential/__tests__/data/whitespace.diff.one.expect
+++ b/src/applications/differential/__tests__/data/whitespace.diff.one.expect
@@ -2,4 +2,5 @@
WHITESPACE
WHITESPACE
-
-SHIELD (whitespace) This file was changed only by adding or removing whitespace.
+O 1 - -=[-Rocket-Ship>\n~
+N 1 + {> )}-=[-Rocket-Ship>\n~
diff --git a/src/applications/differential/__tests__/data/whitespace.diff.two.expect b/src/applications/differential/__tests__/data/whitespace.diff.two.expect
--- a/src/applications/differential/__tests__/data/whitespace.diff.two.expect
+++ b/src/applications/differential/__tests__/data/whitespace.diff.two.expect
@@ -2,4 +2,5 @@
WHITESPACE
WHITESPACE
-
-SHIELD (whitespace) This file was changed only by adding or removing whitespace.
+O 1 - -=[-Rocket-Ship>\n~
+N 1 + {> )}-=[-Rocket-Ship>\n~
diff --git a/src/applications/differential/config/PhabricatorDifferentialConfigOptions.php b/src/applications/differential/config/PhabricatorDifferentialConfigOptions.php
--- a/src/applications/differential/config/PhabricatorDifferentialConfigOptions.php
+++ b/src/applications/differential/config/PhabricatorDifferentialConfigOptions.php
@@ -80,18 +80,6 @@
"Select and reorder revision fields.\n\n".
"NOTE: This feature is under active development and subject ".
"to change.")),
- $this->newOption(
- 'differential.whitespace-matters',
- 'list<regex>',
- array(
- '/\.py$/',
- '/\.l?hs$/',
- '/\.ya?ml$/',
- ))
- ->setDescription(
- pht(
- "List of file regexps where whitespace is meaningful and should ".
- "not use 'ignore-all' by default")),
$this->newOption('differential.require-test-plan-field', 'bool', true)
->setBoolOptions(
array(
diff --git a/src/applications/differential/controller/DifferentialRevisionViewController.php b/src/applications/differential/controller/DifferentialRevisionViewController.php
--- a/src/applications/differential/controller/DifferentialRevisionViewController.php
+++ b/src/applications/differential/controller/DifferentialRevisionViewController.php
@@ -305,10 +305,6 @@
$details = $this->buildDetails($revision, $field_list);
$curtain = $this->buildCurtain($revision);
- $whitespace = $request->getStr(
- 'whitespace',
- DifferentialChangesetParser::WHITESPACE_IGNORE_MOST);
-
$repository = $revision->getRepository();
if ($repository) {
$symbol_indexes = $this->buildSymbolIndexes(
@@ -383,7 +379,6 @@
->setDiff($target)
->setRenderingReferences($rendering_references)
->setVsMap($vs_map)
- ->setWhitespace($whitespace)
->setSymbolIndexes($symbol_indexes)
->setTitle(pht('Diff %s', $target->getID()))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
@@ -412,7 +407,6 @@
->setDiffUnitStatuses($broken_diffs)
->setSelectedVersusDiffID($diff_vs)
->setSelectedDiffID($target->getID())
- ->setSelectedWhitespace($whitespace)
->setCommitsForLinks($commits_for_links);
$local_table = id(new DifferentialLocalCommitsView())
@@ -1095,7 +1089,7 @@
// this ends up being something like
// D123.diff
// or the verbose
- // D123.vs123.id123.whitespaceignore-all.diff
+ // D123.vs123.id123.highlightjs.diff
// lame but nice to include these options
$file_name = ltrim($request_uri->getPath(), '/').'.';
foreach ($request_uri->getQueryParamsAsPairList() as $pair) {
diff --git a/src/applications/differential/parser/DifferentialChangesetParser.php b/src/applications/differential/parser/DifferentialChangesetParser.php
--- a/src/applications/differential/parser/DifferentialChangesetParser.php
+++ b/src/applications/differential/parser/DifferentialChangesetParser.php
@@ -19,7 +19,6 @@
protected $specialAttributes = array();
protected $changeset;
- protected $whitespaceMode = null;
protected $renderCacheKey = null;
@@ -163,7 +162,6 @@
}
public function readParametersFromRequest(AphrontRequest $request) {
- $this->setWhitespaceMode($request->getStr('whitespace'));
$this->setCharacterEncoding($request->getStr('encoding'));
$this->setHighlightAs($request->getStr('highlight'));
@@ -191,20 +189,14 @@
return $this;
}
- const CACHE_VERSION = 12;
+ const CACHE_VERSION = 13;
const CACHE_MAX_SIZE = 8e6;
const ATTR_GENERATED = 'attr:generated';
const ATTR_DELETED = 'attr:deleted';
const ATTR_UNCHANGED = 'attr:unchanged';
- const ATTR_WHITELINES = 'attr:white';
const ATTR_MOVEAWAY = 'attr:moveaway';
- const WHITESPACE_SHOW_ALL = 'show-all';
- const WHITESPACE_IGNORE_TRAILING = 'ignore-trailing';
- const WHITESPACE_IGNORE_MOST = 'ignore-most';
- const WHITESPACE_IGNORE_ALL = 'ignore-all';
-
public function setOldLines(array $lines) {
$this->old = $lines;
return $this;
@@ -336,11 +328,6 @@
return $this;
}
- public function setWhitespaceMode($whitespace_mode) {
- $this->whitespaceMode = $whitespace_mode;
- return $this;
- }
-
public function setRenderingReference($ref) {
$this->renderingReference = $ref;
return $this;
@@ -574,10 +561,6 @@
return idx($this->specialAttributes, self::ATTR_UNCHANGED, false);
}
- public function isWhitespaceOnly() {
- return idx($this->specialAttributes, self::ATTR_WHITELINES, false);
- }
-
public function isMoveAway() {
return idx($this->specialAttributes, self::ATTR_MOVEAWAY, false);
}
@@ -624,18 +607,8 @@
}
private function tryCacheStuff() {
- $whitespace_mode = $this->whitespaceMode;
- switch ($whitespace_mode) {
- case self::WHITESPACE_SHOW_ALL:
- case self::WHITESPACE_IGNORE_TRAILING:
- case self::WHITESPACE_IGNORE_ALL:
- break;
- default:
- $whitespace_mode = self::WHITESPACE_IGNORE_MOST;
- break;
- }
+ $skip_cache = false;
- $skip_cache = ($whitespace_mode != self::WHITESPACE_IGNORE_MOST);
if ($this->disableCache) {
$skip_cache = true;
}
@@ -648,8 +621,6 @@
$skip_cache = true;
}
- $this->whitespaceMode = $whitespace_mode;
-
$changeset = $this->changeset;
if ($changeset->getFileType() != DifferentialChangeType::FILE_TEXT &&
@@ -668,71 +639,10 @@
}
private function process() {
- $whitespace_mode = $this->whitespaceMode;
$changeset = $this->changeset;
- $ignore_all = (($whitespace_mode == self::WHITESPACE_IGNORE_MOST) ||
- ($whitespace_mode == self::WHITESPACE_IGNORE_ALL));
-
- $force_ignore = ($whitespace_mode == self::WHITESPACE_IGNORE_ALL);
-
- if (!$force_ignore) {
- if ($ignore_all && $changeset->getWhitespaceMatters()) {
- $ignore_all = false;
- }
- }
-
- // The "ignore all whitespace" algorithm depends on rediffing the
- // files, and we currently need complete representations of both
- // files to do anything reasonable. If we only have parts of the files,
- // don't use the "ignore all" algorithm.
- if ($ignore_all) {
- $hunks = $changeset->getHunks();
- if (count($hunks) !== 1) {
- $ignore_all = false;
- } else {
- $first_hunk = reset($hunks);
- if ($first_hunk->getOldOffset() != 1 ||
- $first_hunk->getNewOffset() != 1) {
- $ignore_all = false;
- }
- }
- }
-
- if ($ignore_all) {
- $old_file = $changeset->makeOldFile();
- $new_file = $changeset->makeNewFile();
- if ($old_file == $new_file) {
- // If the old and new files are exactly identical, the synthetic
- // diff below will give us nonsense and whitespace modes are
- // irrelevant anyway. This occurs when you, e.g., copy a file onto
- // itself in Subversion (see T271).
- $ignore_all = false;
- }
- }
-
$hunk_parser = new DifferentialHunkParser();
- $hunk_parser->setWhitespaceMode($whitespace_mode);
$hunk_parser->parseHunksForLineData($changeset->getHunks());
-
- // Depending on the whitespace mode, we may need to compute a different
- // set of changes than the set of changes in the hunk data (specifically,
- // we might want to consider changed lines which have only whitespace
- // changes as unchanged).
- if ($ignore_all) {
- $engine = new PhabricatorDifferenceEngine();
- $engine->setIgnoreWhitespace(true);
- $no_whitespace_changeset = $engine->generateChangesetFromFileContent(
- $old_file,
- $new_file);
-
- $type_parser = new DifferentialHunkParser();
- $type_parser->parseHunksForLineData($no_whitespace_changeset->getHunks());
-
- $hunk_parser->setOldLineTypeMap($type_parser->getOldLineTypeMap());
- $hunk_parser->setNewLineTypeMap($type_parser->getNewLineTypeMap());
- }
-
$hunk_parser->reparseHunksForSpecialAttributes();
$unchanged = false;
@@ -753,7 +663,6 @@
$this->setSpecialAttributes(array(
self::ATTR_UNCHANGED => $unchanged,
self::ATTR_DELETED => $hunk_parser->getIsDeleted(),
- self::ATTR_WHITELINES => !$hunk_parser->getHasTextChanges(),
self::ATTR_MOVEAWAY => $moveaway,
));
@@ -971,10 +880,6 @@
pht('The contents of this file were not changed.'),
$type);
}
- } else if ($this->isWhitespaceOnly()) {
- $shield = $renderer->renderShield(
- pht('This file was changed only by adding or removing whitespace.'),
- 'whitespace');
} else if ($this->isDeleted()) {
$shield = $renderer->renderShield(
pht('This file was completely deleted.'));
diff --git a/src/applications/differential/parser/DifferentialHunkParser.php b/src/applications/differential/parser/DifferentialHunkParser.php
--- a/src/applications/differential/parser/DifferentialHunkParser.php
+++ b/src/applications/differential/parser/DifferentialHunkParser.php
@@ -7,7 +7,6 @@
private $intraLineDiffs;
private $depthOnlyLines;
private $visibleLinesMask;
- private $whitespaceMode;
/**
* Get a map of lines on which hunks start, other than line 1. This
@@ -125,21 +124,6 @@
return $this->depthOnlyLines;
}
- public function setWhitespaceMode($white_space_mode) {
- $this->whitespaceMode = $white_space_mode;
- return $this;
- }
-
- private function getWhitespaceMode() {
- if ($this->whitespaceMode === null) {
- throw new Exception(
- pht(
- 'You must %s before accessing this data.',
- 'setWhitespaceMode'));
- }
- return $this->whitespaceMode;
- }
-
public function getIsDeleted() {
foreach ($this->getNewLines() as $line) {
if ($line) {
@@ -159,13 +143,6 @@
return false;
}
- /**
- * Returns true if the hunks change any text, not just whitespace.
- */
- public function getHasTextChanges() {
- return $this->getHasChanges('text');
- }
-
/**
* Returns true if the hunks change anything, including whitespace.
*/
@@ -193,9 +170,6 @@
}
if ($o['type'] !== $n['type']) {
- // The types are different, so either the underlying text is actually
- // different or whatever whitespace rules we're using consider them
- // different.
return true;
}
@@ -278,63 +252,6 @@
$this->setOldLines($rebuild_old);
$this->setNewLines($rebuild_new);
- $this->updateChangeTypesForWhitespaceMode();
-
- return $this;
- }
-
- private function updateChangeTypesForWhitespaceMode() {
- $mode = $this->getWhitespaceMode();
-
- $mode_show_all = DifferentialChangesetParser::WHITESPACE_SHOW_ALL;
- if ($mode === $mode_show_all) {
- // If we're showing all whitespace, we don't need to perform any updates.
- return;
- }
-
- $mode_trailing = DifferentialChangesetParser::WHITESPACE_IGNORE_TRAILING;
- $is_trailing = ($mode === $mode_trailing);
-
- $new = $this->getNewLines();
- $old = $this->getOldLines();
- foreach ($old as $key => $o) {
- $n = $new[$key];
-
- if (!$o || !$n) {
- continue;
- }
-
- if ($is_trailing) {
- // In "trailing" mode, we need to identify lines which are marked
- // changed but differ only by trailing whitespace. We mark these lines
- // unchanged.
- if ($o['type'] != $n['type']) {
- if (rtrim($o['text']) === rtrim($n['text'])) {
- $old[$key]['type'] = null;
- $new[$key]['type'] = null;
- }
- }
- } else {
- // In "ignore most" and "ignore all" modes, we need to identify lines
- // which are marked unchanged but have internal whitespace changes.
- // We want to ignore leading and trailing whitespace changes only, not
- // internal whitespace changes (`diff` doesn't have a mode for this, so
- // we have to fix it here). If the text is marked unchanged but the
- // old and new text differs by internal space, mark the lines changed.
- if ($o['type'] === null && $n['type'] === null) {
- if ($o['text'] !== $n['text']) {
- if (trim($o['text']) !== trim($n['text'])) {
- $old[$key]['type'] = '-';
- $new[$key]['type'] = '+';
- }
- }
- }
- }
- }
-
- $this->setOldLines($old);
- $this->setNewLines($new);
-
return $this;
}
diff --git a/src/applications/differential/parser/DifferentialLineAdjustmentMap.php b/src/applications/differential/parser/DifferentialLineAdjustmentMap.php
--- a/src/applications/differential/parser/DifferentialLineAdjustmentMap.php
+++ b/src/applications/differential/parser/DifferentialLineAdjustmentMap.php
@@ -359,7 +359,6 @@
}
$changeset = id(new PhabricatorDifferenceEngine())
- ->setIgnoreWhitespace(true)
->generateChangesetFromFileContent($u_old, $v_old);
$results[$u][$v] = self::newFromHunks(
diff --git a/src/applications/differential/render/DifferentialChangesetHTMLRenderer.php b/src/applications/differential/render/DifferentialChangesetHTMLRenderer.php
--- a/src/applications/differential/render/DifferentialChangesetHTMLRenderer.php
+++ b/src/applications/differential/render/DifferentialChangesetHTMLRenderer.php
@@ -367,7 +367,6 @@
$reference = $this->getRenderingReference();
if ($force !== 'text' &&
- $force !== 'whitespace' &&
$force !== 'none' &&
$force !== 'default') {
throw new Exception(
@@ -388,10 +387,6 @@
'range' => $range,
);
- if ($force == 'whitespace') {
- $meta['whitespace'] = DifferentialChangesetParser::WHITESPACE_SHOW_ALL;
- }
-
$content = array();
$content[] = $message;
if ($force !== 'none') {
diff --git a/src/applications/differential/render/DifferentialChangesetRenderer.php b/src/applications/differential/render/DifferentialChangesetRenderer.php
--- a/src/applications/differential/render/DifferentialChangesetRenderer.php
+++ b/src/applications/differential/render/DifferentialChangesetRenderer.php
@@ -406,9 +406,6 @@
* important (e.g., generated code).
* - `"text"`: Force the text to be shown. This is probably only relevant
* when a file is not changed.
- * - `"whitespace"`: Force the text to be shown, and the diff to be
- * rendered with all whitespace shown. This is probably only relevant
- * when a file is changed only by altering whitespace.
* - `"none"`: Don't show the link (e.g., text not available).
*
* @param string Message explaining why the diff is hidden.
diff --git a/src/applications/differential/storage/DifferentialChangeset.php b/src/applications/differential/storage/DifferentialChangeset.php
--- a/src/applications/differential/storage/DifferentialChangeset.php
+++ b/src/applications/differential/storage/DifferentialChangeset.php
@@ -249,17 +249,6 @@
return $path;
}
- public function getWhitespaceMatters() {
- $config = PhabricatorEnv::getEnvConfig('differential.whitespace-matters');
- foreach ($config as $regexp) {
- if (preg_match($regexp, $this->getFilename())) {
- return true;
- }
- }
-
- return false;
- }
-
public function attachDiff(DifferentialDiff $diff) {
$this->diff = $diff;
return $this;
diff --git a/src/applications/differential/view/DifferentialChangesetDetailView.php b/src/applications/differential/view/DifferentialChangesetDetailView.php
--- a/src/applications/differential/view/DifferentialChangesetDetailView.php
+++ b/src/applications/differential/view/DifferentialChangesetDetailView.php
@@ -9,7 +9,6 @@
private $id;
private $vsChangesetID;
private $renderURI;
- private $whitespace;
private $renderingRef;
private $autoload;
private $loaded;
@@ -42,15 +41,6 @@
return $this->renderingRef;
}
- public function setWhitespace($whitespace) {
- $this->whitespace = $whitespace;
- return $this;
- }
-
- public function getWhitespace() {
- return $this->whitespace;
- }
-
public function setRenderURI($render_uri) {
$this->renderURI = $render_uri;
return $this;
@@ -196,7 +186,6 @@
'left' => $left_id,
'right' => $right_id,
'renderURI' => $this->getRenderURI(),
- 'whitespace' => $this->getWhitespace(),
'highlight' => null,
'renderer' => $this->getRenderer(),
'ref' => $this->getRenderingRef(),
diff --git a/src/applications/differential/view/DifferentialChangesetListView.php b/src/applications/differential/view/DifferentialChangesetListView.php
--- a/src/applications/differential/view/DifferentialChangesetListView.php
+++ b/src/applications/differential/view/DifferentialChangesetListView.php
@@ -7,7 +7,6 @@
private $references = array();
private $inlineURI;
private $renderURI = '/differential/changeset/';
- private $whitespace;
private $background;
private $header;
private $isStandalone;
@@ -100,11 +99,6 @@
return $this;
}
- public function setWhitespace($whitespace) {
- $this->whitespace = $whitespace;
- return $this;
- }
-
public function setVsMap(array $vs_map) {
$this->vsMap = $vs_map;
return $this;
@@ -180,7 +174,6 @@
$detail->setRenderingRef($ref);
$detail->setRenderURI($this->renderURI);
- $detail->setWhitespace($this->whitespace);
$detail->setRenderer($renderer);
if ($this->getParser()) {
@@ -352,8 +345,7 @@
$meta = array();
$qparams = array(
- 'ref' => $ref,
- 'whitespace' => $this->whitespace,
+ 'ref' => $ref,
);
if ($this->standaloneURI) {
diff --git a/src/applications/differential/view/DifferentialRevisionUpdateHistoryView.php b/src/applications/differential/view/DifferentialRevisionUpdateHistoryView.php
--- a/src/applications/differential/view/DifferentialRevisionUpdateHistoryView.php
+++ b/src/applications/differential/view/DifferentialRevisionUpdateHistoryView.php
@@ -5,7 +5,6 @@
private $diffs = array();
private $selectedVersusDiffID;
private $selectedDiffID;
- private $selectedWhitespace;
private $commitsForLinks = array();
private $unitStatus = array();
@@ -25,11 +24,6 @@
return $this;
}
- public function setSelectedWhitespace($whitespace) {
- $this->selectedWhitespace = $whitespace;
- return $this;
- }
-
public function setCommitsForLinks(array $commits) {
assert_instances_of($commits, 'PhabricatorRepositoryCommit');
$this->commitsForLinks = $commits;
@@ -224,28 +218,6 @@
'radios' => $radios,
));
- $options = array(
- DifferentialChangesetParser::WHITESPACE_IGNORE_ALL => pht('Ignore All'),
- DifferentialChangesetParser::WHITESPACE_IGNORE_MOST => pht('Ignore Most'),
- DifferentialChangesetParser::WHITESPACE_IGNORE_TRAILING =>
- pht('Ignore Trailing'),
- DifferentialChangesetParser::WHITESPACE_SHOW_ALL => pht('Show All'),
- );
-
- foreach ($options as $value => $label) {
- $options[$value] = phutil_tag(
- 'option',
- array(
- 'value' => $value,
- 'selected' => ($value == $this->selectedWhitespace)
- ? 'selected'
- : null,
- ),
- $label);
- }
- $select = phutil_tag('select', array('name' => 'whitespace'), $options);
-
-
$table = id(new AphrontTableView($rows));
$table->setHeaders(
array(
@@ -291,13 +263,6 @@
'class' => 'differential-update-history-footer',
),
array(
- phutil_tag(
- 'label',
- array(),
- array(
- pht('Whitespace Changes:'),
- $select,
- )),
phutil_tag(
'button',
array(),
diff --git a/src/applications/diffusion/controller/DiffusionChangeController.php b/src/applications/diffusion/controller/DiffusionChangeController.php
--- a/src/applications/diffusion/controller/DiffusionChangeController.php
+++ b/src/applications/diffusion/controller/DiffusionChangeController.php
@@ -64,9 +64,6 @@
$changeset_view->setRawFileURIs($left_uri, $right_uri);
$changeset_view->setRenderURI($repository->getPathURI('diff/'));
-
- $changeset_view->setWhitespace(
- DifferentialChangesetParser::WHITESPACE_SHOW_ALL);
$changeset_view->setUser($viewer);
$changeset_view->setHeader($changeset_header);
diff --git a/src/applications/diffusion/controller/DiffusionDiffController.php b/src/applications/diffusion/controller/DiffusionDiffController.php
--- a/src/applications/diffusion/controller/DiffusionDiffController.php
+++ b/src/applications/diffusion/controller/DiffusionDiffController.php
@@ -88,9 +88,6 @@
($viewer->getPHID() == $commit->getAuthorPHID()));
$parser->setObjectOwnerPHID($commit->getAuthorPHID());
- $parser->setWhitespaceMode(
- DifferentialChangesetParser::WHITESPACE_SHOW_ALL);
-
$inlines = PhabricatorAuditInlineComment::loadDraftAndPublishedComments(
$viewer,
$commit->getPHID(),
diff --git a/src/docs/user/userguide/differential_faq.diviner b/src/docs/user/userguide/differential_faq.diviner
--- a/src/docs/user/userguide/differential_faq.diviner
+++ b/src/docs/user/userguide/differential_faq.diviner
@@ -51,22 +51,6 @@
PHP. See the `pygments.enabled` configuration setting.
-= What do the whitespace options mean? =
-
-Most of these are pretty straightforward, but "Ignore Most" is not:
-
- - **Show All**: Show all whitespace.
- - **Ignore Trailing**: Ignore changes which only affect trailing whitespace.
- - **Ignore Most**: Ignore changes which only affect leading or trailing
- whitespace (but not whitespace changes between non-whitespace characters)
- in files which are not marked as having significant whitespace.
- In those files, show whitespace changes. By default, Python (.py) and
- Haskell (.lhs, .hs) are marked as having significant whitespace, but this
- can be changed in the `differential.whitespace-matters` configuration
- setting.
- - **Ignore All**: Ignore all whitespace changes in all files.
-
-
= What do the very light green and red backgrounds mean? =
Differential uses these colors to mark changes coming from rebase: they are
diff --git a/src/infrastructure/diff/PhabricatorDifferenceEngine.php b/src/infrastructure/diff/PhabricatorDifferenceEngine.php
--- a/src/infrastructure/diff/PhabricatorDifferenceEngine.php
+++ b/src/infrastructure/diff/PhabricatorDifferenceEngine.php
@@ -10,7 +10,6 @@
final class PhabricatorDifferenceEngine extends Phobject {
- private $ignoreWhitespace;
private $oldName;
private $newName;
@@ -18,19 +17,6 @@
/* -( Configuring the Engine )--------------------------------------------- */
- /**
- * If true, ignore whitespace when computing differences.
- *
- * @param bool Ignore whitespace?
- * @return this
- * @task config
- */
- public function setIgnoreWhitespace($ignore_whitespace) {
- $this->ignoreWhitespace = $ignore_whitespace;
- return $this;
- }
-
-
/**
* Set the name to identify the old file with. Primarily cosmetic.
*
@@ -73,9 +59,6 @@
public function generateRawDiffFromFileContent($old, $new) {
$options = array();
- if ($this->ignoreWhitespace) {
- $options[] = '-bw';
- }
// Generate diffs with full context.
$options[] = '-U65535';
@@ -100,12 +83,10 @@
$new_tmp);
if (!$err) {
- // This indicates that the two files are the same (or, possibly, the
- // same modulo whitespace differences, which is why we can't do this
- // check trivially before running `diff`). Build a synthetic, changeless
- // diff so that we can still render the raw, unchanged file instead of
- // being forced to just say "this file didn't change" since we don't have
- // the content.
+ // This indicates that the two files are the same. Build a synthetic,
+ // changeless diff so that we can still render the raw, unchanged file
+ // instead of being forced to just say "this file didn't change" since we
+ // don't have the content.
$entire_file = explode("\n", $old);
foreach ($entire_file as $k => $line) {
@@ -123,26 +104,6 @@
"+++ {$new_name}\n".
"@@ -1,{$len} +1,{$len} @@\n".
$entire_file."\n";
- } else {
- if ($this->ignoreWhitespace) {
-
- // Under "-bw", `diff` is inconsistent about emitting "\ No newline
- // at end of file". For instance, a long file with a change in the
- // middle will emit a contextless "\ No newline..." at the end if a
- // newline is removed, but not if one is added. A file with a change
- // at the end will emit the "old" "\ No newline..." block only, even
- // if the newline was not removed. Since we're ostensibly ignoring
- // whitespace changes, just drop these lines if they appear anywhere
- // in the diff.
-
- $lines = explode("\n", $diff);
- foreach ($lines as $key => $line) {
- if (isset($line[0]) && $line[0] == '\\') {
- unset($lines[$key]);
- }
- }
- $diff = implode("\n", $lines);
- }
}
return $diff;
diff --git a/webroot/rsrc/js/application/diff/DiffChangeset.js b/webroot/rsrc/js/application/diff/DiffChangeset.js
--- a/webroot/rsrc/js/application/diff/DiffChangeset.js
+++ b/webroot/rsrc/js/application/diff/DiffChangeset.js
@@ -22,7 +22,6 @@
this._renderURI = data.renderURI;
this._ref = data.ref;
- this._whitespace = data.whitespace;
this._renderer = data.renderer;
this._highlight = data.highlight;
this._encoding = data.encoding;
@@ -46,7 +45,6 @@
_renderURI: null,
_ref: null,
- _whitespace: null,
_renderer: null,
_highlight: null,
_encoding: null,
@@ -310,7 +308,6 @@
_getViewParameters: function() {
return {
ref: this._ref,
- whitespace: this._whitespace || '',
renderer: this.getRenderer() || '',
highlight: this._highlight || '',
encoding: this._encoding || ''

File Metadata

Mime Type
text/plain
Expires
Sun, May 12, 3:36 AM (2 w, 6 d ago)
Storage Engine
amazon-s3
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
phabricator/secure/kx/nu/7545dm7s5qyjrssg
Default Alt Text
D20185.diff (32 KB)

Event Timeline