1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-25 16:22:42 +01:00

Make callsigns optional in arcanist

Summary:
Remove couple of references to callsigns:
- `arc which` now prints repository name
- `getShouldAmend()` can now use new format of commit name

a quick git-grep looks like the remaining references are all about `repository.callsign` config.

Ref T4245

Test Plan:
- `arc which` on a repository with no callsign
- trigger `requireCleanWorkingCopy()`, see both "Do you want to amend this change" and "Do you want to create a new commit" prompts.
- fire this diff with new code.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: Korvin

Maniphest Tasks: T4245

Differential Revision: https://secure.phabricator.com/D15472
This commit is contained in:
Aviv Eyal 2016-03-15 03:58:46 +00:00 committed by avivey
parent ccbaee585e
commit 3d7ac867f5
2 changed files with 20 additions and 12 deletions

View file

@ -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",

View file

@ -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