diff --git a/swh/loader/git/from_disk.py b/swh/loader/git/from_disk.py --- a/swh/loader/git/from_disk.py +++ b/swh/loader/git/from_disk.py @@ -122,9 +122,12 @@ def fetch_data(self): """Fetch the data from the data source""" - self.previous_snapshot = self.storage.snapshot_get_latest( - self.origin['url'] - ) + previous_visit = self.storage.origin_visit_get_latest( + self.origin['url'], require_snapshot=True) + if previous_visit: + self.previous_snapshot_id = previous_visit['snapshot'] + else: + self.previous_snapshot_id = None type_to_ids = defaultdict(list) for oid in self.iter_objects(): @@ -249,8 +252,8 @@ the ones we retrieved at the beginning of the run""" eventful = False - if self.previous_snapshot: - eventful = self.snapshot['id'] != self.previous_snapshot['id'] + if self.previous_snapshot_id: + eventful = self.snapshot['id'] != self.previous_snapshot_id else: eventful = bool(self.snapshot['branches']) diff --git a/swh/loader/git/loader.py b/swh/loader/git/loader.py --- a/swh/loader/git/loader.py +++ b/swh/loader/git/loader.py @@ -282,11 +282,13 @@ self.origin = converters.origin_url_to_origin(self.origin_url) def get_full_snapshot(self, origin_url): - prev_snapshot = self.storage.snapshot_get_latest(origin_url) - if prev_snapshot and prev_snapshot.pop('next_branch', None): - return snapshot_get_all_branches(self.storage, prev_snapshot['id']) - - return prev_snapshot + visit = self.storage.origin_visit_get_latest( + origin_url, require_snapshot=True) + if visit and visit['snapshot']: + return snapshot_get_all_branches( + self.storage, visit['snapshot']) + else: + return None def prepare(self, *args, **kwargs): base_origin_url = origin_url = self.origin['url']