From ef3d1150fcb785025a33b1f8318ab5cca2940582 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Tue, 16 Apr 2013 08:41:36 -0700 Subject: [PATCH] Don't fatal with error in transaction diff Test Plan: /config/edit/metamta.mail-adapter/ Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D5679 --- ...plicationTransactionTextDiffDetailView.php | 24 +++++++++++-------- .../diff/PhabricatorDifferenceEngine.php | 2 +- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/applications/transactions/view/PhabricatorApplicationTransactionTextDiffDetailView.php b/src/applications/transactions/view/PhabricatorApplicationTransactionTextDiffDetailView.php index 2546d38a58..83f016cb2b 100644 --- a/src/applications/transactions/view/PhabricatorApplicationTransactionTextDiffDetailView.php +++ b/src/applications/transactions/view/PhabricatorApplicationTransactionTextDiffDetailView.php @@ -33,20 +33,24 @@ final class PhabricatorApplicationTransactionTextDiffDetailView $new = implode("\n", $new)."\n"; } - $engine = new PhabricatorDifferenceEngine(); - $changeset = $engine->generateChangesetFromFileContent($old, $new); + try { + $engine = new PhabricatorDifferenceEngine(); + $changeset = $engine->generateChangesetFromFileContent($old, $new); - $whitespace_mode = DifferentialChangesetParser::WHITESPACE_SHOW_ALL; + $whitespace_mode = DifferentialChangesetParser::WHITESPACE_SHOW_ALL; - $markup_engine = new PhabricatorMarkupEngine(); - $markup_engine->setViewer($this->getUser()); + $markup_engine = new PhabricatorMarkupEngine(); + $markup_engine->setViewer($this->getUser()); - $parser = new DifferentialChangesetParser(); - $parser->setChangeset($changeset); - $parser->setMarkupEngine($markup_engine); - $parser->setWhitespaceMode($whitespace_mode); + $parser = new DifferentialChangesetParser(); + $parser->setChangeset($changeset); + $parser->setMarkupEngine($markup_engine); + $parser->setWhitespaceMode($whitespace_mode); - return $parser->render(0, PHP_INT_MAX, array()); + return $parser->render(0, PHP_INT_MAX, array()); + } catch (Exception $ex) { + return $ex->getMessage(); + } } } diff --git a/src/infrastructure/diff/PhabricatorDifferenceEngine.php b/src/infrastructure/diff/PhabricatorDifferenceEngine.php index f2de51225c..8c2bf08c7b 100644 --- a/src/infrastructure/diff/PhabricatorDifferenceEngine.php +++ b/src/infrastructure/diff/PhabricatorDifferenceEngine.php @@ -94,7 +94,7 @@ final class PhabricatorDifferenceEngine { Filesystem::writeFile($old_tmp, $old); Filesystem::writeFile($new_tmp, $new); list($err, $diff) = exec_manual( - '/usr/bin/diff %Ls %s %s', + 'diff %Ls %s %s', $options, $old_tmp, $new_tmp);