mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-27 14:09:11 +01:00
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:
parent
d9ce80aa17
commit
1f2cf78c1b
8 changed files with 36 additions and 7 deletions
7
resources/sql/patches/135.datecommitted.sql
Normal file
7
resources/sql/patches/135.datecommitted.sql
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
UPDATE phabricator_differential.differential_revision SET
|
||||||
|
dateCommitted = (
|
||||||
|
SELECT MIN(dateCreated)
|
||||||
|
FROM phabricator_differential.differential_comment
|
||||||
|
WHERE revisionID = differential_revision.id AND action = 'commit'
|
||||||
|
)
|
||||||
|
WHERE status = 3 AND dateCommitted IS NULL;
|
|
@ -68,10 +68,6 @@ final class ConduitAPI_differential_markcommitted_Method
|
||||||
DifferentialAction::ACTION_COMMIT);
|
DifferentialAction::ACTION_COMMIT);
|
||||||
$editor->save();
|
$editor->save();
|
||||||
|
|
||||||
$revision->setStatus(ArcanistDifferentialRevisionStatus::COMMITTED);
|
|
||||||
$revision->setDateCommitted(time());
|
|
||||||
$revision->save();
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -649,6 +649,8 @@ final class DifferentialRevisionViewController extends DifferentialController {
|
||||||
foreach ($aux_fields as $key => $aux_field) {
|
foreach ($aux_fields as $key => $aux_field) {
|
||||||
if (!$aux_field->shouldAppearOnRevisionView()) {
|
if (!$aux_field->shouldAppearOnRevisionView()) {
|
||||||
unset($aux_fields[$key]);
|
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
|
$revision
|
||||||
->setStatus(ArcanistDifferentialRevisionStatus::COMMITTED);
|
->setStatus(ArcanistDifferentialRevisionStatus::COMMITTED);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -32,7 +32,8 @@ final class DifferentialRevisionStatusFieldSpecification
|
||||||
$diff = $this->getDiff();
|
$diff = $this->getDiff();
|
||||||
|
|
||||||
$status = $revision->getStatus();
|
$status = $revision->getStatus();
|
||||||
$next_step = null;
|
$info = null;
|
||||||
|
|
||||||
if ($status == ArcanistDifferentialRevisionStatus::ACCEPTED) {
|
if ($status == ArcanistDifferentialRevisionStatus::ACCEPTED) {
|
||||||
switch ($diff->getSourceControlSystem()) {
|
switch ($diff->getSourceControlSystem()) {
|
||||||
case PhabricatorRepositoryType::REPOSITORY_TYPE_MERCURIAL:
|
case PhabricatorRepositoryType::REPOSITORY_TYPE_MERCURIAL:
|
||||||
|
@ -46,12 +47,17 @@ final class DifferentialRevisionStatusFieldSpecification
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ($next_step) {
|
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 =
|
$status =
|
||||||
ArcanistDifferentialRevisionStatus::getNameForRevisionStatus($status);
|
ArcanistDifferentialRevisionStatus::getNameForRevisionStatus($status);
|
||||||
return '<strong>'.$status.'</strong>'.$next_step;
|
return '<strong>'.$status.'</strong>'.$info;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearOnRevisionList() {
|
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/differential/field/specification/base');
|
||||||
phutil_require_module('phabricator', 'applications/repository/constants/repositorytype');
|
phutil_require_module('phabricator', 'applications/repository/constants/repositorytype');
|
||||||
|
phutil_require_module('phabricator', 'view/utils');
|
||||||
|
|
||||||
|
|
||||||
phutil_require_source('DifferentialRevisionStatusFieldSpecification.php');
|
phutil_require_source('DifferentialRevisionStatusFieldSpecification.php');
|
||||||
|
|
|
@ -95,6 +95,12 @@ abstract class PhabricatorRepositoryCommitMessageParserWorker
|
||||||
|
|
||||||
if ($revision->getStatus() !=
|
if ($revision->getStatus() !=
|
||||||
ArcanistDifferentialRevisionStatus::COMMITTED) {
|
ArcanistDifferentialRevisionStatus::COMMITTED) {
|
||||||
|
|
||||||
|
$date_committed = $this->getDateCommitted($commit);
|
||||||
|
if ($date_committed) {
|
||||||
|
$revision->setDateCommitted($date_committed);
|
||||||
|
}
|
||||||
|
|
||||||
$message = null;
|
$message = null;
|
||||||
$committer = $data->getCommitDetail('authorPHID');
|
$committer = $data->getCommitDetail('authorPHID');
|
||||||
if (!$committer) {
|
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.
|
* When querying for revisions by hash, more than one revision may be found.
|
||||||
* This function identifies the "best" revision from such a set. Typically,
|
* This function identifies the "best" revision from such a set. Typically,
|
||||||
|
|
|
@ -54,5 +54,8 @@ final class PhabricatorRepositorySvnCommitMessageParserWorker
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getDateCommitted(PhabricatorRepositoryCommit $commit) {
|
||||||
|
return $commit->getEpoch();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue