'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'

def get_graph_walker(self, heads=None):

    if (heads is None):
        heads = self.refs.as_dict('refs/heads').values()
    return ObjectStoreGraphWalker(heads, self.get_parents)
