Display committed date in Revision Status field
Summary: This is slightly more complicated for this reason: - We don't set `dateCommitted` for normal commits, only for markcommitted. -- We need to add this date to old revisions now. Test Plan: Reparse a revision - commit date was set. Conduit `markcommitted` - commit date was set. Run SQL script. Display closed revision. Reviewers: epriestley Reviewed By: epriestley CC: aran, Koolvin Differential Revision: https://secure.phabricator.com/D2282
This commit is contained in:
@@ -68,10 +68,6 @@ final class ConduitAPI_differential_markcommitted_Method
|
||||
DifferentialAction::ACTION_COMMIT);
|
||||
$editor->save();
|
||||
|
||||
$revision->setStatus(ArcanistDifferentialRevisionStatus::COMMITTED);
|
||||
$revision->setDateCommitted(time());
|
||||
$revision->save();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -649,6 +649,8 @@ final class DifferentialRevisionViewController extends DifferentialController {
|
||||
foreach ($aux_fields as $key => $aux_field) {
|
||||
if (!$aux_field->shouldAppearOnRevisionView()) {
|
||||
unset($aux_fields[$key]);
|
||||
} else {
|
||||
$aux_field->setUser($this->getRequest()->getUser());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -352,6 +352,10 @@ final class DifferentialCommentEditor {
|
||||
}
|
||||
}
|
||||
|
||||
if (!$revision->getDateCommitted()) {
|
||||
$revision->setDateCommitted(time());
|
||||
}
|
||||
|
||||
$revision
|
||||
->setStatus(ArcanistDifferentialRevisionStatus::COMMITTED);
|
||||
break;
|
||||
|
||||
@@ -32,7 +32,8 @@ final class DifferentialRevisionStatusFieldSpecification
|
||||
$diff = $this->getDiff();
|
||||
|
||||
$status = $revision->getStatus();
|
||||
$next_step = null;
|
||||
$info = null;
|
||||
|
||||
if ($status == ArcanistDifferentialRevisionStatus::ACCEPTED) {
|
||||
switch ($diff->getSourceControlSystem()) {
|
||||
case PhabricatorRepositoryType::REPOSITORY_TYPE_MERCURIAL:
|
||||
@@ -46,12 +47,17 @@ final class DifferentialRevisionStatusFieldSpecification
|
||||
break;
|
||||
}
|
||||
if ($next_step) {
|
||||
$next_step = ' · Next step: '.$next_step;
|
||||
$info = ' · Next step: '.$next_step;
|
||||
}
|
||||
|
||||
} else if ($status == ArcanistDifferentialRevisionStatus::CLOSED) {
|
||||
$committed = $revision->getDateCommitted();
|
||||
$info = ' ('.phabricator_datetime($committed, $this->getUser()).')';
|
||||
}
|
||||
|
||||
$status =
|
||||
ArcanistDifferentialRevisionStatus::getNameForRevisionStatus($status);
|
||||
return '<strong>'.$status.'</strong>'.$next_step;
|
||||
return '<strong>'.$status.'</strong>'.$info;
|
||||
}
|
||||
|
||||
public function shouldAppearOnRevisionList() {
|
||||
|
||||
@@ -10,6 +10,7 @@ phutil_require_module('arcanist', 'differential/constants/revisionstatus');
|
||||
|
||||
phutil_require_module('phabricator', 'applications/differential/field/specification/base');
|
||||
phutil_require_module('phabricator', 'applications/repository/constants/repositorytype');
|
||||
phutil_require_module('phabricator', 'view/utils');
|
||||
|
||||
|
||||
phutil_require_source('DifferentialRevisionStatusFieldSpecification.php');
|
||||
|
||||
@@ -95,6 +95,12 @@ abstract class PhabricatorRepositoryCommitMessageParserWorker
|
||||
|
||||
if ($revision->getStatus() !=
|
||||
ArcanistDifferentialRevisionStatus::COMMITTED) {
|
||||
|
||||
$date_committed = $this->getDateCommitted($commit);
|
||||
if ($date_committed) {
|
||||
$revision->setDateCommitted($date_committed);
|
||||
}
|
||||
|
||||
$message = null;
|
||||
$committer = $data->getCommitDetail('authorPHID');
|
||||
if (!$committer) {
|
||||
@@ -112,6 +118,10 @@ abstract class PhabricatorRepositoryCommitMessageParserWorker
|
||||
}
|
||||
}
|
||||
|
||||
protected function getDateCommitted(PhabricatorRepositoryCommit $commit) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* When querying for revisions by hash, more than one revision may be found.
|
||||
* This function identifies the "best" revision from such a set. Typically,
|
||||
|
||||
@@ -54,5 +54,8 @@ final class PhabricatorRepositorySvnCommitMessageParserWorker
|
||||
return array();
|
||||
}
|
||||
|
||||
protected function getDateCommitted(PhabricatorRepositoryCommit $commit) {
|
||||
return $commit->getEpoch();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user