protected function getAbsoluteRepositoryPathForChangeset(DifferentialChangeset $changeset)
 {
     $repository = $this->loadRepository();
     if (!$repository) {
         return '/' . ltrim($changeset->getFilename(), '/');
     }
     $diff = $this->getDiff();
     return $changeset->getAbsoluteRepositoryPath($repository, $diff);
 }
 protected function buildInlineInfoDictionary(DifferentialInlineComment $inline, DifferentialChangeset $changeset = null)
 {
     $file_path = null;
     $diff_id = null;
     if ($changeset) {
         $file_path = $inline->getIsNewFile() ? $changeset->getFilename() : $changeset->getOldFile();
         $diff_id = $changeset->getDiffID();
     }
     return array('id' => $inline->getID(), 'authorPHID' => $inline->getAuthorPHID(), 'filePath' => $file_path, 'isNewFile' => $inline->getIsNewFile(), 'lineNumber' => $inline->getLineNumber(), 'lineLength' => $inline->getLineLength(), 'diffID' => $diff_id, 'content' => $inline->getContent());
 }
 private function buildRawFileResponse(DifferentialChangeset $changeset, $is_new)
 {
     $viewer = $this->getViewer();
     if ($is_new) {
         $key = 'raw:new:phid';
     } else {
         $key = 'raw:old:phid';
     }
     $metadata = $changeset->getMetadata();
     $file = null;
     $phid = idx($metadata, $key);
     if ($phid) {
         $file = id(new PhabricatorFileQuery())->setViewer($viewer)->withPHIDs(array($phid))->execute();
         if ($file) {
             $file = head($file);
         }
     }
     if (!$file) {
         // This is just building a cache of the changeset content in the file
         // tool, and is safe to run on a read pathway.
         $unguard = AphrontWriteGuard::beginScopedUnguardedWrites();
         if ($is_new) {
             $data = $changeset->makeNewFile();
         } else {
             $data = $changeset->makeOldFile();
         }
         $file = PhabricatorFile::newFromFileData($data, array('name' => $changeset->getFilename(), 'mime-type' => 'text/plain'));
         $metadata[$key] = $file->getPHID();
         $changeset->setMetadata($metadata);
         $changeset->save();
         unset($unguard);
     }
     return $file->getRedirectResponse();
 }
 public function setChangeset(DifferentialChangeset $changeset)
 {
     $this->changeset = $changeset;
     $this->setFilename($changeset->getFilename());
     return $this;
 }