mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
get/import: handle NoRepoError with external_repo
This commit is contained in:
+2
-2
@@ -330,8 +330,8 @@ class CollectCacheError(DvcException):
|
||||
pass
|
||||
|
||||
|
||||
class RemoteNotSpecifiedInTargetRepoError(DvcException):
|
||||
class RemoteNotSpecifiedInExternalRepoError(DvcException):
|
||||
def __init__(self, url):
|
||||
super(RemoteNotSpecifiedInTargetRepoError, self).__init__(
|
||||
super(RemoteNotSpecifiedInExternalRepoError, self).__init__(
|
||||
"No DVC remote is specified in target repository '{}'".format(url)
|
||||
)
|
||||
|
||||
@@ -7,6 +7,8 @@ from distutils.dir_util import copy_tree
|
||||
|
||||
from funcy import retry
|
||||
|
||||
from dvc.config import NoRemoteError
|
||||
from dvc.exceptions import RemoteNotSpecifiedInExternalRepoError
|
||||
from dvc.utils import remove
|
||||
|
||||
|
||||
@@ -19,7 +21,10 @@ def external_repo(url=None, rev=None, rev_lock=None, cache_dir=None):
|
||||
|
||||
path = _external_repo(url=url, rev=rev_lock or rev, cache_dir=cache_dir)
|
||||
repo = Repo(path)
|
||||
yield repo
|
||||
try:
|
||||
yield repo
|
||||
except NoRemoteError:
|
||||
raise RemoteNotSpecifiedInExternalRepoError(url)
|
||||
repo.close()
|
||||
|
||||
|
||||
|
||||
@@ -3,11 +3,9 @@ import os
|
||||
|
||||
import shortuuid
|
||||
|
||||
from dvc.config import NoRemoteError
|
||||
from dvc.exceptions import GetDVCFileError
|
||||
from dvc.exceptions import NotDvcRepoError
|
||||
from dvc.exceptions import OutputNotFoundError
|
||||
from dvc.exceptions import RemoteNotSpecifiedInTargetRepoError
|
||||
from dvc.exceptions import UrlNotDvcRepoError
|
||||
from dvc.external_repo import external_repo
|
||||
from dvc.path_info import PathInfo
|
||||
@@ -58,8 +56,6 @@ def get(url, path, out=None, rev=None):
|
||||
with o.repo.state:
|
||||
o.checkout()
|
||||
|
||||
except NoRemoteError:
|
||||
raise RemoteNotSpecifiedInTargetRepoError(url)
|
||||
except NotDvcRepoError:
|
||||
raise UrlNotDvcRepoError(url)
|
||||
except OutputNotFoundError:
|
||||
|
||||
+1
-8
@@ -1,13 +1,6 @@
|
||||
from dvc.config import NoRemoteError
|
||||
from dvc.exceptions import RemoteNotSpecifiedInTargetRepoError
|
||||
|
||||
|
||||
def imp(self, url, path, out=None, rev=None):
|
||||
erepo = {"url": url}
|
||||
if rev is not None:
|
||||
erepo["rev"] = rev
|
||||
|
||||
try:
|
||||
return self.imp_url(path, out=out, erepo=erepo, locked=True)
|
||||
except NoRemoteError:
|
||||
raise RemoteNotSpecifiedInTargetRepoError(url)
|
||||
return self.imp_url(path, out=out, erepo=erepo, locked=True)
|
||||
|
||||
Reference in New Issue
Block a user