public static function newRevisionFromConduitWithDiff(array $fields, DifferentialDiff $diff, $user_phid)
 {
     $revision = new DifferentialRevision();
     $revision->setPHID($revision->generatePHID());
     $revision->setAuthorPHID($user_phid);
     $revision->setStatus(DifferentialRevisionStatus::NEEDS_REVIEW);
     $editor = new DifferentialRevisionEditor($revision, $user_phid);
     $editor->copyFieldsFromConduit($fields);
     $editor->addDiff($diff, null);
     $editor->save();
     return $revision;
 }
 public static function newRevisionFromConduitWithDiff(array $fields, DifferentialDiff $diff, $user_phid)
 {
     $revision = new DifferentialRevision();
     $revision->setPHID($revision->generatePHID());
     $revision->setAuthorPHID($user_phid);
     $revision->setStatus(DifferentialRevisionStatus::NEEDS_REVIEW);
     $editor = new DifferentialRevisionEditor($revision, $user_phid);
     $editor->copyFieldsFromConduit($fields);
     $editor->addDiff($diff, null);
     $editor->save();
     // Tasks can only be updated after revision has been saved to the
     // database. Currently tasks are updated only when a revision is created.
     // UI must be used to modify tasks after creating one.
     $editor->updateTasks();
     return $revision;
 }
 private function initializeNewRevision(DifferentialRevision $revision)
 {
     // These fields aren't nullable; set them to sensible defaults if they
     // haven't been configured. We're just doing this so we can generate an
     // ID for the revision if we don't have one already.
     $revision->setLineCount(0);
     if ($revision->getStatus() === null) {
         $revision->setStatus(ArcanistDifferentialRevisionStatus::NEEDS_REVIEW);
     }
     if ($revision->getTitle() === null) {
         $revision->setTitle('Untitled Revision');
     }
     if ($revision->getAuthorPHID() === null) {
         $revision->setAuthorPHID($this->getActorPHID());
     }
     if ($revision->getSummary() === null) {
         $revision->setSummary('');
     }
     if ($revision->getTestPlan() === null) {
         $revision->setTestPlan('');
     }
 }