-
Couldn't load subscription status.
- Fork 1.3k
Fix import issue without remote config in the target #3120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,6 +11,7 @@ | |
| from dvc.exceptions import OutputNotFoundError | ||
| from dvc.exceptions import NoOutputInExternalRepoError | ||
| from dvc.exceptions import PathMissingError | ||
| from dvc.config import NoRemoteError | ||
| from dvc.utils.fs import fs_copy | ||
| from dvc.path_info import PathInfo | ||
| from dvc.scm import SCM | ||
|
|
@@ -91,7 +92,14 @@ def fetch(self): | |
|
|
||
| out = repo.find_out_by_relpath(self.def_path) | ||
| with repo.state: | ||
| repo.cloud.pull(out.get_used_cache()) | ||
| try: | ||
| repo.cloud.pull(out.get_used_cache()) | ||
| except NoRemoteError: | ||
| # It would not be good idea to raise exception if the | ||
| # file is already present in the cache | ||
| if not self.repo.cache.local.changed_cache(out.checksum): | ||
| return out | ||
| raise | ||
|
||
|
|
||
| return out | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is a correct logic for dir outs, it should be just
out.changed_cache().However, I don't understand the overall approach, we just created that repo it has empty cache. What's the point?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, I see, this is for local import/shared cache case. I would say we should change
.pull()implementation to check local cache first and only go for upstream when something is missing in local cache.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Suor please see #3120 (comment) . out.change_cache() would be better, true.