From 032b9b30b0721c3febb5fa355db14cb0bb419273 Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Fri, 11 May 2012 18:40:02 -0700 Subject: [PATCH] Provide user-friendly error in arc diff --update Summary: If you forget to provide an argument for --update and have another argument following it (e.g. HEAD^), we should provide a nice error message instead of passing that argument through to a conduit call and then printing the conduit error. Test Plan: ran 'arc diff --update HEAD^' and got a nice error message Reviewers: epriestley, jungejason, vrana Reviewed By: epriestley CC: aran, Koolvin Differential Revision: https://secure.phabricator.com/D2468 --- src/workflow/diff/ArcanistDiffWorkflow.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/workflow/diff/ArcanistDiffWorkflow.php b/src/workflow/diff/ArcanistDiffWorkflow.php index 13f30a57..47ca9f89 100644 --- a/src/workflow/diff/ArcanistDiffWorkflow.php +++ b/src/workflow/diff/ArcanistDiffWorkflow.php @@ -1278,7 +1278,12 @@ EOTEXT return $this->getCommitMessageFromUser(); } } else if ($is_update) { - return $this->getCommitMessageFromRevision($is_update); + $revision_id = $this->normalizeRevisionID($is_update); + if (!is_numeric($revision_id)) { + throw new ArcanistUsageException( + 'Parameter to --update must be a Differential Revision number'); + } + return $this->getCommitMessageFromRevision($revision_id); } else { // This is --raw without enough info to create a revision, so force just // a diff. @@ -1484,7 +1489,7 @@ EOTEXT * @task message */ private function getCommitMessageFromRevision($revision_id) { - $id = $this->normalizeRevisionID($revision_id); + $id = $revision_id; $revision = $this->getConduit()->callMethodSynchronous( 'differential.query',