diff --git a/src/applications/diffusion/conduit/DiffusionQueryCommitsConduitAPIMethod.php b/src/applications/diffusion/conduit/DiffusionQueryCommitsConduitAPIMethod.php --- a/src/applications/diffusion/conduit/DiffusionQueryCommitsConduitAPIMethod.php +++ b/src/applications/diffusion/conduit/DiffusionQueryCommitsConduitAPIMethod.php @@ -89,18 +89,18 @@ 'repositoryPHID' => $commit->getRepository()->getPHID(), 'identifier' => $commit->getCommitIdentifier(), 'epoch' => $commit->getEpoch(), - 'authorEpoch' => $commit_data->getCommitDetail('authorEpoch'), + 'authorEpoch' => $commit_data->getAuthorEpoch(), 'uri' => $uri, 'isImporting' => !$commit->isImported(), 'summary' => $commit->getSummary(), 'authorPHID' => $commit->getAuthorPHID(), 'committerPHID' => $commit_data->getCommitDetail('committerPHID'), - 'author' => $commit_data->getAuthorName(), - 'authorName' => $commit_data->getCommitDetail('authorName'), - 'authorEmail' => $commit_data->getCommitDetail('authorEmail'), - 'committer' => $commit_data->getCommitDetail('committer'), - 'committerName' => $commit_data->getCommitDetail('committerName'), - 'committerEmail' => $commit_data->getCommitDetail('committerEmail'), + 'author' => $commit_data->getAuthorString(), + 'authorName' => $commit_data->getAuthorDisplayName(), + 'authorEmail' => $commit_data->getAuthorEmail(), + 'committer' => $commit_data->getCommitterString(), + 'committerName' => $commit_data->getCommitterDisplayName(), + 'committerEmail' => $commit_data->getCommitterEmail(), 'hashes' => array(), ); diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php --- a/src/applications/diffusion/controller/DiffusionCommitController.php +++ b/src/applications/diffusion/controller/DiffusionCommitController.php @@ -626,7 +626,7 @@ $author_view = $commit->newCommitAuthorView($viewer); if ($author_view) { - $author_date = $data->getCommitDetail('authorEpoch'); + $author_date = $data->getAuthorEpoch(); $author_date = phabricator_datetime($author_date, $viewer); $provenance_list->addItem( diff --git a/src/applications/diffusion/data/DiffusionPathChange.php b/src/applications/diffusion/data/DiffusionPathChange.php --- a/src/applications/diffusion/data/DiffusionPathChange.php +++ b/src/applications/diffusion/data/DiffusionPathChange.php @@ -104,7 +104,7 @@ public function getAuthorName() { if ($this->getCommitData()) { - return $this->getCommitData()->getAuthorName(); + return $this->getCommitData()->getAuthorString(); } return null; } diff --git a/src/applications/diffusion/view/DiffusionTagListView.php b/src/applications/diffusion/view/DiffusionTagListView.php --- a/src/applications/diffusion/view/DiffusionTagListView.php +++ b/src/applications/diffusion/view/DiffusionTagListView.php @@ -150,7 +150,7 @@ if ($commit->getAuthorPHID()) { $author = $this->handles[$commit->getAuthorPHID()]->renderLink(); } else if ($commit->getCommitData()) { - $author = self::renderName($commit->getCommitData()->getAuthorName()); + $author = self::renderName($commit->getCommitData()->getAuthorString()); } else { $author = self::renderName($tag->getAuthor()); } diff --git a/src/applications/repository/management/PhabricatorRepositoryManagementRebuildIdentitiesWorkflow.php b/src/applications/repository/management/PhabricatorRepositoryManagementRebuildIdentitiesWorkflow.php --- a/src/applications/repository/management/PhabricatorRepositoryManagementRebuildIdentitiesWorkflow.php +++ b/src/applications/repository/management/PhabricatorRepositoryManagementRebuildIdentitiesWorkflow.php @@ -202,11 +202,11 @@ $needs_update = false; $data = $commit->getCommitData(); - $author_name = $data->getAuthorName(); + $author = $data->getAuthorString(); $author_identity = $this->getIdentityForCommit( $commit, - $author_name); + $author); $author_phid = $commit->getAuthorIdentityPHID(); $identity_phid = $author_identity->getPHID(); @@ -218,7 +218,7 @@ $needs_update = true; } - $committer_name = $data->getCommitDetail('committer', null); + $committer_name = $data->getCommitterString(); $committer_phid = $commit->getCommitterIdentityPHID(); if (strlen($committer_name)) { $committer_identity = $this->getIdentityForCommit( diff --git a/src/applications/repository/storage/PhabricatorRepositoryCommit.php b/src/applications/repository/storage/PhabricatorRepositoryCommit.php --- a/src/applications/repository/storage/PhabricatorRepositoryCommit.php +++ b/src/applications/repository/storage/PhabricatorRepositoryCommit.php @@ -515,12 +515,12 @@ private function getRawAuthorStringForDisplay() { $data = $this->getCommitData(); - return $data->getAuthorName(); + return $data->getAuthorString(); } private function getRawCommitterStringForDisplay() { $data = $this->getCommitData(); - return $data->getCommitDetail('committer'); + return $data->getCommitterString(); } public function newCommitRef(PhabricatorUser $viewer) { @@ -898,12 +898,7 @@ $committer_user_phid = null; } - $author_epoch = $data->getCommitDetail('authorEpoch'); - if ($author_epoch) { - $author_epoch = (int)$author_epoch; - } else { - $author_epoch = null; - } + $author_epoch = $data->getAuthorEpoch(); $audit_status = $this->getAuditStatusObject(); diff --git a/src/applications/repository/storage/PhabricatorRepositoryCommitData.php b/src/applications/repository/storage/PhabricatorRepositoryCommitData.php --- a/src/applications/repository/storage/PhabricatorRepositoryCommitData.php +++ b/src/applications/repository/storage/PhabricatorRepositoryCommitData.php @@ -92,13 +92,55 @@ return array_values($holds); } - public function setCommitRef(DiffusionCommitRef $ref) { - $this->setCommitDetail('commitRef', $ref->newDictionary()); + public function getAuthorString() { + $author = phutil_string_cast($this->authorName); + + if (strlen($author)) { + return $author; + } + + return null; } - public function newCommitRef() { - $map = $this->getCommitDetail('commitRef', array()); - return DiffusionCommitRef::neWFromDictionary($map); + public function getAuthorDisplayName() { + return $this->getCommitDetailString('authorName'); + } + + public function getAuthorEmail() { + return $this->getCommitDetailString('authorEmail'); + } + + public function getAuthorEpoch() { + $epoch = $this->getCommitDetail('authorEpoch'); + + if ($epoch) { + return (int)$epoch; + } + + return null; + } + + public function getCommitterString() { + return $this->getCommitDetailString('committer'); + } + + public function getCommitterDisplayName() { + return $this->getCommitDetailString('committerName'); + } + + public function getCommitterEmail() { + return $this->getCommitDetailString('committerEmail'); + } + + private function getCommitDetailString($key) { + $string = $this->getCommitDetail($key); + $string = phutil_string_cast($string); + + if (strlen($string)) { + return $string; + } + + return null; } } diff --git a/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php b/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php --- a/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php +++ b/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php @@ -116,9 +116,9 @@ array( 'description' => $data->getCommitMessage(), 'summary' => $data->getSummary(), - 'authorName' => $data->getAuthorName(), + 'authorName' => $data->getAuthorString(), 'authorPHID' => $commit->getAuthorPHID(), - 'committerName' => $data->getCommitDetail('committer'), + 'committerName' => $data->getCommitterString(), 'committerPHID' => $data->getCommitDetail('committerPHID'), ));