Esempio n. 1
0
 def get_walker(self, heads, parent_map):
     new_parent_map = dict(
         [(k * 40, [(p * 40) for p in ps]) for (k, ps) in parent_map.items()]
     )
     return ObjectStoreGraphWalker(
         [x * 40 for x in heads], new_parent_map.__getitem__
     )
Esempio n. 2
0
    def get_graph_walker(self, heads=None):
        """Retrieve a graph walker.

        A graph walker is used by a remote repository (or proxy)
        to find out which objects are present in this repository.

        :param heads: Repository heads to use (optional)
        :return: A graph walker object
        """
        if heads is None:
            heads = self.refs.as_dict(b'refs/heads').values()
        return ObjectStoreGraphWalker(heads, self.get_parents)
Esempio n. 3
0
    def get_graph_walker(self, heads=None):
        """Retrieve a graph walker.

        A graph walker is used by a remote repository (or proxy)
        to find out which objects are present in this repository.

        Args:
          heads: Repository heads to use (optional)
        Returns: A graph walker object
        """
        if heads is None:
            heads = [
                sha for sha in self.refs.as_dict(b'refs/heads').values()
                if sha in self.object_store]
        return ObjectStoreGraphWalker(
            heads, self.get_parents, shallow=self.get_shallow())
Esempio n. 4
0
    def fetch_objects(self, determine_wants, mapping, limit=None, lossy=False):
        """See `InterGitNonGitRepository`."""
        self._warn_slow()
        store = get_object_store(self.target, mapping)
        with store.lock_write():
            heads = self.get_target_heads()
            graph_walker = ObjectStoreGraphWalker(
                [store._lookup_revision_sha1(head) for head in heads],
                lambda sha: store[sha].parents)
            wants_recorder = DetermineWantsRecorder(determine_wants)

            with ui.ui_factory.nested_progress_bar() as pb:
                objects_iter = self.source.fetch_objects(
                    wants_recorder, graph_walker, store.get_raw)
                trace.mutter("Importing %d new revisions",
                             len(wants_recorder.wants))
                (pack_hint, last_rev) = import_git_objects(
                    self.target, mapping, objects_iter, store,
                    wants_recorder.wants, pb, limit)
                return (pack_hint, last_rev, wants_recorder.remote_refs)
Esempio n. 5
0
 def get_walker(self, heads, parent_map):
     return ObjectStoreGraphWalker(heads, parent_map.__getitem__)
Esempio n. 6
0
 def graph_walker(self) -> ObjectStoreGraphWalker:
     return ObjectStoreGraphWalker(self.heads, self.get_parents)