diff --git a/dvc/remote/base.py b/dvc/remote/base.py index 5522711d3..fa85fa170 100644 --- a/dvc/remote/base.py +++ b/dvc/remote/base.py @@ -469,10 +469,10 @@ class RemoteBase(object): def gc(self, cinfos): from dvc.remote.local import RemoteLOCAL - used = [info[RemoteLOCAL.PARAM_CHECKSUM] for info in cinfos["local"]] + used = {info[RemoteLOCAL.PARAM_CHECKSUM] for info in cinfos["local"]} if self.scheme != "": - used += [info[self.PARAM_CHECKSUM] for info in cinfos[self.scheme]] + used |= {info[self.PARAM_CHECKSUM] for info in cinfos[self.scheme]} removed = False for checksum in self.all(): diff --git a/dvc/repo/__init__.py b/dvc/repo/__init__.py index 4d599a71d..4f3f02947 100644 --- a/dvc/repo/__init__.py +++ b/dvc/repo/__init__.py @@ -285,12 +285,14 @@ class Repo(object): for out in stage.outs: scheme = out.path_info["scheme"] - cache[scheme] += self._collect_used_cache( - out, - branch=branch, - remote=remote, - force=force, - jobs=jobs, + cache[scheme].extend( + self._collect_used_cache( + out, + branch=branch, + remote=remote, + force=force, + jobs=jobs, + ) ) return cache