mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-22 14:52:40 +01:00
68f28a1718
Summary: Ref T13546. This has a lot of dangerously rough edges, but has managed to land at least one commit in each Git and Mercurial. Test Plan: - Landed one commit under ideal conditions in Git and Mercurial. - See followups. Maniphest Tasks: T13546 Differential Revision: https://secure.phabricator.com/D21315
36 lines
869 B
PHP
36 lines
869 B
PHP
<?php
|
|
|
|
final class ArcanistMercurialCommitMessageHardpointQuery
|
|
extends ArcanistWorkflowMercurialHardpointQuery {
|
|
|
|
public function getHardpoints() {
|
|
return array(
|
|
ArcanistCommitRef::HARDPOINT_MESSAGE,
|
|
);
|
|
}
|
|
|
|
protected function canLoadRef(ArcanistRef $ref) {
|
|
return ($ref instanceof ArcanistCommitRef);
|
|
}
|
|
|
|
public function loadHardpoint(array $refs, $hardpoint) {
|
|
$api = $this->getRepositoryAPI();
|
|
|
|
$hashes = mpull($refs, 'getCommitHash');
|
|
$unique_hashes = array_fuse($hashes);
|
|
|
|
// TODO: Batch this properly and make it future oriented.
|
|
|
|
$messages = array();
|
|
foreach ($unique_hashes as $unique_hash) {
|
|
$messages[$unique_hash] = $api->getCommitMessage($unique_hash);
|
|
}
|
|
|
|
foreach ($hashes as $ref_key => $hash) {
|
|
$hashes[$ref_key] = $messages[$hash];
|
|
}
|
|
|
|
yield $this->yieldMap($hashes);
|
|
}
|
|
|
|
}
|