From 62f18914db1174c060bd5e1687943ab91568002b Mon Sep 17 00:00:00 2001 From: epriestley Date: Wed, 7 Mar 2012 09:47:31 -0800 Subject: [PATCH] Add "mark committed" action to the web UI Summary: When a revision is accepted, allow users to manually mark it committed if there's a daemon/tracking problem. This shouldn't happen in most installs but we have less-robust support for Mercurial and some installs may not be fully configured. Test Plan: Marked a revision committed. Reviewers: btrahan, Makinde Reviewed By: Makinde CC: aran, epriestley Maniphest Tasks: T948 Differential Revision: https://secure.phabricator.com/D1808 --- .../differential/constants/action/DifferentialAction.php | 3 ++- .../revisionview/DifferentialRevisionViewController.php | 1 + .../editor/comment/DifferentialCommentEditor.php | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/applications/differential/constants/action/DifferentialAction.php b/src/applications/differential/constants/action/DifferentialAction.php index c39d10803e..5cc6c38944 100644 --- a/src/applications/differential/constants/action/DifferentialAction.php +++ b/src/applications/differential/constants/action/DifferentialAction.php @@ -1,7 +1,7 @@ 'Resign as Reviewer', self::ACTION_ADDREVIEWERS => 'Add Reviewers', self::ACTION_ADDCCS => 'Add CCs', + self::ACTION_COMMIT => 'Mark Committed', ); if (!empty($verbs[$action])) { diff --git a/src/applications/differential/controller/revisionview/DifferentialRevisionViewController.php b/src/applications/differential/controller/revisionview/DifferentialRevisionViewController.php index 2b40f8dc24..e35c7370b7 100644 --- a/src/applications/differential/controller/revisionview/DifferentialRevisionViewController.php +++ b/src/applications/differential/controller/revisionview/DifferentialRevisionViewController.php @@ -445,6 +445,7 @@ class DifferentialRevisionViewController extends DifferentialController { $actions[DifferentialAction::ACTION_ABANDON] = true; $actions[DifferentialAction::ACTION_REQUEST] = true; $actions[DifferentialAction::ACTION_RETHINK] = true; + $actions[DifferentialAction::ACTION_COMMIT] = true; break; case ArcanistDifferentialRevisionStatus::COMMITTED: break; diff --git a/src/applications/differential/editor/comment/DifferentialCommentEditor.php b/src/applications/differential/editor/comment/DifferentialCommentEditor.php index c6a6afa062..0ea5f93255 100644 --- a/src/applications/differential/editor/comment/DifferentialCommentEditor.php +++ b/src/applications/differential/editor/comment/DifferentialCommentEditor.php @@ -320,6 +320,14 @@ class DifferentialCommentEditor { break; case DifferentialAction::ACTION_COMMIT: + + // TODO: We allow this from any state because the daemons are + // considered authoritative. However, this technically means that anyone + // can mark anything committed at any time with the right POST. + // Ideally we should set a flag on the editor to tell it whether it + // should enforce the web workflow rules (actor must be author and + // state must be 'accepted') or the daemon workflow rules (no rules). + $revision ->setStatus(ArcanistDifferentialRevisionStatus::COMMITTED); break;