diff --git a/src/repository/api/subversion/ArcanistSubversionAPI.php b/src/repository/api/subversion/ArcanistSubversionAPI.php index 431396c5..63380a13 100644 --- a/src/repository/api/subversion/ArcanistSubversionAPI.php +++ b/src/repository/api/subversion/ArcanistSubversionAPI.php @@ -472,4 +472,9 @@ EODIFF; return null; } + public function getRepositorySVNUUID() { + $info = $this->getSVNInfo('/'); + return $info['Repository UUID']; + } + } diff --git a/src/workflow/diff/ArcanistDiffWorkflow.php b/src/workflow/diff/ArcanistDiffWorkflow.php index fdf27f93..64295f3c 100644 --- a/src/workflow/diff/ArcanistDiffWorkflow.php +++ b/src/workflow/diff/ArcanistDiffWorkflow.php @@ -253,6 +253,7 @@ EOTEXT // the SVN effective base revision. $base_revision = $repository_api->getSourceControlBaseRevision(); $base_path = $repository_api->getSourceControlPath(); + $repo_uuid = null; if ($repository_api instanceof ArcanistGitAPI) { $info = $this->getGitParentLogInfo(); if ($info['parent']) { @@ -264,8 +265,15 @@ EOTEXT if ($info['base_path']) { $base_path = $info['base_path']; } + if ($info['uuid']) { + $repo_uuid = $info['uuid']; + } + } else { + $repo_uuid = $repository_api->getRepositorySVNUUID(); } + $working_copy = $this->getWorkingCopy(); + $diff = array( 'changes' => $change_list, 'sourceMachine' => php_uname('n'), @@ -278,6 +286,11 @@ EOTEXT 'parentRevisionID' => $parent, 'lintStatus' => $lint, 'unitStatus' => $unit, + + 'repositoryUUID' => $repo_uuid, + 'creationMethod' => 'arc', + 'arcanistProject' => $working_copy->getProjectID(), + 'authorPHID' => $this->getUserGUID(), ); $diff_info = $conduit->callMethodSynchronous( @@ -878,6 +891,7 @@ EOTEXT 'parent' => null, 'base_revision' => null, 'base_path' => null, + 'uuid' => null, ); $conduit = $this->getConduit(); @@ -903,6 +917,9 @@ EOTEXT $info['base_revision'] = $message->getGitSVNBaseRevision(); $info['base_path'] = $message->getGitSVNBasePath(); } + if ($message->getGitSVNUUID()) { + $info['uuid'] = $message->getGitSVNUUID(); + } if ($info['parent'] && $info['base_revision']) { break; }