Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/differential/customfield/DifferentialRevisionIDField.php b/src/applications/differential/customfield/DifferentialRevisionIDField.php
index ae6910e9cc..74c38767d9 100644
--- a/src/applications/differential/customfield/DifferentialRevisionIDField.php
+++ b/src/applications/differential/customfield/DifferentialRevisionIDField.php
@@ -1,68 +1,74 @@
<?php
final class DifferentialRevisionIDField
extends DifferentialCustomField {
+ private $revisionID;
+
public function getFieldKey() {
return 'differential:revision-id';
}
public function getFieldKeyForConduit() {
return 'revisionID';
}
public function getFieldName() {
return pht('Differential Revision');
}
public function getFieldDescription() {
return pht(
'Ties commits to revisions and provides a permananent link between '.
'them.');
}
public function canDisableField() {
return false;
}
public function shouldAppearInCommitMessage() {
return true;
}
- public function shouldAllowEditInCommitMessage() {
- return false;
- }
-
public function parseValueFromCommitMessage($value) {
return self::parseRevisionIDFromURI($value);
}
public function renderCommitMessageValue(array $handles) {
- return PhabricatorEnv::getProductionURI('/D'.$this->getObject()->getID());
+ $id = coalesce($this->revisionID, $this->getObject()->getID());
+ if (!$id) {
+ return null;
+ }
+ return PhabricatorEnv::getProductionURI('/D'.$id);
+ }
+
+ public function readValueFromCommitMessage($value) {
+ $this->revisionID = $value;
}
private static function parseRevisionIDFromURI($uri) {
$path = id(new PhutilURI($uri))->getPath();
$matches = null;
if (preg_match('#^/D(\d+)$#', $path, $matches)) {
$id = (int)$matches[1];
// Make sure the URI is the same as our URI. Basically, we want to ignore
// commits from other Phabricator installs.
if ($uri == PhabricatorEnv::getProductionURI('/D'.$id)) {
return $id;
}
$allowed_uris = PhabricatorEnv::getAllowedURIs('/D'.$id);
foreach ($allowed_uris as $allowed_uri) {
if ($uri == $allowed_uri) {
return $id;
}
}
}
return null;
}
}

File Metadata

Mime Type
text/x-diff
Expires
Mon, Jul 28, 5:26 PM (1 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
187211
Default Alt Text
(2 KB)

Event Timeline