mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-12-22 21:40:54 +01:00
Make "no working copy" a more explicit "arc" VCS
Summary: Some commands (like `get-config`) do not require a working copy at all. Recent changes prevented these commands from running outside a VCS working copy. Let `null` mean "no working copy". See also <https://github.com/phacility/phabricator/issues/800>. Test Plan: - Ran `arc get-config` from outside a working copy. - Ran `arc list` from outside a working copy, got an error. - Ran `arc commit` in a Git working copy, got an error. Reviewers: joshuaspence Reviewed By: joshuaspence Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D11643
This commit is contained in:
parent
77eb24b13a
commit
a08383aa1b
2 changed files with 17 additions and 10 deletions
|
@ -202,17 +202,21 @@ try {
|
|||
$workflow->setConduitTimeout($conduit_timeout);
|
||||
}
|
||||
|
||||
$need_working_copy = $workflow->requiresWorkingCopy();
|
||||
|
||||
$supported_vcs_types = $workflow->getSupportedRevisionControlSystems();
|
||||
if (!in_array($working_copy->getVCSType(), $supported_vcs_types)) {
|
||||
throw new ArcanistUsageException(
|
||||
pht(
|
||||
'`%s %s` is only supported under %s.',
|
||||
'arc',
|
||||
$workflow->getWorkflowName(),
|
||||
implode(', ', $supported_vcs_types)));
|
||||
$vcs_type = $working_copy->getVCSType();
|
||||
if ($vcs_type || $need_working_copy) {
|
||||
if (!in_array($vcs_type, $supported_vcs_types)) {
|
||||
throw new ArcanistUsageException(
|
||||
pht(
|
||||
'`%s %s` is only supported under %s.',
|
||||
'arc',
|
||||
$workflow->getWorkflowName(),
|
||||
implode(', ', $supported_vcs_types)));
|
||||
}
|
||||
}
|
||||
|
||||
$need_working_copy = $workflow->requiresWorkingCopy();
|
||||
$need_conduit = $workflow->requiresConduit();
|
||||
$need_auth = $workflow->requiresAuthentication();
|
||||
$need_repository_api = $workflow->requiresRepositoryAPI();
|
||||
|
|
|
@ -82,8 +82,11 @@ EOTEXT
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!in_array($vcs, $workflow->getSupportedRevisionControlSystems())) {
|
||||
continue;
|
||||
if ($vcs || $workflow->requiresWorkingCopy()) {
|
||||
$supported_vcs = $workflow->getSupportedRevisionControlSystems();
|
||||
if (!in_array($vcs, $supported_vcs)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$complete[] = $name;
|
||||
|
|
Loading…
Reference in a new issue