diff --git a/src/workflow/ArcanistWhichWorkflow.php b/src/workflow/ArcanistWhichWorkflow.php index 17d43447..3518f744 100644 --- a/src/workflow/ArcanistWhichWorkflow.php +++ b/src/workflow/ArcanistWhichWorkflow.php @@ -259,7 +259,7 @@ EOTEXT $console = PhutilConsole::getConsole(); $console->writeOut("**%s**\n", pht('REPOSITORY')); - $callsign = $this->getRepositoryCallsign(); + $repo_name = $this->getRepositoryName(); $console->writeOut( "%s\n\n", @@ -272,11 +272,11 @@ EOTEXT $console->writeOut("%s\n\n", $reason); } - if ($callsign) { + if ($repo_name) { $console->writeOut( "%s\n", pht('This working copy is associated with the %s repository.', - phutil_console_format('**%s**', $callsign))); + phutil_console_format('**%s**', $repo_name))); } else { $console->writeOut( "%s\n", diff --git a/src/workflow/ArcanistWorkflow.php b/src/workflow/ArcanistWorkflow.php index f30fdc47..366f4742 100644 --- a/src/workflow/ArcanistWorkflow.php +++ b/src/workflow/ArcanistWorkflow.php @@ -1107,8 +1107,17 @@ abstract class ArcanistWorkflow extends Phobject { // Don't amend the current commit if it has already been published. $repository = $this->loadProjectRepository(); if ($repository) { - $callsign = $repository['callsign']; - $commit_name = 'r'.$callsign.$commit['commit']; + $repo_id = $repository['id']; + $commit_hash = $commit['commit']; + $callsign = idx($repository, 'callsign'); + if ($callsign) { + // The server might be too old to support the new style commit names, + // so prefer the old way + $commit_name = "r{$callsign}{$commit_hash}"; + } else { + $commit_name = "R{$repo_id}:{$commit_hash}"; + } + $result = $this->getConduit()->callMethodSynchronous( 'diffusion.querycommits', array('names' => array($commit_name))); @@ -1686,18 +1695,17 @@ abstract class ArcanistWorkflow extends Phobject { return idx($this->getRepositoryInformation(), 'phid'); } - /** - * Get the callsign of the Phabricator repository this working copy + * Get the name of the Phabricator repository this working copy * corresponds to. Returns `null` if no repository can be identified. * - * @return string|null Repository callsign, or null if no repository can be + * @return string|null Repository name, or null if no repository can be * identified. * * @task phabrep */ - final protected function getRepositoryCallsign() { - return idx($this->getRepositoryInformation(), 'callsign'); + final protected function getRepositoryName() { + return idx($this->getRepositoryInformation(), 'name'); } @@ -2013,12 +2021,12 @@ abstract class ArcanistWorkflow extends Phobject { // If we know which repository we're in, try to tell Phabricator that we // pushed commits to it so it can update. This hint can help pull updates // more quickly, especially in rarely-used repositories. - if ($this->getRepositoryCallsign()) { + if ($this->getRepositoryPHID()) { try { $this->getConduit()->callMethodSynchronous( 'diffusion.looksoon', array( - 'callsigns' => array($this->getRepositoryCallsign()), + 'repositories' => array($this->getRepositoryPHID()), )); } catch (ConduitClientException $ex) { // If we hit an exception, just ignore it. Likely, we are running