mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-18 21:02:41 +01:00
Improve error messages for running git clone
against a Mercurial repository
Summary: Fixes T11938. Note that there's a subcase here: if you `hg clone` or `svn checkout` a short `/source/` URI that ends in `.git`, we miss the lookup and don't get this far, so you still get a generic error message. Hopefully it is clear enough on its own that `proto://.../blah.git` is, in fact, a Git repository, since it says ".git" at the end. If that doesn't prove to be true, we can be more surgical about this. Test Plan: ``` $ git clone ssh://local@localvault.phacility.com/source/quack.notgit/ Cloning into 'quack.notgit'... phabricator-ssh-exec: This repository ("quack.notgit") is not a Git repository. Use "hg" to interact with this repository. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ``` ``` $ hg clone ssh://local@localvault.phacility.com/source/phabx remote: phabricator-ssh-exec: This repository ("phabx") is not a Mercurial repository. Use "git" to interact with this repository. abort: no suitable response from remote hg! ``` Reviewers: chad Reviewed By: chad Maniphest Tasks: T11938 Differential Revision: https://secure.phabricator.com/D16976
This commit is contained in:
parent
7c37377e0d
commit
faf983614c
4 changed files with 36 additions and 0 deletions
|
@ -35,4 +35,14 @@ abstract class DiffusionGitSSHWorkflow
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function raiseWrongVCSException(
|
||||||
|
PhabricatorRepository $repository) {
|
||||||
|
throw new Exception(
|
||||||
|
pht(
|
||||||
|
'This repository ("%s") is not a Git repository. Use "%s" to '.
|
||||||
|
'interact with this repository.',
|
||||||
|
$repository->getDisplayName(),
|
||||||
|
$repository->getVersionControlSystem()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,4 +119,14 @@ final class DiffusionMercurialServeSSHWorkflow
|
||||||
return $raw_message;
|
return $raw_message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function raiseWrongVCSException(
|
||||||
|
PhabricatorRepository $repository) {
|
||||||
|
throw new Exception(
|
||||||
|
pht(
|
||||||
|
'This repository ("%s") is not a Mercurial repository. Use "%s" to '.
|
||||||
|
'interact with this repository.',
|
||||||
|
$repository->getDisplayName(),
|
||||||
|
$repository->getVersionControlSystem()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,8 @@ abstract class DiffusionSSHWorkflow extends PhabricatorSSHWorkflow {
|
||||||
*/
|
*/
|
||||||
abstract protected function identifyRepository();
|
abstract protected function identifyRepository();
|
||||||
abstract protected function executeRepositoryOperations();
|
abstract protected function executeRepositoryOperations();
|
||||||
|
abstract protected function raiseWrongVCSException(
|
||||||
|
PhabricatorRepository $repository);
|
||||||
|
|
||||||
protected function getBaseRequestPath() {
|
protected function getBaseRequestPath() {
|
||||||
return $this->baseRequestPath;
|
return $this->baseRequestPath;
|
||||||
|
@ -199,6 +201,10 @@ abstract class DiffusionSSHWorkflow extends PhabricatorSSHWorkflow {
|
||||||
$repository->getDisplayName()));
|
$repository->getDisplayName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($repository->getVersionControlSystem() != $vcs) {
|
||||||
|
$this->raiseWrongVCSException($repository);
|
||||||
|
}
|
||||||
|
|
||||||
return $repository;
|
return $repository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -449,4 +449,14 @@ final class DiffusionSubversionServeSSHWorkflow
|
||||||
return $path;
|
return $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function raiseWrongVCSException(
|
||||||
|
PhabricatorRepository $repository) {
|
||||||
|
throw new Exception(
|
||||||
|
pht(
|
||||||
|
'This repository ("%s") is not a Subversion repository. Use "%s" to '.
|
||||||
|
'interact with this repository.',
|
||||||
|
$repository->getDisplayName(),
|
||||||
|
$repository->getVersionControlSystem()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue