Page MenuHomePhabricator

D10877.diff
No OneTemporary

D10877.diff

diff --git a/resources/sql/autopatches/20141119.commitpedge.sql b/resources/sql/autopatches/20141119.commitpedge.sql
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20141119.commitpedge.sql
@@ -0,0 +1,11 @@
+INSERT IGNORE INTO {$NAMESPACE}_repository.edge
+ (src, type, dst, dateCreated, seq)
+ SELECT src, 41, dst, dateCreated, seq
+ FROM {$NAMESPACE}_repository.edge
+ WHERE type = 15;
+
+INSERT IGNORE INTO {$NAMESPACE}_project.edge
+ (src, type, dst, dateCreated, seq)
+ SELECT src, 42, dst, dateCreated, seq
+ FROM {$NAMESPACE}_project.edge
+ WHERE type = 16;
diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php
--- a/src/applications/diffusion/controller/DiffusionCommitController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitController.php
@@ -420,7 +420,6 @@
->withSourcePHIDs(array($commit_phid))
->withEdgeTypes(array(
DiffusionCommitHasTaskEdgeType::EDGECONST,
- PhabricatorEdgeConfig::TYPE_COMMIT_HAS_PROJECT,
PhabricatorEdgeConfig::TYPE_COMMIT_HAS_DREV,
));
@@ -428,8 +427,6 @@
$task_phids = array_keys(
$edges[$commit_phid][DiffusionCommitHasTaskEdgeType::EDGECONST]);
- $proj_phids = array_keys(
- $edges[$commit_phid][PhabricatorEdgeConfig::TYPE_COMMIT_HAS_PROJECT]);
$revision_phid = key(
$edges[$commit_phid][PhabricatorEdgeConfig::TYPE_COMMIT_HAS_DREV]);
@@ -629,15 +626,6 @@
$props['Tasks'] = $task_list;
}
- if ($proj_phids) {
- $proj_list = array();
- foreach ($proj_phids as $phid) {
- $proj_list[] = $handles[$phid]->renderLink();
- }
- $proj_list = phutil_implode_html(phutil_tag('br'), $proj_list);
- $props['Projects'] = $proj_list;
- }
-
return $props;
}
diff --git a/src/applications/diffusion/controller/DiffusionCommitEditController.php b/src/applications/diffusion/controller/DiffusionCommitEditController.php
--- a/src/applications/diffusion/controller/DiffusionCommitEditController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitEditController.php
@@ -22,7 +22,7 @@
}
$commit_phid = $commit->getPHID();
- $edge_type = PhabricatorEdgeConfig::TYPE_COMMIT_HAS_PROJECT;
+ $edge_type = PhabricatorProjectObjectHasProjectEdgeType::EDGECONST;
$current_proj_phids = PhabricatorEdgeQuery::loadDestinationPHIDs(
$commit_phid,
$edge_type);
@@ -30,23 +30,17 @@
$proj_t_values = $handles;
if ($request->isFormPost()) {
+ $xactions = array();
$proj_phids = $request->getArr('projects');
- $new_proj_phids = array_values($proj_phids);
- $rem_proj_phids = array_diff($current_proj_phids,
- $new_proj_phids);
-
- $editor = id(new PhabricatorEdgeEditor());
- foreach ($rem_proj_phids as $phid) {
- $editor->removeEdge($commit_phid, $edge_type, $phid);
- }
- foreach ($new_proj_phids as $phid) {
- $editor->addEdge($commit_phid, $edge_type, $phid);
- }
- $editor->save();
-
- id(new PhabricatorSearchIndexer())
- ->queueDocumentForIndexing($commit->getPHID());
-
+ $xactions[] = id(new PhabricatorAuditTransaction())
+ ->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
+ ->setMetadataValue('edge:type', $edge_type)
+ ->setNewValue(array('=' => array_fuse($proj_phids)));
+ $editor = id(new PhabricatorAuditEditor())
+ ->setActor($user)
+ ->setContinueOnNoEffect(true)
+ ->setContentSourceFromRequest($request);
+ $xactions = $editor->applyTransactions($commit, $xactions);
return id(new AphrontRedirectResponse())
->setURI('/r'.$callsign.$commit->getCommitIdentifier());
}
diff --git a/src/applications/maniphest/search/ManiphestSearchIndexer.php b/src/applications/maniphest/search/ManiphestSearchIndexer.php
--- a/src/applications/maniphest/search/ManiphestSearchIndexer.php
+++ b/src/applications/maniphest/search/ManiphestSearchIndexer.php
@@ -39,14 +39,6 @@
new ManiphestTransactionQuery(),
array($phid));
- foreach ($task->getProjectPHIDs() as $phid) {
- $doc->addRelationship(
- PhabricatorSearchRelationship::RELATIONSHIP_PROJECT,
- $phid,
- PhabricatorProjectProjectPHIDType::TYPECONST,
- $task->getDateModified()); // Bogus.
- }
-
$owner = $task->getOwnerPHID();
if ($owner) {
$doc->addRelationship(
diff --git a/src/applications/repository/search/PhabricatorRepositoryCommitSearchIndexer.php b/src/applications/repository/search/PhabricatorRepositoryCommitSearchIndexer.php
--- a/src/applications/repository/search/PhabricatorRepositoryCommitSearchIndexer.php
+++ b/src/applications/repository/search/PhabricatorRepositoryCommitSearchIndexer.php
@@ -47,19 +47,6 @@
$date_created);
}
- $project_phids = PhabricatorEdgeQuery::loadDestinationPHIDs(
- $commit->getPHID(),
- PhabricatorEdgeConfig::TYPE_COMMIT_HAS_PROJECT);
- if ($project_phids) {
- foreach ($project_phids as $project_phid) {
- $doc->addRelationship(
- PhabricatorSearchRelationship::RELATIONSHIP_PROJECT,
- $project_phid,
- PhabricatorProjectProjectPHIDType::TYPECONST,
- $date_created);
- }
- }
-
$doc->addRelationship(
PhabricatorSearchRelationship::RELATIONSHIP_REPOSITORY,
$repository->getPHID(),
diff --git a/src/applications/repository/storage/PhabricatorRepositoryCommit.php b/src/applications/repository/storage/PhabricatorRepositoryCommit.php
--- a/src/applications/repository/storage/PhabricatorRepositoryCommit.php
+++ b/src/applications/repository/storage/PhabricatorRepositoryCommit.php
@@ -5,6 +5,7 @@
implements
PhabricatorPolicyInterface,
PhabricatorFlaggableInterface,
+ PhabricatorProjectInterface,
PhabricatorTokenReceiverInterface,
PhabricatorSubscribableInterface,
PhabricatorMentionableInterface,
diff --git a/src/applications/search/index/PhabricatorSearchDocumentIndexer.php b/src/applications/search/index/PhabricatorSearchDocumentIndexer.php
--- a/src/applications/search/index/PhabricatorSearchDocumentIndexer.php
+++ b/src/applications/search/index/PhabricatorSearchDocumentIndexer.php
@@ -47,6 +47,11 @@
$this->indexSubscribers($document);
}
+ // Automatically build project relationships
+ if ($object instanceof PhabricatorProjectInterface) {
+ $this->indexProjects($document, $object);
+ }
+
$engine = PhabricatorSearchEngineSelector::newSelector()->newEngine();
try {
$engine->reindexAbstractDocument($document);
@@ -93,6 +98,24 @@
}
}
+ protected function indexProjects(
+ PhabricatorSearchAbstractDocument $doc,
+ PhabricatorProjectInterface $object) {
+
+ $project_phids = PhabricatorEdgeQuery::loadDestinationPHIDs(
+ $object->getPHID(),
+ PhabricatorProjectObjectHasProjectEdgeType::EDGECONST);
+ if ($project_phids) {
+ foreach ($project_phids as $project_phid) {
+ $doc->addRelationship(
+ PhabricatorSearchRelationship::RELATIONSHIP_PROJECT,
+ $project_phid,
+ PhabricatorProjectProjectPHIDType::TYPECONST,
+ $doc->getDocumentModified()); // Bogus timestamp.
+ }
+ }
+ }
+
protected function indexTransactions(
PhabricatorSearchAbstractDocument $doc,
PhabricatorApplicationTransactionQuery $query,
diff --git a/src/infrastructure/edges/constants/PhabricatorEdgeConfig.php b/src/infrastructure/edges/constants/PhabricatorEdgeConfig.php
--- a/src/infrastructure/edges/constants/PhabricatorEdgeConfig.php
+++ b/src/infrastructure/edges/constants/PhabricatorEdgeConfig.php
@@ -19,9 +19,6 @@
const TYPE_PROJ_MEMBER = 13;
const TYPE_MEMBER_OF_PROJ = 14;
- const TYPE_COMMIT_HAS_PROJECT = 15;
- const TYPE_PROJECT_HAS_COMMIT = 16;
-
const TYPE_QUESTION_HAS_VOTING_USER = 17;
const TYPE_VOTING_USER_HAS_QUESTION = 18;
const TYPE_ANSWER_HAS_VOTING_USER = 19;
@@ -100,6 +97,9 @@
array(9000),
range(80000, 80005));
+ $exclude[] = 15; // Was TYPE_COMMIT_HAS_PROJECT
+ $exclude[] = 16; // Was TYPE_PROJECT_HAS_COMMIT
+
$exclude[] = 27; // Was TYPE_ACCOUNT_HAS_MEMBER
$exclude[] = 28; // Was TYPE_MEMBER_HAS_ACCOUNT
@@ -145,9 +145,6 @@
self::TYPE_PROJ_MEMBER => self::TYPE_MEMBER_OF_PROJ,
self::TYPE_MEMBER_OF_PROJ => self::TYPE_PROJ_MEMBER,
- self::TYPE_COMMIT_HAS_PROJECT => self::TYPE_PROJECT_HAS_COMMIT,
- self::TYPE_PROJECT_HAS_COMMIT => self::TYPE_COMMIT_HAS_PROJECT,
-
self::TYPE_QUESTION_HAS_VOTING_USER =>
self::TYPE_VOTING_USER_HAS_QUESTION,
self::TYPE_VOTING_USER_HAS_QUESTION =>
@@ -239,7 +236,6 @@
public static function getEditStringForEdgeType($type) {
switch ($type) {
- case self::TYPE_PROJECT_HAS_COMMIT:
case self::TYPE_DREV_HAS_COMMIT:
return '%s edited commit(s), added %d: %s; removed %d: %s.';
case self::TYPE_TASK_DEPENDS_ON_TASK:
@@ -261,7 +257,6 @@
case self::TYPE_PROJ_MEMBER:
return '%s edited member(s), added %d: %s; removed %d: %s.';
case self::TYPE_MEMBER_OF_PROJ:
- case self::TYPE_COMMIT_HAS_PROJECT:
return '%s edited project(s), added %d: %s; removed %d: %s.';
case self::TYPE_QUESTION_HAS_VOTING_USER:
case self::TYPE_ANSWER_HAS_VOTING_USER:
@@ -307,7 +302,6 @@
public static function getAddStringForEdgeType($type) {
switch ($type) {
- case self::TYPE_PROJECT_HAS_COMMIT:
case self::TYPE_DREV_HAS_COMMIT:
return '%s added %d commit(s): %s.';
case self::TYPE_TASK_DEPENDS_ON_TASK:
@@ -332,7 +326,6 @@
case self::TYPE_PROJ_MEMBER:
return '%s added %d member(s): %s.';
case self::TYPE_MEMBER_OF_PROJ:
- case self::TYPE_COMMIT_HAS_PROJECT:
return '%s added %d project(s): %s.';
case self::TYPE_QUESTION_HAS_VOTING_USER:
case self::TYPE_ANSWER_HAS_VOTING_USER:
@@ -377,7 +370,6 @@
public static function getRemoveStringForEdgeType($type) {
switch ($type) {
- case self::TYPE_PROJECT_HAS_COMMIT:
case self::TYPE_DREV_HAS_COMMIT:
return '%s removed %d commit(s): %s.';
case self::TYPE_TASK_DEPENDS_ON_TASK:
@@ -401,7 +393,6 @@
case self::TYPE_PROJ_MEMBER:
return '%s removed %d member(s): %s.';
case self::TYPE_MEMBER_OF_PROJ:
- case self::TYPE_COMMIT_HAS_PROJECT:
return '%s removed %d project(s): %s.';
case self::TYPE_QUESTION_HAS_VOTING_USER:
case self::TYPE_ANSWER_HAS_VOTING_USER:
@@ -444,7 +435,6 @@
public static function getFeedStringForEdgeType($type) {
switch ($type) {
- case self::TYPE_PROJECT_HAS_COMMIT:
case self::TYPE_DREV_HAS_COMMIT:
return '%s updated commits of %s.';
case self::TYPE_TASK_DEPENDS_ON_TASK:
@@ -466,7 +456,6 @@
case self::TYPE_PROJ_MEMBER:
return '%s updated members of %s.';
case self::TYPE_MEMBER_OF_PROJ:
- case self::TYPE_COMMIT_HAS_PROJECT:
return '%s updated projects of %s.';
case self::TYPE_QUESTION_HAS_VOTING_USER:
case self::TYPE_ANSWER_HAS_VOTING_USER:

File Metadata

Mime Type
text/plain
Expires
Mon, May 20, 7:47 AM (1 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6272962
Default Alt Text
D10877.diff (11 KB)

Event Timeline