Exemple #1
0
 def get_manifest_and_flags_by_revid(self, revid):
     try:
         return self._get_cached_manifest(revid)
     except KeyError:
         pass
     try:
         ft = self._get_cached_manifest_text(revid)
     except KeyError:
         pass
     else:
         return parse_manifest(ft)
     return self._reconstruct_manifest_and_flags_by_revid(revid)
Exemple #2
0
 def get_manifest_and_flags_by_revids(self, revids):
     if self.manifests_vf is not None:
         stream = self.manifests_vf.get_record_stream(
             ((revid, ) for revid in revids), "topological", True)
     else:
         stream = (AbsentContentFactory((revid, )) for revid in revids)
     for record in stream:
         if record.storage_kind == 'absent':
             yield (record.key[0],
                    self._reconstruct_manifest_and_flags_by_revid(
                        record.key))
         else:
             yield (record.key[0],
                    parse_manifest(record.get_bytes_as('fulltext')))
Exemple #3
0
    def _unpack_manifests(self, chunkiter, mapping, kind_map, todo, pb):
        """Unpack the manifest deltas.

        :param chunkiter: Iterator over delta chunks for the manifest.
        :param mapping: Bzr<->Hg mapping
        :param pb: Progress bar
        """
        chunks = unpack_chunk_iter(chunkiter,
                                   self._target_overlay.get_manifest_text)
        for i, (fulltext, hgkey, hgparents, csid) in enumerate(chunks):
            pb.update("fetching manifests", i, len(self._revisions))
            (manifest, flags) = parse_manifest(fulltext)
            for revid in self._manifest2rev_map[hgkey]:
                todo.append(revid)
                yield (revid, self._revisions[revid].parent_ids, fulltext)
                self._process_manifest(manifest, flags, revid, mapping,
                                       kind_map)