From 2df96ed405e218e1e0bb4df1835a67749ae25e9e Mon Sep 17 00:00:00 2001 From: epriestley Date: Tue, 29 Sep 2015 07:09:19 -0700 Subject: [PATCH] Allow users to skip "arc:prompt" by entering no text Summary: Fixes T9476. Currently, if you enter no text in "arc:prompt", we abort resolution immediately. However, this is a bit inconsistent (other rules that fail to resolve are skipped) it is reasonable to put some default rule behind "arc:prompt" so that you can just mash enter to select it. This construction is unusual, but seems fine and sensible to me. If you're using "arc:prompt" as the last rule, the behavior is the same as before, so this should only make the rule more useful. Test Plan: - Ran `arc which --base 'arc:prompt, git:HEAD^'` with and without the patch. - Without the patch, entering no text at "arc:prompt" failed immediately. - With the patch, entering no text caused fallback to the "git:HEAD^" rule. Reviewers: chad Reviewed By: chad Maniphest Tasks: T9476 Differential Revision: https://secure.phabricator.com/D14187 --- src/parser/ArcanistBaseCommitParser.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/parser/ArcanistBaseCommitParser.php b/src/parser/ArcanistBaseCommitParser.php index 9650ae1b..af2a71ff 100644 --- a/src/parser/ArcanistBaseCommitParser.php +++ b/src/parser/ArcanistBaseCommitParser.php @@ -133,7 +133,13 @@ final class ArcanistBaseCommitParser extends Phobject { case 'prompt': $reason = pht('it is what you typed when prompted.'); $this->api->setBaseCommitExplanation($reason); - return phutil_console_prompt(pht('Against which commit?')); + $result = phutil_console_prompt(pht('Against which commit?')); + if (!strlen($result)) { + // Allow the user to continue to the next rule by entering no + // text. + return null; + } + return $result; case 'local': case 'user': case 'project':