mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-22 06:42:42 +01:00
When publishing a commit, copy "Related Tasks" from the associated revision (if one exists)
Summary: Fixes T13463. Currently, if you use the web UI to set "Related Tasks" for a revision, the resulting commit does not link to the tasks. If you use "Ref ..." in the message instead, the resulting commit does link to the tasks. Broadly, this should all be cleaner (see T3577) but we can step toward better behavior by just copying these edges when commits are published. Test Plan: - Created a revision. - Used the web UI to edit "Related Tasks". - Landed the revision. - Saw the commit link to the tasks as though I'd used "Ref ..." in the message. Maniphest Tasks: T13463 Differential Revision: https://secure.phabricator.com/D20961
This commit is contained in:
parent
530145ba3b
commit
4904d7711e
1 changed files with 25 additions and 0 deletions
|
@ -405,6 +405,31 @@ final class PhabricatorAuditEditor
|
|||
$phid_map[] = $reverted_phids;
|
||||
}
|
||||
|
||||
// See T13463. Copy "related task" edges from the associated revision, if
|
||||
// one exists.
|
||||
|
||||
$revision = DiffusionCommitRevisionQuery::loadRevisionForCommit(
|
||||
$actor,
|
||||
$object);
|
||||
if ($revision) {
|
||||
$task_phids = PhabricatorEdgeQuery::loadDestinationPHIDs(
|
||||
$revision->getPHID(),
|
||||
DifferentialRevisionHasTaskEdgeType::EDGECONST);
|
||||
$task_phids = array_fuse($task_phids);
|
||||
|
||||
if ($task_phids) {
|
||||
$related_edge = DiffusionCommitHasTaskEdgeType::EDGECONST;
|
||||
$result[] = id(new PhabricatorAuditTransaction())
|
||||
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
|
||||
->setMetadataValue('edge:type', $related_edge)
|
||||
->setNewValue(array('+' => $task_phids));
|
||||
}
|
||||
|
||||
// Mark these objects as unmentionable, since the explicit relationship
|
||||
// is stronger and any mentions are redundant.
|
||||
$phid_map[] = $task_phids;
|
||||
}
|
||||
|
||||
$phid_map = array_mergev($phid_map);
|
||||
$this->addUnmentionablePHIDs($phid_map);
|
||||
|
||||
|
|
Loading…
Reference in a new issue