'revision', ); } public function requiresConduit() { return true; } public function requiresAuthentication() { return true; } public function run() { $conduit = $this->getConduit(); $revision_list = $this->getArgument('revision', array()); if (!$revision_list) { throw new ArcanistUsageException( "mark-committed requires a revision number."); } if (count($revision_list) != 1) { throw new ArcanistUsageException( "mark-committed requires exactly one revision."); } $revision_data = $conduit->callMethodSynchronous( 'differential.find', array( 'query' => 'committable', 'guids' => array( $this->getUserPHID(), ), )); try { $revision_id = reset($revision_list); $revision_id = $this->normalizeRevisionID($revision_id); $revision = $this->chooseRevision( $revision_data, $revision_id); } catch (ArcanistChooseInvalidRevisionException $ex) { throw new ArcanistUsageException( "Revision D{$revision_id} is not committable. You can only mark ". "revisions which have been 'accepted' as committed."); } $revision_id = $revision->getID(); $revision_name = $revision->getName(); echo "Marking revision D{$revision_id} '{$revision_name}' committed...\n"; $conduit->callMethodSynchronous( 'differential.markcommitted', array( 'revision_id' => $revision_id, )); echo "Done.\n"; return 0; } }