From 5139da5f8e6ef6d869a41dc592361b8e4c7966c7 Mon Sep 17 00:00:00 2001 From: Peter Rowlands Date: Thu, 21 Sep 2023 14:34:31 +0900 Subject: [PATCH] output: return both 2.x and 3.x remote odbs in get_used_objects --- dvc/output.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/dvc/output.py b/dvc/output.py index 2146e60b5..6d70f7c0c 100644 --- a/dvc/output.py +++ b/dvc/output.py @@ -1160,10 +1160,11 @@ class Output: return obj.filter(prefix) return obj - def get_used_objs( # noqa: C901 + def get_used_objs( # noqa: C901, PLR0911 self, **kwargs ) -> Dict[Optional["HashFileDB"], Set["HashInfo"]]: """Return filtered set of used object IDs for this out.""" + from dvc.cachemgr import LEGACY_HASH_NAMES if not self.use_cache: return {} @@ -1202,13 +1203,17 @@ class Output: return {} if self.remote: - remote = self.repo.cloud.get_remote_odb( + remote_odb = self.repo.cloud.get_remote_odb( name=self.remote, hash_name=self.hash_name ) - else: - remote = None - - return {remote: self._named_obj_ids(obj)} + other_odb = self.repo.cloud.get_remote_odb( + name=self.remote, + hash_name=( + "md5" if self.hash_name in LEGACY_HASH_NAMES else "md5-dos2unix" + ), + ) + return {remote_odb: self._named_obj_ids(obj), other_odb: set()} + return {None: self._named_obj_ids(obj)} def _named_obj_ids(self, obj): name = str(self)