Page MenuHomePhabricator

D8072.diff
No OneTemporary

D8072.diff

Index: resources/sql/autopatches/20140126.diff.1.parentrevisionid.sql
===================================================================
--- /dev/null
+++ resources/sql/autopatches/20140126.diff.1.parentrevisionid.sql
@@ -0,0 +1,2 @@
+ALTER TABLE {$NAMESPACE}_differential.differential_diff
+ DROP COLUMN parentRevisionID;
Index: resources/sql/autopatches/20140126.diff.2.repositoryphid.sql
===================================================================
--- /dev/null
+++ resources/sql/autopatches/20140126.diff.2.repositoryphid.sql
@@ -0,0 +1,2 @@
+ALTER TABLE {$NAMESPACE}_differential.differential_diff
+ ADD COLUMN repositoryPHID VARCHAR(64) COLLATE utf8_bin AFTER authorPHID;
Index: src/applications/differential/conduit/ConduitAPI_differential_creatediff_Method.php
===================================================================
--- src/applications/differential/conduit/ConduitAPI_differential_creatediff_Method.php
+++ src/applications/differential/conduit/ConduitAPI_differential_creatediff_Method.php
@@ -1,8 +1,5 @@
<?php
-/**
- * @group conduit
- */
final class ConduitAPI_differential_creatediff_Method extends ConduitAPIMethod {
public function getMethodDescription() {
@@ -16,18 +13,20 @@
'sourcePath' => 'required string',
'branch' => 'required string',
'bookmark' => 'optional string',
- 'sourceControlSystem' => 'required enum<svn, git>',
+ 'sourceControlSystem' => 'required enum<svn, git, hg>',
'sourceControlPath' => 'required string',
'sourceControlBaseRevision' => 'required string',
- 'parentRevisionID' => 'optional revisionid',
'creationMethod' => 'optional string',
- 'authorPHID' => 'optional phid',
'arcanistProject' => 'optional string',
- 'repositoryUUID' => 'optional string',
'lintStatus' =>
'required enum<none, skip, okay, warn, fail, postponed>',
'unitStatus' =>
'required enum<none, skip, okay, warn, fail, postponed>',
+ 'repositoryPHID' => 'optional phid',
+
+ 'parentRevisionID' => 'deprecated',
+ 'authorPHID' => 'deprecated',
+ 'repositoryUUID' => 'deprecated',
);
}
@@ -54,23 +53,23 @@
$diff->setBranch($request->getValue('branch'));
$diff->setCreationMethod($request->getValue('creationMethod'));
- $diff->setAuthorPHID($request->getValue('authorPHID'));
+ $diff->setAuthorPHID($request->getViewer()->getPHID());
$diff->setBookmark($request->getValue('bookmark'));
- $parent_id = $request->getValue('parentRevisionID');
- if ($parent_id) {
- // NOTE: If the viewer can't see the parent revision, just don't set
- // a parent revision ID. This isn't used for anything meaningful.
- // TODO: Can we delete this entirely?
- $parent_rev = id(new DifferentialRevisionQuery())
- ->setViewer($request->getUser())
- ->withIDs(array($parent_id))
- ->execute();
- if ($parent_rev) {
- $parent_rev = head($parent_rev);
- if (!$parent_rev->isClosed()) {
- $diff->setParentRevisionID($parent_id);
- }
+ // TODO: Remove this eventually; for now continue writing the UUID. Note
+ // that we'll overwrite it below if we identify a repository, and `arc`
+ // no longer sends it. This stuff is retained for backward compatibility.
+ $diff->setRepositoryUUID($request->getValue('repositoryUUID'));
+
+ $repository_phid = $request->getValue('repositoryPHID');
+ if ($repository_phid) {
+ $repository = id(new PhabricatorRepositoryQuery())
+ ->setViewer($request->getViewer())
+ ->withPHIDs(array($repository_phid))
+ ->executeOne();
+ if ($repository) {
+ $diff->setRepositoryPHID($repository->getPHID());
+ $diff->setRepositoryUUID($repository->getUUID());
}
}
@@ -96,7 +95,6 @@
}
$diff->setArcanistProjectPHID($project_phid);
- $diff->setRepositoryUUID($request->getValue('repositoryUUID'));
switch ($request->getValue('lintStatus')) {
case 'skip':
Index: src/applications/differential/storage/DifferentialDiff.php
===================================================================
--- src/applications/differential/storage/DifferentialDiff.php
+++ src/applications/differential/storage/DifferentialDiff.php
@@ -8,6 +8,7 @@
protected $revisionID;
protected $authorPHID;
+ protected $repositoryPHID;
protected $sourceMachine;
protected $sourcePath;
@@ -24,7 +25,6 @@
protected $branch;
protected $bookmark;
- protected $parentRevisionID;
protected $arcanistProjectPHID;
protected $creationMethod;
protected $repositoryUUID;
@@ -223,7 +223,6 @@
public function getDiffDict() {
$dict = array(
'id' => $this->getID(),
- 'parent' => $this->getParentRevisionID(),
'revisionID' => $this->getRevisionID(),
'dateCreated' => $this->getDateCreated(),
'dateModified' => $this->getDateModified(),
Index: src/applications/repository/conduit/ConduitAPI_repository_query_Method.php
===================================================================
--- src/applications/repository/conduit/ConduitAPI_repository_query_Method.php
+++ src/applications/repository/conduit/ConduitAPI_repository_query_Method.php
@@ -22,6 +22,7 @@
'callsigns' => 'optional list<string>',
'vcsTypes' => 'optional list<string>',
'remoteURIs' => 'optional list<string>',
+ 'uuids' => 'optional list<string>',
);
}
@@ -63,6 +64,11 @@
$query->withRemoteURIs($remote_uris);
}
+ $uuids = $request->getValue('uuids', array());
+ if ($uuids) {
+ $query->withUUIDs($uuids);
+ }
+
$repositories = $query->execute();
$results = array();

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 22, 4:33 PM (6 h, 56 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6775296
Default Alt Text
D8072.diff (5 KB)

Event Timeline